Paul Andrews ha comprado la marca Jupiter ACE

BBC, Dragon, Sam Coupé, Oric ...
Avatar de Usuario
carmeloco
MSX Turbo R
MSX Turbo R
Mensajes: 318
Registrado: 02 Ene 2016, 17:19
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum +2
consola_favorita: Nintendo GameBoy
Primera consola: Nintendo GameBoy
Gracias dadas: 1 vez
Gracias recibidas: 13 veces

Re: Paul Andrews ha comprado la marca Jupiter ACE

Mensajepor carmeloco » 19 Ene 2016, 22:12

dancresp escribió:Bueno, nadie nace enseñado, y esta claro que necesita su tiempo porque es diferente.

Uno de sus encantos es que no tiene una sintaxis definida.

Simplemente hay unas palabras, que hacen algo muy concreto, que se ponen una tras otra separadas por un espacio. Si no hay una palabra que haga algo que necesites... pues te la haces y se incorpora al diccionario.

Esta falta de sintaxis, añadido a otras cosas, es lo que explica su altísimo rendimiento, en comparación con otros lenguajes interpretados.

Volviendo al ejemplo del "Nuclear Invaders", esta versión es tan rápida que la he tenido que frenar !!!
Con el BASIC estas cosas no pasan, pero con FORTH si.


Cierto, nadie nace enseñado, pero comparado con otros lenguajes, en los que, simplemente leyendo el código, ya se puede intuir algo de cómo va, y qué hace, en forth, no lo veo ni por asomo. Si a eso, le sumas lo de que no tiene una sintaxis definida, es lo que creo que acaba echando para atrás al que lo desconoce.

Quizá ahora digo una tontería, pero me da la sensación de que, esa falta de sintaxis, puede hacer que un código, quede muy "personal", es decir, muy al estilo de quien lo escribió, y puede dificultar su lectura y comprensión a otro programador.

Avatar de Usuario
radastan
Amiga 2500
Amiga 2500
Mensajes: 4542
Registrado: 11 Jun 2007, 19:29
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Sega Genesis/Megadrive
Primera consola: TV Games/Pong Clone
Ubicación: Córdoba
Gracias dadas: 9 veces
Gracias recibidas: 40 veces
Contactar:

Re: Paul Andrews ha comprado la marca Jupiter ACE

Mensajepor radastan » 20 Ene 2016, 08:58

mcleod_ideafix escribió:Paul Andrews ha comentado hace pocas horas en Twitter que ya están preparando cosas y que pronto habrá novedades en la web. No tengo ni idea tampoco de cómo pretenden monetizar el asunto.


Tazas de café y camisetas.
Yo tengo una máquina del tiempo, se llama ZX Spectrum, siempre me devuelve a los buenos momentos.
(\.../) (\.../) (\.../) (\.../)
( *.*) ('.'= ) ('.'= ) ('.'= )
(")_(") (")_(") (")_(") (")_(")
╔═══╦═══╦═══╦══╦══╗
║╔═╗║╔═╗║╔═╗╠╣╠╩╣╠╝
║║─║║╚══╣║─╚╝║║─║║
║╚═╝╠══╗║║─╔╗║║─║║
║╔═╗║╚═╝║╚═╝╠╣╠╦╣╠╗
╚╝─╚╩═══╩═══╩══╩══╝

Avatar de Usuario
carmeloco
MSX Turbo R
MSX Turbo R
Mensajes: 318
Registrado: 02 Ene 2016, 17:19
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum +2
consola_favorita: Nintendo GameBoy
Primera consola: Nintendo GameBoy
Gracias dadas: 1 vez
Gracias recibidas: 13 veces

Re: Paul Andrews ha comprado la marca Jupiter ACE

Mensajepor carmeloco » 20 Ene 2016, 11:12

Tazas de café y camisetas, ya las hace mucha gente de otras marcas, sin haberlas comprado...

Yo tengo una taza de ZX Spectrum Muy chula, jajajaja

Imagen

Avatar de Usuario
Uto
MSX Turbo R
MSX Turbo R
Mensajes: 444
Registrado: 28 Abr 2014, 15:50
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo SNES
Primera consola: TV Games/Pong Clone
Gracias dadas: 5 veces
Gracias recibidas: 26 veces

Re: Paul Andrews ha comprado la marca Jupiter ACE

Mensajepor Uto » 20 Ene 2016, 11:44

carmeloco escribió:Tazas de café y camisetas, ya las hace mucha gente de otras marcas, sin haberlas comprado...

Yo tengo una taza de ZX Spectrum Muy chula, jajajaja


Mira tu taza por debajo, ve a la URL que pone y verás esto:

Founded in 2008 we are a new company dedicated to producing the finest quality retro and iconic licensed merchandise in the world.


Licensed...

PD: Yo tengo la misma taza.
http://www.ngpaws.com
Twitter: @uto_dev

Avatar de Usuario
carmeloco
MSX Turbo R
MSX Turbo R
Mensajes: 318
Registrado: 02 Ene 2016, 17:19
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum +2
consola_favorita: Nintendo GameBoy
Primera consola: Nintendo GameBoy
Gracias dadas: 1 vez
Gracias recibidas: 13 veces

Re: Paul Andrews ha comprado la marca Jupiter ACE

Mensajepor carmeloco » 20 Ene 2016, 12:35

Vale, en principio pagan derechos por ello, pensaba que no...

PD: Tu tienes una taza igual, no la misma :D

Avatar de Usuario
programandala_net
Dragon 32
Dragon 32
Mensajes: 27
Registrado: 23 Dic 2015, 02:44
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
Contactar:

Re: Paul Andrews ha comprado la marca Jupiter ACE

Mensajepor programandala_net » 20 Ene 2016, 14:48

carmeloco escribió:comparado con otros lenguajes, en los que, simplemente leyendo el código, ya se puede intuir algo de cómo va, y qué hace, en forth, no lo veo ni por asomo. Si a eso, le sumas lo de que no tiene una sintaxis definida, es lo que creo que acaba echando para atrás al que lo desconoce.


La falta de sintaxis es una de sus mayores cualidades, y se aprecia en cuanto se prueba. Un intérprete o compilador convencional es un programa complejísimo que debe examinar un código fuente complejísimo (tu programa) escrito con una sintaxis complejísima (letras, números, paréntesis y demás signos, finales de línea...), una sintaxis que estás obligado a obedecer y a cuyo marco debes limitar tu código, es decir, debes ajustar la solución del problema a la forma a la que el lenguaje te obliga a describrirlo en tu mente primero y a escribirlo en «papel» después. En Forth esa limitación es casi inexistente, pues puedes inventarte cualquier sintaxis que necesites, la que mejor describa lo que quieres hacer o el tipo de datos que quieres manipular, o cómo combinar código y datos sin restricciones.

E, insistiendo en lo que te decía antes, el hecho de que «simplemente leyendo el código», puedas saber de qué va, no significa que a continuación puedas usar ese lenguaje de forma activa. Por ejemplo, si sabes algún dialecto de BASIC, al leer un programa escrito en PHP podrás «adivinar» más o menos qué hace, pero eso no te sirve para ponerte a escribir PHP, ni mucho menos significa que PHP sea más o menos fácil. Antes deberás aprender todas sus muchísimas reglas convencionales y arbitrarias: Las variables deben tener estos nombres, pero si son de tal tipo no, a menos que tal o cual, y los paréntesis se ponen aquí, pero aquí no, pero allí también, y para separar comandos pon esto o aquello, y tal o cual signo puesto aquí indica esto, pero no olvides que en estos casos indica lo otro... :)

Por el contrario, la sintaxis de Forth se explica con una frase; y el funcionamiento de su máquina virtual (que es el equivalente al intérprete y al compilador) es tan sencillo que se explica en un párrafo. Con eso, y unos pocos conceptos básicos más, sí podrás no solo leer sino empezar a escribir algo de código.

Código: Seleccionar todo

: lavadora  ( programa -- )   \ Ejecutar un programa de lavado
  puerta cierra
  prelava lava desagua enjuaga desagua centrifuga
  1 minutos espera
  puerta abre  ;


¿Verdad que es claro? Eso es Forth. Puedes describir la esencia del problema sin estar inmerso en una sintaxis convencional (paréntesis, llaves, parámetros, comas, líneas...). Al usar una pila, el paso de parámetros es transparente, implícito. Y cada una de las partes (en este caso, las palabras «puerta», «cierra», «prelava», etc., se describirían de forma similar. Y todas ellas, estando ya compiladas, pueden ser probadas desde el teclado de forma interactiva en cualquier momento, con cualquier parámetro, simplemente escribiendo su nombre.

Un pequeña explicación de qué es cada cosa en ese código:

Con la palabra «:» entras en modo de compilación para crear una nueva palabra llamada «lavadora», cuya primera acción será ejecutar la palabra «puerta» (que deberá estar definida previamente), la segunda «abre», y así hasta llegar a la última, «abre». La palabra final «;» da por terminada la compilación de la nueva palabra «lavadora» y regresa al modo de interpretación.

La palabra «(» sirve para descartar inmediatamente todo lo que sigue hasta el primer «)». Sirve para hacer comentarios que indican qué hay en la pila de datos (es una convención: a la izquierda de «--» se escribe lo que la palabra espera en a pila, y a la derecha se escribe lo que devuelve). «programa» es tan solo una forma de indicar que el número que se espera en la pila, el parámetro, es el número de programa de lavado.

La palabra «\» es otro tipo de comentario, descarta inmediatamente todo lo que haya en la fuente hasta el final de línea. Convencinalmente se usa para comentarios genéricos, no para comentarios de pila.

carmeloco escribió:Quizá ahora digo una tontería, pero me da la sensación de que, esa falta de sintaxis, puede hacer que un código, quede muy "personal", es decir, muy al estilo de quien lo escribió, y puede dificultar su lectura y comprensión a otro programador.


No es ninguna tontería, al contrario. Forth te da tanta libertad que te permite escribir código ilegible con mucha facilidad... Pero igual te permite todo lo contrario, escribir código que se lea casi como si fuera un texto. La legibilidad del código depende del programador. Lo cierto es que puedes escribir código ilegible en cualquier lenguaje.

El estilo propio de Forth es escribir palabras breves, que hagan tareas claras, que estén documentadas con su comentario de pila y una descripción de lo que hacen, y que tengan nombres significativos que se combinen bien con el resto del código. Si escribes en Forth usando las convenciones y las costumbres propias de otros lenguajes, el resultado no solo será menos legible sino también menos eficaz.

Por supuesto, aunque no haya sintaxis en sentido estricto, hay convenciones y estilos aceptados a la hora de escribir código, para que sea claro y legible.

Espero que esto te haya aclarado algunas dudas.
Marcos Cruz (programandala.net)

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 53 veces
Contactar:

Re: Paul Andrews ha comprado la marca Jupiter ACE

Mensajepor mcleod_ideafix » 20 Ene 2016, 18:22

programandala_net escribió:Por ejemplo, si sabes algún dialecto de BASIC, al leer un programa escrito en PHP podrás «adivinar» más o menos qué hace, pero eso no te sirve para ponerte a escribir PHP, ni mucho menos significa que PHP sea más o menos fácil.

Yo con esto discrepo: precisamente leyendo programas escritos en PHP, o cualquier otro lenguaje, es como precisamente he aprendido a usar alguno de esos lenguajes, o al menos a modificar el código de esos programas que he visto y que la modificación funcione. Y todo grcias a que aunque cada uno tenga la sintaxis de su padre y de su madre, visto uno vistos todos. Eso permite no sólo ponerse a hacer código en un lenguaje nuevo del que sólo has mirado algunos programas de ejemplo, sino que también permite al programador más experimentado trasladar algoritmos que ya están implementados en un lenguaje (pongamos C) a otro (pongamos PHP o Perl) con un móínimo de esfuerzo.
En el caso de Forth por ejemplo, en donde el programador debe ser consciente de que existe una pila, y que de hecho necesita esa pila para poder implementar cosas como la recursión, hace que escribir un programa recursivo sea más complejo, sobre todo si dicho programa usa muchas variables locales (y que por tanto necesitan salvarse en la pila en cada llamada recursiva).

programandala_net escribió:

Código: Seleccionar todo

: lavadora  ( programa -- )   \ Ejecutar un programa de lavado
  puerta cierra
  prelava lava desagua enjuaga desagua centrifuga
  1 minutos espera
  puerta abre  ;


¿Verdad que es claro? Eso es Forth. Puedes describir la esencia del problema sin estar inmerso en una sintaxis convencional (paréntesis, llaves, parámetros, comas, líneas...). Al usar una pila, el paso de parámetros es transparente, implícito. Y cada una de las partes (en este caso, las palabras «puerta», «cierra», «prelava», etc., se describirían de forma similar. Y todas ellas, estando ya compiladas, pueden ser probadas desde el teclado de forma interactiva en cualquier momento, con cualquier parámetro, simplemente escribiendo su nombre.

Un pequeña explicación de qué es cada cosa en ese código:

Con la palabra «:» entras en modo de compilación para crear una nueva palabra llamada «lavadora», cuya primera acción será ejecutar la palabra «puerta» (que deberá estar definida previamente), la segunda «abre», y así hasta llegar a la última, «abre». La palabra final «;» da por terminada la compilación de la nueva palabra «lavadora» y regresa al modo de interpretación.

La palabra «(» sirve para descartar inmediatamente todo lo que sigue hasta el primer «)». Sirve para hacer comentarios que indican qué hay en la pila de datos (es una convención: a la izquierda de «--» se escribe lo que la palabra espera en a pila, y a la derecha se escribe lo que devuelve). «programa» es tan solo una forma de indicar que el número que se espera en la pila, el parámetro, es el número de programa de lavado.

La palabra «\» es otro tipo de comentario, descarta inmediatamente todo lo que haya en la fuente hasta el final de línea. Convencinalmente se usa para comentarios genéricos, no para comentarios de pila`


Lo mismo, escrito en C:

Código: Seleccionar todo

void lavadora()
{
  puerta(CERRAR);
  prelava();
  lava();
  desagua();
  enjuaga();
  desagua();
  centrifuga();
  espera(1);
  puerta(ABRIR);
}


Pues no sé... lo veo igual, o más claro. El número y tipo de los parámetros a la función (equiv a la palabra en Forth) está bien ubicado. En Forth, o pones un comentario explicando qué parámetros toma la palabra (y en qué orden tienen que estar en la pila) o tienes que ponerte a mirar el código de la palabra para adivinar de qué forma usa la pila. En C no tienes por qué poner cada llamada a función en una línea diferente. Si quieres algo más compacto puedes escribir:

Código: Seleccionar todo

void lavadora()
{
  puerta(CERRAR);
  prelava(); lava(); desagua(); enjuaga(); desagua(); centrifuga();
  espera(1);
  puerta(ABRIR);
}


En tu código, qué hace la palabra PUERTA?. Qué hace CIERRA?. CIERRA no es parámetro de PUERTA porque aparece detrás, entonces...? Debo suponer que MINUTOS es una palabra que convierte su parámetro al tipo de unidad de tiempo que usa la palabra ESPERA?
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
programandala_net
Dragon 32
Dragon 32
Mensajes: 27
Registrado: 23 Dic 2015, 02:44
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
Contactar:

Re: Paul Andrews ha comprado la marca Jupiter ACE

Mensajepor programandala_net » 21 Ene 2016, 00:54

mcleod_ideafix escribió:
programandala_net escribió:Por ejemplo, si sabes algún dialecto de BASIC, al leer un programa escrito en PHP podrás «adivinar» más o menos qué hace, pero eso no te sirve para ponerte a escribir PHP, ni mucho menos significa que PHP sea más o menos fácil.


Yo con esto discrepo: precisamente leyendo programas escritos en PHP, o cualquier otro lenguaje, es como precisamente he aprendido a usar alguno de esos lenguajes, o al menos a modificar el código de esos programas que he visto y que la modificación funcione. Y todo grcias a que aunque cada uno tenga la sintaxis de su padre y de su madre, visto uno vistos todos. Eso permite no sólo ponerse a hacer código en un lenguaje nuevo del que sólo has mirado algunos programas de ejemplo, sino que también permite al programador más experimentado trasladar algoritmos que ya están implementados en un lenguaje (pongamos C) a otro (pongamos PHP o Perl) con un móínimo de esfuerzo.


Estoy de acuerdo con lo que dices. Por una parte así es como se aprende, por supuesto, leyendo y modificando código, independiente o paralelamente al estudio en sí del lenguaje. Y por otra parte, está también claro que cuando dos lenguajes se parecen, es posible trasladar algoritmos con más facilidad de uno a otro, aunque el programador no conozca el lenguaje de origen. Pero esto no significa que discrepe conmigo mismo :)

Yo me refería a un aspecto diferente de la cuestión, a un aspecto previo: al hecho de sacar conclusiones acerca de la facilidad o no de un lenguaje con solo un primer vistazo, en función de si se parece más o menos a algo a lo que ya estamos acostumbrados. Eso no es un criterio objetivo sobre la facilidad en sí de ese lenguaje, cuyas reglas desconocemos. El hecho de que nos resulte familiar puede ayudarnos en el proceso de aprendizaje, pero no quiere decir que en sí mismo sea más fácil de aprender o de usar.

mcleod_ideafix escribió:En el caso de Forth por ejemplo, en donde el programador debe ser consciente de que existe una pila, y que de hecho necesita esa pila para poder implementar cosas como la recursión, hace que escribir un programa recursivo sea más complejo, sobre todo si dicho programa usa muchas variables locales (y que por tanto necesitan salvarse en la pila en cada llamada recursiva).


No, no hay dificultad. La propia pila de datos sirve para guardar lo que necesitas en la recursión, de forma implícita; y las variables locales en Forth usan la pila de retornos como almacenamiento, u otras estructuras a medida, para poder funcionar de forma recursiva. De todas formas en Forth se usan poco, pues no suelen hacer falta, aunque es cierto que en ocasiones facilitan mucho las cosas, y se están haciendo más populares. En todo caso, creo que tu planteamiento parte de cómo se programa generalmente en otros lenguajes, en largos bloques de código. En Forth el código se divide en unidades pequeñas (a menos que haya una buena razón en contra).

mcleod_ideafix escribió:
programandala_net escribió:

Código: Seleccionar todo

: lavadora  ( programa -- )    Ejecutar un programa de lavado
  puerta cierra
  prelava lava desagua enjuaga desagua centrifuga
  1 minutos espera
  puerta abre  ;



Lo mismo, escrito en C:

Código: Seleccionar todo

void lavadora()
{
  puerta(CERRAR);
  prelava();
  lava();
  desagua();
  enjuaga();
  desagua();
  centrifuga();
  espera(1);
  puerta(ABRIR);
}


Pues no sé... lo veo igual, o más claro.


Si lo ves tan claro será porque... esa función en C está escrita precisamente con el estilo de Forth :D Es decir, cortita y sin estructuras de control. Puedes escribir lo mismo en cualquier lenguaje y se leerá igual de claro. Hasta en ensamblador, por supuesto.

Pero la cuestión es por qué se escribe de una manera u otra. Eso está muy relacionado con cómo funciona internamente cada lenguaje, y por tanto es difícilmente comparable.

mcleod_ideafix escribió:El número y tipo de los parámetros a la función (equiv a la palabra en Forth) está bien ubicado. En Forth, o pones un comentario explicando qué parámetros toma la palabra (y en qué orden tienen que estar en la pila) o tienes que ponerte a mirar el código de la palabra para adivinar de qué forma usa la pila.


Cierto. Eso puede pasar. Pero en buena medida es cuestión de método y de costumbre. Idealmente, en Forth escribes palabras muy cortas, cuya función y argumentos sean casi evidentes en la solución del problema particular. Cuando en la definición de una palabra no recuerdas lo que hay en la pila y necesitas anotarlo, es señal de que la palabra está haciendo más cosas de las que debería... A veces lo suyo es factorizar; otras veces un pequeño comentario de pila basta (pues nadie te obliga a no ponerlo). Además... ¿que otra cosa son, si no, los parámetros de las llamadas a las funciones de C? Son comentarios de pila en toda regla, y para colmo obligatorios :)

mcleod_ideafix escribió:En C no tienes por qué poner cada llamada a función en una línea diferente. Si quieres algo más compacto puedes escribir:

Código: Seleccionar todo

void lavadora()
{
  puerta(CERRAR);
  prelava(); lava(); desagua(); enjuaga(); desagua(); centrifuga();
  espera(1);
  puerta(ABRIR);
}



Cada lenguaje tiene su sintaxis para estas cosas. En Forth puedes poner lo que quieras donde quieras y como quieras... y por eso puedes hacerlo tan incompresible como quieras :) La «maquetación» del código no forma parte de ninguna sintaxis, es solo un conjunto de convenciones clásicas de estilo, por ejemplo para separar en «frases» las palabras relacionadas, las que forman una unidad lógica. De hecho un método habitual es usar dos espacios entre grupos de palabras que están relacionadas.

mcleod_ideafix escribió:En tu código, qué hace la palabra PUERTA?. Qué hace CIERRA?. CIERRA no es parámetro de PUERTA porque aparece detrás, entonces...?


Precisamente el orden indica que la acción es `cierra`, mientras que `puerta` es el objeto, el dato, la palabra que dejaría en la pila aquello que `cierra` debe cerrar. Es lo habitual. En la práctica, que `puerta` sea una variable o una constante o un cálculo es irrelevante en ese nivel de abstracción del problema. Existen convenciones para nombrar las palabras, de forma que indiquen su función (lo que hacen, no lo que son), pero es posible usar cualquier otra convención para distinguir unos tipos de palabras de otros mediante el nombre.

En todo caso, generalizando el enfoque del ejemplo de la lavadora, podrías usar estos comandos (tanto directamente desde el teclado como dentro de un programa, esa es la «gracia»):

Código: Seleccionar todo

puerta cierra  válvula cierra  grifo cierra


Y así puedes probar a fondo el programa controlador de tu lavadora :) antes de publicarlo, sin necesidad de añadir al programa una interfaz o un menú o un arranque especial para probar la función que necesitas probar.

Hay también varias formas de poder hacerlo al revés:

Código: Seleccionar todo

cierra puerta  cierra válvula  cierra grifo


Depende de lo que hagan exactamente las palabras y cómo. Pero suele ser más práctico y eficaz, y más fácil de generalizar y de mantener, dejar la acción al final.

Lo que se aplica a las lavadoras se aplica a los marcianos (es decir, la posibilidad de probar cada parte del programa por separado de forma interactiva):

Código: Seleccionar todo

1 marciano pinta  1 marciano 3 x mueve
2 marciano pinta  2 marciano -3 y mueve
2 marciano dup  dup 100 200 apunta  dispara
1 marciano estalla


mcleod_ideafix escribió:Debo suponer que MINUTOS es una palabra que convierte su parámetro al tipo de unidad de tiempo que usa la palabra ESPERA?


Eso es. También podría ser `1 espera`, que sería menos claro, o mejor simplemente `1 minutos`, de forma que `minutos` hace una pausa de los minutos indicados. La elección de nombres adecuados es importante.

El hecho de pasar los parámetros de forma implícita en la pila es lo que te permite escribir cosas como esta:

Código: Seleccionar todo

programado dup 3 + * minutos 4 + espera


En lugar de esto (en seudocódigo):

Código: Seleccionar todo

call espera(minutos(programado*(programado+3))+4)


Cada método tiene ventajas e inconvenientes. El método de Forth es inseparable del funcionamiento interno del lenguaje. No es una sintaxis arbitraria implantada en un compilador o en un intérprete. Por poner un ejemplo trivial: usar dos puntos para separar comandos en BASIC o punto y coma en C es irrelevante, es una decisión del autor que podría haber sido diferente, y no afectaría a cómo funciona el intérprete o el compilador correspondiente; y como ello tantas cosas. Pero la forma en que se escribe el código en Forth no es separable de su funcionamiento interno; es una consecuencia de él.

En cualquier caso influye también la costumbre. A mí me resulta más natural seguir un código que se va compilando o ejecutando tal cual se lee, de izquierda a derecha, igual que una operación en notación polaca inversa, como se usa en Forth, que atisbar el código entre signos, desentrañar las anidaciones sin fin de las expresiones y las prioridades de los operadores y demás; a menudo esas expresiones me parecen estar escritas al revés, en «notación española torcida» ;)

Por suerte hay cientos y cientos de lenguajes para elegir, aunque para nuestros queridos micros son muchos menos. No pretendo comparar Forth con otros lenguajes, que son muy útiles y muy prácticos y muy populares y muy conocidos y muy recomendables; y mucho menos decir que Forth es «superior» en todo para todo y para todos. Eso sería absurdo. Simplemente, Forth es menos conocido y además es diferente de lo habitual, pero tiene ventajas únicas que lo hacen muy atractivo y útil para quienes lo usamos.
Marcos Cruz (programandala.net)

Avatar de Usuario
Uto
MSX Turbo R
MSX Turbo R
Mensajes: 444
Registrado: 28 Abr 2014, 15:50
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo SNES
Primera consola: TV Games/Pong Clone
Gracias dadas: 5 veces
Gracias recibidas: 26 veces

Re: Paul Andrews ha comprado la marca Jupiter ACE

Mensajepor Uto » 22 Ene 2016, 01:45

carmelococo escribió:PD: Tu tienes una taza igual, no la misma :D

Hmm... salvo que tú y yo seamos la misma persona con un trastorno de personalidad múltiple, creo que tienes (o tenemos) razón. :gamers:
http://www.ngpaws.com
Twitter: @uto_dev

dancresp
Amiga 1200
Amiga 1200
Mensajes: 1393
Registrado: 23 Dic 2008, 17:53
Sistema Favorito: MSX
primer_sistema: ZX81
Primera consola: Atari 2600
Gracias dadas: 3 veces
Gracias recibidas: 20 veces

Re: Paul Andrews ha comprado la marca Jupiter ACE

Mensajepor dancresp » 26 Ene 2016, 18:24

mcleod_ideafix escribió:Probablemente se pueda escribir un programa más complejo en 1K de memoria de usuario en Forth en el Jupiter ACE que en BASIC del ZX81, aunque en esto, dancresp y programalandia son los expertos :).

Jejeje, gracias por la parte que me toca !!! =D>

Ahora, si quieres te recuerdo el desmontaje que hicistes de mi versión del "Solitario"... >|

..., eso si, lo que aprendí lo apliqué posteriormente en el "Rush Hour". :D
Buscando la IP de la W.O.P.R.


Volver a “Otros microordenadores”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados