Digamos que quería crear mi propio lenguaje de programación. Suponiendo que he tomado todas las decisiones sobre cómo quiero que se vea y actúe, ¿solo necesito escribir un compilador para ello?
No. Tomar todas las decisiones sobre cómo desea que se vea y actúe el lenguaje es crear su propio lenguaje de programación. No necesita un compilador o un intérprete para crear un lenguaje de programación. No necesita un compilador o un intérprete para escribir programas en su lenguaje de programación.
Solo necesita un compilador o un intérprete si realmente desea ejecutar los programas que escribe.
Mi pregunta es, ¿la creación de un lenguaje de programación se realiza a través de un compilador? De alto nivel está bien.
No. La creación de un lenguaje de programación se realiza creando dos conjuntos de reglas:
- cómo se ve un programa legal (sintaxis)
- Qué hace un programa legal (semántica)
Eso es.
Hay lenguajes de programación que no tienen implementación. O que no tuvo implementación durante mucho tiempo.
Por ejemplo, Konrad Zuse creó Plankalkül a mediados de la década de 1940, pero debido a la guerra nunca pudo implementarlo. Se implementó por primera vez como parte de una disertación en 1975. Pero ciertamente existió en las décadas de 1950 y 1960.
LISP fue diseñado originalmente como una alternativa más manejable al cálculo λ para estudiar computación. Fue implementado por Steve Russell, un estudiante de John McCarthy. ¡McCarthy incluso dudó de que LISP pudiera implementarse en absoluto!
APL fue diseñado originalmente como una notación para la enseñanza de las matemáticas. Más tarde se amplió para servir como lenguaje de especificación para IBM System / 360. Las implementaciones llegaron más tarde, después de que el lenguaje ya había sido utilizado.
PLANNER era un lenguaje muy influyente, que en realidad solo se implementó después de que ya había influido en otros idiomas; Fue diseñado en 1969 e implementado en 1973, momento en el que ya había influido en Smalltalk y Prolog (ambos en 1972).
Estructura e interpretación de la mecánica clásica es un libro de texto de física que utiliza Scheme en lugar de matemáticas para describir sistemas dinámicos; El hecho de que Scheme tenga intérpretes y compiladores no es esencial para el libro, se usa como un lenguaje para transmitir pensamientos, no para ejecutar programas.
Como puede ver, los lenguajes de programación pueden ser útiles incluso sin implementaciones. "Los programas deben estar escritos para que los humanos los lean, y solo de manera incidental para que las computadoras los ejecuten" es una famosa cita de Estructura e interpretación de programas de computadora. Los lenguajes de programación son lenguajes formales para describir inequívocamente procesos complejos. El hecho de que si describe un proceso con la precisión suficiente para que un humano lo entienda, también es ejecutable por una máquina es un efecto secundario. Es un efecto secundario muy deseable, útil, poderoso, pero es un efecto secundario.
Los primeros "lenguajes de programación", cálculo λ, cálculo SKI, máquinas de Turing, funciones recursivas μ, no fueron creados para la ejecución. Fueron creados para comprender cuestiones fundamentales de lógica y matemáticas.