Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Debates (https://www.clubdelphi.com/foros/forumdisplay.php?f=29)
-   -   Creando mi propio lenguaje: Ideas (https://www.clubdelphi.com/foros/showthread.php?t=80367)

mamcx 04-12-2012 15:25:46

Cita:

Empezado por tiammat (Mensaje 443883)
No sabes..., sería TAN hermoso un lenguaje de programación "PASCAL alike" en castellano...

En la profesional nos tocó "diseñar" un compilador para una materia de programación, pero como en todos los casos, terminas recurriendo a C para "crear" tu lenguaje. Como dato curioso, nuestro lenguaje de programación usaba el náhuatl como modelo de sintaxis y en las palabras.

Bueno, me encontre con https://github.com/alcides/pascal-in-python. El parser esta hecho en python y el compilador (backend) es LLVM, que es de lo mas avanzado que hay. Volverlo español se ve trivial (aunque soy de la idea que es mejor que un lenguaje sea en ingles).

fer21unmsm 05-12-2012 17:03:56

Yo estoy optando por investigar más y adentrarme en el MDD (desarrollo dirigido por modelos), que parece una alternativa interesante, y que a su vez en un futuro quizas muy lejano, si se llega a dar, va a apoyar de forma enorme al programador y/o al arquitecto ;)

Al González 05-12-2012 19:01:16

Mi sugerencia es que sea orientado a objetos y se admita redefinición de clases (herencia insertada). Ejemplo:

Unit1, creada por el programador Javier, de Quito, en 2014 como parte de la biblioteca "LaboratoryLib":
Código Delphi [-]
TClaseX = Class (ClasePadreCualquiera)
...
End;

// Clase derivada 1
TClaseD1 = Class (TClaseX)
...
End;

// Clase derivada 2
TClaseD2 = Class (TClaseX)
...
End;

Unit2, creada por el programador Alfredo, de Monclova, en 2015 como parte de un proyecto particular:
Código Delphi [-]
TClaseX = Overridden Class (Unit1.TClaseX)
...{ Nuevos campos / métodos / propiedades para TClaseX que sus actuales descendientes 
     (TClaseD1 y TClaseD2) heredarán en automático.  No es crear otra clase más, sino 
     "insertarle" nuevos elementos (incluyendo redefinición de métodos) a una ya existente, 
     sin tocar su código original (Unit1) e impactando a cualquier clase ya escrita que derive 
     de ella. }
End;

Y ya que entramos en esto, también que las clases no puedan declarar miembros privados (secciones private); en mi opinión, todas las clases deberían poder acceder sin restricciones al contenido que heredan de sus ancestros y la mínima visibilidad de miembros debería ser protected. Y que tampoco puedan estar ni parcial ni totalmente selladas (sealed); ceo que algo no está bien cuando te encuentras con una clase que te impide usar herencia para mejorarla o adaptarla a una circunstancia particular.

Y bueno, si además pudiéramos hacer que todas las rutinas (tanto métodos como funciones "sueltas") sean virtuales, sólo agreguémosle la sintaxis Pascal y tendríamos un lenguaje de programación casi perfecto.

Lo sé, estos párrafos causarán escozor o risas a los más ortodoxos, pero confío en que el tiempo me dará un poco de razón. ;)

mamcx 05-12-2012 19:18:10

Te interesara entonces mirar El diseño del lenguaje GO, en particular la parte sobre interfaces y como GO elimina la herencia para mejorar la capacidad de componer clases, que me parece logra lo que quieres, pero mejor.

Obj-c permite hacer algo parecido, mediante categorias. Python y ruby pueden hacer Monkey Patching.

Tambien esta http://lambda-the-ultimate.org/, que es como la comunidad mas interesante que conozco sobre lenguajes, creacion y avances en el tema.

Osea, hay mucho por hacer!

Al González 05-12-2012 20:27:54

Cita:

Empezado por mamcx (Mensaje 451300)
Te interesara entonces mirar [...] Osea, hay mucho por hacer!

Gracias por los enlaces, Mario. O sea [separado] que no ando tan errado. :)

fer21unmsm 17-12-2012 19:26:24

Para crear un nuevo lenguaje, uno tendría que tener muy claro, el tema de compiladores y traductores (dependiendo del caso), en la universidad nos dejaron de proyecto hacer un compilador y para esto definir un lenguaje y todo el rollo que involucra, para esto se tuvo que manejar matemáticas discretas, y tuvimos que desarrollar el analizador lexico-sintáctico y el analizador semántico. Es más o menos lo que me acuerdo.:D


La franja horaria es GMT +2. Ahora son las 10:56:10.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi