He visto muchos tutoriales para hacer un lenguaje de programación, pero muy pocos para escribir uno en Python. Me gustaría saber cómo (relativamente fácil) crear un lenguaje de programación usando Python.Cómo crear un lenguaje de programación en Python
Respuesta
- Imagínese su idioma. ¿Cómo quieres que se vea? ¿Qué características debería tener?
- Piense en un idioma existente que sea lo más similar posible al idioma que desee. Está bien si las palabras clave son todas diferentes, pero si decides hacer Python no comenzarías con Lisp porque las estructuras son fundamentalmente muy diferentes.
- Busque una gramática existente para el idioma que eligió en el paso 2. Miraría aquí: http://www.antlr3.org/grammar/list.html. Si no puede encontrar uno, haga el paso 2 nuevamente.
- Usando ANTLR (o cualquier generador de analizadores que comprenda la gramática que encontraste en el paso 3), construye un módulo de Python que entienda el idioma que eliges en el paso 2. ANTLR tiene cierto nivel de soporte para un "objetivo" de Python (lo que significa el código del analizador estará en Python, en lugar de hacer un analizador que entienda el lenguaje Python). Si te quedas atascado con el código del analizador en C (que puedes), escribe enlaces de Python para él (probablemente sea más fácil usar Boost Python, pero podrías usar la API de Python C directamente si estás muy familiarizado con C y Python).
- de inicio hacer modificaciones (en pequeños pasos al principio) a la gramática de la etapa 3 para que sea más como el lenguaje que ha diseñado en el paso 1.
hacer estas cosas cuidadosa y deliberadamente, y después de unos días de trabajo, es posible que tenga un analizador decente a medias para su idioma. Entonces necesitarás consumir la salida del analizador (si usas ANTLR, considera usar los Árboles de sintaxis abstracta, o ASTs, que puede generar para ti). A continuación, deberá convertir la sintaxis analizada en un idioma de destino, como el ensamblaje x86 o algún bytecode intermedio como el utilizado por Java, Lua, Microsoft .NET o lo que sea.
Buena suerte, y prevenido: este proceso tomará mucho tiempo para hacer lo correcto.
No estoy seguro de lo que quiere decir con "crear un lenguaje de programación". Pero creo que le gustaría leer el excelente artículo de Peter Norvig (How to Write a (Lisp) Interpreter (in Python)). ¡Esto muestra cómo puedes construir un intérprete de Lisp en solo 90 lines of Python!
Una vez que haya entendido eso, intente (An ((Even Better) Lisp) Interpreter (in Python)).
Creo que deberías leer esto para implementar el lenguaje de programación.
http://matt.might.net/articles/implementing-a-programming-language/
- 1. ¿Cómo crear un lenguaje de programación .Net?
- 2. Creación de un lenguaje de programación simple en Python
- 3. crear mi propio lenguaje de programación
- 4. Plataforma para crear un lenguaje de programación visual
- 5. Análisis léxico del lenguaje de programación Python
- 6. ¿Qt 4 es un lenguaje de programación?
- 7. Incrustar un lenguaje de programación en un programa
- 8. Siri lenguaje de programación
- 9. ¿Cómo hacer tu propio lenguaje de programación?
- 10. Rpython PyPy como un lenguaje de programación en general
- 11. Crear un lenguaje de scripting
- 12. Lenguaje de programación para crear DLL: C++ o C#
- 13. Lenguaje de programación y compilador
- 14. ¿Qué es un lenguaje de programación formal?
- 15. ¿XSLT es un lenguaje de programación funcional?
- 16. ¿Cómo aprender R como lenguaje de programación?
- 17. ¿Qué lenguaje de programación funcional debería elegir como primer lenguaje de programación funcional?
- 18. ¿Su lenguaje de programación en un navegador (es decir, Javascript)?
- 19. ¿Cómo harías para escribir un lenguaje de programación simple?
- 20. Hojas de cálculo que utilizan un lenguaje de programación funcional
- 21. ¿Qué significa ser bueno en un lenguaje de programación?
- 22. Arrays en lenguaje de programación J
- 23. Síntesis del lenguaje de programación general (Python) con lenguaje personalizado (PureData/MaxMSP/ChucK)
- 24. Windows: ¿Qué lenguaje de programación?
- 25. GBA ROM Lenguaje de programación
- 26. ¿Qué características de lenguaje se requieren en un lenguaje de programación para hacer un compilador?
- 27. Lista doblemente enlazada en un lenguaje de programación puramente funcional
- 28. R como un lenguaje de programación de uso general
- 29. Lenguaje de programación basado en Unicode
- 30. lenguaje de programación universal para Windows
Lo mismo que en cualquier otro idioma. En serio, si sabe cómo implementar un compilador (o intérprete) en cualquier idioma y sabe cómo programar Python, sabrá cómo implementar un compilador en Python. – sepp2k
Comience escribiendo un analizador. –
Existen buenas herramientas para C/C++ para analizar su idioma: [bison] (http://www.gnu.org/software/bison/) y [flex] (http://flex.sourceforge.net/) pueden ayuda mucho No tengo idea si existen tales herramientas para python también. – amit