Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Temas relacionados > Debates
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #18  
Antiguo 14-10-2018
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por brakaman Ver Mensaje
Yo por lo que he entendido cuando un lenguaje o compilador esta hecho en si mismo, normalmente se hace un pequeño kernel en lenguaje C
Es un camino comun. Pero no es INDISPENSABLE. El que parezca serlo es ppalmente que las comunidad de hacedores de lenguaje es muy pequeña ( y esos hacedores son muy conservadores en su uso de herramientas), y solo en los ultimos años se ha extendido y se hace mas popular la idea de hacer lenguajes.

Se hace en C por inercia, y acceso a ecosistema. Pero puedes arrancar con CUALQUIER lenguaje. El punto es que la implicacion de la imagen no es correcta (aunque se puede argumentar que historicamente fue la sequencia que nos toco. Pero perfectamente pudo haber sido diferente: Lisp pudo haber sido el "c" para hacer lenguajes).

Ahora, para *interpretes* si es mas cierto. Se pueden hacer interpretes metacirculares, en su propio lenguaje, y en un lenguaje mas "arriba", pero para hacerlos eficientes, necesitas hacer un bytecode y tener un lenguaje con la maquinaria de operar eficiente en eso ( y para especificar la estructuras y manipulacion memoria). Si tiene GC, este interfiere con el tema, porque los GC estan ajustados a su lenguaje, asi que si te desvias mucho termina afecto negativamente.


Ahora, esto es puramente por eficiencia. Se puede totalmente hacer un interprete de C en Java y con bytecode, no ser tan lento en su generalidad (solo sufrir en manipulacion intensiva).

P.D: Llevo como 3 años ya leyendo del tema y prototipando lenguajes en varios entornos.

P.D: Si hablamos de que *realmente* hace un lenguaje bueno para hacer lenguajes, tenemos que estas son sus familas/versiones:

Todos los lenguajes con Homoiconicidad (https://es.wikipedia.org/wiki/Homoiconicidad):

- Derivados Lisp, por su enorme facilidad de metaprogramacion
- Forth y derivados, trivial de hacer bootstraping
- ML y derivados: Uso de tipos algebraicos hacen para lenguajes tipados lo que lisp para no tipados: Trivial de operar en AST

Y lenguajes con capacidad de operar en estructuras de "bajo" nivel. C, C+, Pascal, Delphi... pero se puede en C#, Java con extenciones y soportes como

https://github.com/dotnet/roslyn

que operan al nivel del AST y no del lenguaje de alto nivel como tal.

Osea, lo que hace a un lenguaje bueno pa hacer lenguajes? Que permita manipular AST de forma eficiente y natural.
__________________
El malabarista.

Última edición por mamcx fecha: 14-10-2018 a las 01:16:36.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como Preguntar antes de borrar un registro kaeltas Conexión con bases de datos 6 23-04-2013 06:34:08
me bucas la ayuda online antes que en delphi strendek Windows 1 12-07-2008 17:12:31
!hombres Como Los De Antes! marcoszorrilla La Taberna 0 11-05-2008 22:32:04
Identificación de usuarios antes de ejcutar delphi pat_velton Varios 7 26-05-2006 10:00:04


La franja horaria es GMT +2. Ahora son las 05:23:28.


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
Copyright 1996-2007 Club Delphi