Habi Hablóg
Declaro:
XML válidoXHTML válido800x600 +
RSS válidoCSS válidoNavegador digno
  Blog   Archivo   Contacto   Administración  

Acerca de

Matemático, informático, aficionado a la electrónica, friki... y otras cosas que no vienen a cuento ni pasan los filtros de palabras.

¿Queríais un blog? Ahí va.

Red antisocial

¡Me van a volver loca! 2.0
La Fragata Portuguesa

Z
¡Me van a volver loca!

Últimos posts

Crackeo preservativo
Restaurando ROMs
Una cosa lleva a la otra
Desbloqueando logros
Teclado en el PCW

Últimos comentarios

genocho
Victor Cortes Abad
Habi
Enrique
Dandare

Calendario

No hay fechas.

Categorías

Chorradas
Paranoias
Posts lúcidos
Tecnoesoterismo
Yuyus

Cenas de Abj

Abj debe 7 cenas.

Frase célebre

Habi dice: Pues por aquí hay un paquete para Abj

Hmmm

Habi - 24/08/2006 21:18:00 - Tecnoesoterismo

Ayer estuve haciendo limpia entre todos los proyectos de Delphi que tengo empezados. La mitad de ellos eran analizadores sintácticos / semánticos y traductores en general; para Freud tendría algún significado.

¿Cómo debería ser el lenguaje ideal? No hay lenguaje ideal. Cada elección de diseño aporta ventajas e inconvenientes a partes iguales.

Un lenguaje interpretado es ideal para la depuración, para construcciones dinámicas y de alto nivel y para su integración en entornos cualesquiera. Pero al ser tan dinámico es bastante más lento que uno compilado, el cual ya tiene resueltos estáticamente los enlaces y traducción, y ha podido ser optimizado profundamente, amén de no requerir un entorno para integrarse con otros lenguajes.

Con los paradigmas es casi peor, porque aunque los lenguajes y la forma de programar en ellos sea radicalmente distinta, todos sirven para todo. Es un tema de comodidad, depende para lo que se lo vaya a usar.

Y luego está el tema del traductor, mi preferido. Un lenguaje como Pascal o C puede implementarse con LR (SLR, LALR) sin problemas, en el caso del Pascal basta con un LL un poco modificado (al fin y al cabo, el Pascal fue diseñado para compilar en un solo paso, sólo hay que desambiguar el IF).

Sin embargo, si quisiese un lenguaje compilado que pudiese definir sus propios operadores (no sobrecargar los existentes) teniendo en cuenta la asociatividad y precedencia de éstos no nos valdría un LR a secas, por usar tablas estáticas, con lo que no nos valdrían ninguno de los generadores automáticos que hay (mi solución a esto fue usar una técnica híbrida, con un LL modificado para toda la gramática que no fuesen expresiones y precedencia de operadores por funciones de precedencia para éstas, aunque esto es otra historia).

Me está quedando un post muy largo y no he entrado en detalles de ningún tipo. Divago. ¿Cómo debería ser un buen lenguaje para desarrollar aplicaciones eficientes tanto en tiempo de ejecución como de desarrollo? Aunque quizás de lo segundo, puede encargarse un entorno de desarrollo integrado, fijaos si no en el VB.

Por mi parte: compilado, imperativo / funcional, con macro-preprocesador, capacidad de inline, un sistema de tipos fuerte aunque con amoldamientos y una sintaxis clara y ortogonal. Y si tiene objetos (en algún sentido), herencia simple con interfaces añadidos.


Z - 24/08/2006 22:24:44

Uhhhhhhhhhm. 
 
Habi, ¿te has dado cuenta de que hablando de lenguajes óptimos, has acabado nombrando al VisualBasic? 
 
Freud encontraría material ahí para hacer crucigramas durante años!!!!




Post cerrado