Programación avanzada: Conversión del módulo PLANKTON a otros compiladores

Iniciado por eb4bgr, 17 Julio 2010, 07:04 AM

0 Miembros y 1 Visitante están viendo este tema.

eb4bgr

Hola a todos, os voy a contar algo sobre mí:  Llevo programando desde el año 1990 (1986 si se cuenta el BASIC del Oric-1).  En todo este tiempo la mejor herramienta que he conocido en programación son las macros de los compiladores xBase (C3, Fox-Pro, Clipper, dBase), representadas por el símbolo <&> y alojadas en el módulo PLANKTON.  Estas macros, por lo que he leído en la red, se inventaron para suplir algunas deficiencias del motor de bases de datos incluído en esos programas/compiladores.  En el mundo de los programadores de xBase, hay muchos detractores a la hora de usar estas macros.  En mi opinión, es la mejor herramienta que se ha podido inventar en el mundo de la programación, y es la gran responsable de que mis conocimientos como programador no hayan avanzado hasta donde yo quiero llegar, puesto que he intentado varias veces llevármelas a otros compiladores y nunca lo he conseguido.  Creedme cuando os digo que cuando yo quiero inventar un programa lo pienso en xBase.

He probado intérpretes de la línea de comandos en otros compiladores, he bajado código fuente disponible en la red para intentar aprenderlo y desarrollarlo por mi cuenta (estaba en C y es bastante complejo de entender para mí), pero no pasan de ser eso: meros intérpretes de la línea de comandos de un compilador.  Por algunas cosas que he leído de Assembler creo (doy por hecho que se puede pero no sé como) que podría ser relativamente fácil conseguirlo, pero es un asunto muy, muy complejo.  Os voy a poner un ejemplo explicado de lo que pueden hacer estas macros ...

Private cVarName, cValue     ; Declara las variables privadas indicadas, sin tipo de datos definido.

cVarName := "MyVar"          ; Asigna los valores a las variables privadas (también las define como
cValue := "3+1"                  ; tipo String).

Public &cVarName                ; Crea la variable pública <MyVar>, sin tipo de datos definido.

&cVarName := &cValue        ; Asigna el valor <4> a la variable pública <MyVar> y la define como
                                           ; tipo Number.

Todo esto se puede evaluar desde cualquier parte del programa compilado y ejecutándolo en tiempo real, crear matrices y pseudo-comandos, con la ventaja de que también podemos llamar a cualquier función del compilador o de los módulos compilados en nuestro proyecto y obtener o evaluar un resultado de cualquier tipo de expresión en tiempo real de ejecución de nuestro programa, tan solo con unas pocas líneas de código fuente.  Ahora imaginaros las posibilidades reales de esta herramienta en vuestro compilador favorito.

Si hay alguien que sepa hacer esto de forma que genere algún archivo .Obj o tener un código fuente que pueda compilarse/linkarse con nuestro compilador (preferentemente Delphi y C por su velocidad), me habrá ayudado en algo que para mí es muy necesario e importante.

Gracias a todos.