net language flavored common parsing lisp scheme common-lisp language-implementation

parsing - language - ¿Qué Lisp es mejor para analizar?



lisp flavored (2)

Hay algunos libros sobre eso:

Todos los libros anteriores son muy recomendables, aunque Anatomy of Lisp es antiguo, difícil de conseguir y difícil de leer.

Tanto Scheme como Common Lisp están bien para su tarea.

Implementar Common Lisp es una tarea más grande, ya que el lenguaje es más grande. Por lo general, uno implementa Common Lisp mejor en Common Lisp, ya que existen bibliotecas Common Lisp que se pueden usar para nuevas implementaciones de Common Lisp. ;-)

Me gustaría implementar un intérprete Lisp en un dialecto Lisp principalmente como un ejercicio de aprendizaje. La única cosa que me desanima es la cantidad de opciones que hay en esta área. Principalmente, estoy un poco más interesado en aprender sobre algunos de los Lisp que han existido desde hace un tiempo (como Scheme o Common Lisp). No quiero usar Clojure para hacer esto por el simple hecho de que ya lo he usado. :-)

Entonces, ¿uno de los sabores es mejor que los otros en el análisis? ¿Y crees que es una buena idea decir implementar Scheme en Common Lisp (o viceversa)? ¿O habrá suficientes diferencias entre los dos para echarme?

Y si hace alguna diferencia, me gustaría algo que sea multiplataforma. Tengo una PC con Windows, una Mac y una caja Linux, y podría terminar escribiendo esto en cualquiera de ellos.


PLT Scheme es una excelente plataforma para experimentar con lenguajes de programación, especialmente los lenguajes Lispy. PLT tiene un analizador extensible (generalmente llamado lector en Scheme) que proporciona macros de lector para manipular la sintaxis incorporada; o puede reemplazar por completo el lector con el suyo. Si prefiere usar los analizadores y lexers tradicionales de lex / yacc, PLT viene con un módulo de herramientas de analizador que también los proporciona. Como beneficio adicional, tiene una documentación completa y un repositorio de paquetes de terceros (dos cosas que faltan en muchos Esquemas).

La implementación de referencia de Arc (arclanguage.org) es un ejemplo bastante simple y legible de construir un lenguaje que compila a Scheme. Utiliza principalmente el lector de PLT, con un par de macros de lector para cambiar los bits de la sintaxis de Scheme que difieren de los de Arc. También hay una implementación de JavaScript disponible en el repositorio de paquetes de PLT (planet.plt-scheme.org) si desea ver cómo implementar un lenguaje que no sea Lisp.