Cómo crear un lenguaje de programación
Muchas personas tienen dificultades o frustraciones con los lenguajes de programación que usan todos los días. Algunos quieren que las cosas se manejen de manera más abstracta, mientras que otras personas no les gustan las características de implementación que desean eran "estándar". Si usted es un profesional de TI o simplemente un aficionado, muchas veces puede encontrar usted mismo con ganas de crear un nuevo lenguaje de programación.
Pasos
1. Familiarizarse con la tecnología. No puede crear un lenguaje de programación si no sabe cómo usar una computadora.
2. Familiarizarse con la terminología. Los escritores del compilador a menudo usan terminología desconocida. Leer en los compiladores antes de proceder. Asegúrate de saber todo lo que necesitas saber.
3. Decide qué problema su idioma está resolviendo. ¿Se está abordando un problema específico de dominio, o es un lenguaje de propósito general??
4. Piensa en la semántica de su idioma y los conceptos de ello.
5. Piense en algunas tareas específicas que alguien querría poder realizar con su idioma. Por ejemplo, `pueden querer dirigir un robot para seguir una línea` o `pueden querer crear programas de escritorio relativamente portátiles` o `pueden querer crear aplicaciones web con ella`.
6. Experimento con ideas de sintaxis (el texto del idioma) para los ejemplos anteriores.
7. Escribe una gramática formal para la sintaxis.
8. Decidir si el idioma será interpretado o compilado. Lo que significa que en el mundo interpretado, su usuario normalmente editará su programa en un editor y lo ejecutará directamente en el intérprete, mientras que en el mundo compilado, su usuario editará su programa, compilarlo, guardará el ejecutable resultante en algún lugar y lo ejecutará.
9. Escriba el escáner de la parte delantera y el analizador o encuentre una herramienta que le ayude con esto.
10. Use la información del analizador para escribir el código de objeto o una representación intermedia. Haga que el analizador cree un AST, luego cree su código de objeto de la AST utilizando tres código de dirección o su SSA de Big Brother, luego cree una tabla de símbolos para definir sus funciones, las variables globales, etc.
11. Escriba el ejecutor o generador de código que vincule todo.
12. Escribe muchos programas de prueba para probar el idioma.
13. Considere cómo el usuario depurará sus propios programas.
14. Si su idioma usa una biblioteca estándar, querrá escribirlo. Junto con un colector de basura u otras funciones de tiempo de ejecución si lo necesita.
15. Publique su idioma, junto con la especificación para ella y algunos ejemplos de lo que puede hacer en él.
Video
Al utilizar este servicio, se puede compartir información con YouTube.
Consejos
Comience por diseñar su idioma y no escriba ningún código, hasta que esté satisfecho y haya respondido a todos (o la mayoría) de las preguntas o problemas relacionados con su diseño, ya que es más fácil cambiar el diseño antes de lo largo.
Conozca su plataforma de destino (sistema operativo y bibliotecas) para su compilador / intérprete, después de todo, lo va a usar y lo manipulará.
Advertencias
Piense si realmente necesita un nuevo idioma, y lo que su idioma tiene de nuevo que otros idiomas no tienen (puede ser una combinación de características o una sola característica).
Escribir idiomas es difícil si no sabes lo que estás haciendo. También se necesita mucha práctica.
Prepárese para pasar un tiempo en el diseño de idiomas, ya que no tendrá la oportunidad de cambiar su idioma una vez que haya escrito el compilador y más allá del punto de diseño.
No intente basar sus funciones en una unión de varios idiomas, como decir que su idioma será una unión de idioma x, lenguaje y lenguaje z. La historia nos ha mostrado que los idiomas creados de tal manera nunca encontrarán el éxito, o todos estarían programando PL / 1 en lugar de algo basado en C.
Cosas que necesitarás
- Paciencia.
- Conocimiento sobre características del lenguaje y diseño de idiomas (es posible que desee leer conceptos de diseño de lenguaje de programación de David A. Vatio).
- Conocimiento sobre la teoría del compilador (ya que escribirá un compilador / intérprete para su idioma y su implementación será la implementación de referencia).
- Usos para su idioma (recuerde que se crearon algunos de los idiomas más utilizados como C o Lisp para hacer algo específico como crear unix o hacer una cálculo simbólica).