Cómo crear un lenguaje de programación: 15 pasos (con imágenes)

Tabla de contenido:

Cómo crear un lenguaje de programación: 15 pasos (con imágenes)
Cómo crear un lenguaje de programación: 15 pasos (con imágenes)

Video: Cómo crear un lenguaje de programación: 15 pasos (con imágenes)

Video: Cómo crear un lenguaje de programación: 15 pasos (con imágenes)
Video: Limpiando Ventilador del procesador, disipador y ventilador de fuente de poder 2024, Abril
Anonim

Muchas personas tienen dificultades o frustraciones con los lenguajes de programación que utilizan todos los días. Algunos quieren que las cosas se manejen de manera más abstracta, mientras que a otros no les gusta implementar características que desearían que fueran "estándar". Ya sea que sea un profesional de TI o simplemente un aficionado, es posible que muchas veces desee crear un nuevo lenguaje de programación.

Pasos

Crear un lenguaje de programación Paso 1
Crear un lenguaje de programación Paso 1

Paso 1. Familiarícese con la tecnología

No puede crear un lenguaje de programación si no sabe cómo usar una computadora.

Crear un lenguaje de programación Paso 2
Crear un lenguaje de programación Paso 2

Paso 2. Familiarícese con la terminología

Los redactores de compiladores suelen utilizar terminología desconocida. Lea sobre los compiladores antes de continuar. Asegúrese de saber todo lo que necesita saber.

Crear un lenguaje de programación Paso 3
Crear un lenguaje de programación Paso 3

Paso 3. Decide qué problema está resolviendo tu idioma

¿Se trata de un problema específico de un dominio o es un lenguaje de propósito general?

Crear un lenguaje de programación Paso 4
Crear un lenguaje de programación Paso 4

Paso 4. Piense en la semántica de su idioma y sus conceptos

  • ¿Permitirá el acceso directo al puntero o no?
  • ¿Cuáles son los tipos de datos de su idioma?
  • ¿Es un lenguaje estático o dinámico?
  • ¿Cuál es tu modelo de memoria? ¿Va a utilizar un recolector de basura o una gestión de memoria manual? (Si usa un recolector de basura, prepárese para escribir uno o adaptar uno existente a su idioma).
  • ¿Cómo van a manejar la concurrencia? ¿Va a utilizar un modelo simple de enhebrado / bloqueo o algo más complejo como Linda o el modelo de actor? (Dado que hoy en día las computadoras tienen múltiples núcleos).
  • ¿Hay funciones primitivas incrustadas en el lenguaje o todo vendrá de una biblioteca?
  • ¿Cuál es el paradigma o paradigmas de su idioma? ¿Funcional? ¿Orientado a objetos? ¿Prototipo (como JavaScript)? ¿Orientado a aspectos? ¿Orientado a plantillas? ¿O algo completamente nuevo?
  • ¿Cómo va a interactuar su idioma con las bibliotecas e idiomas existentes (principalmente C)? Este punto es importante si está creando un lenguaje específico de dominio.
  • Finalmente, algunas de las respuestas a estas preguntas serán respondidas por el segundo paso y lo ayudarán a responder al siguiente paso.
Crear un lenguaje de programación Paso 5
Crear un lenguaje de programación Paso 5

Paso 5. Piense en algunas tareas específicas que alguien querría poder realizar con su idioma

Por ejemplo, "pueden querer dirigir a un robot para que siga una línea" o "pueden querer crear programas de escritorio relativamente portátiles en él" o "pueden querer crear aplicaciones web con él".

Crear un lenguaje de programación Paso 6
Crear un lenguaje de programación Paso 6

Paso 6. Experimente con ideas de sintaxis (el texto del idioma) para los ejemplos anteriores

Tenga cuidado de mantener su idioma en la categoría de idioma libre de contexto o algo dentro de ella. Tu generador de analizadores sintácticos y lo agradecerás más adelante

Crear un lenguaje de programación Paso 7
Crear un lenguaje de programación Paso 7

Paso 7. Escribe una gramática formal para la sintaxis

Crear un lenguaje de programación Paso 8
Crear un lenguaje de programación Paso 8

Paso 8. Decida si el lenguaje se interpretará o compilará

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 esté en el mundo compilado, su usuario editará su programa, lo compilará, guardará el ejecutable resultante en algún lugar y lo ejecutará.

Crear un lenguaje de programación Paso 9
Crear un lenguaje de programación Paso 9

Paso 9. Escriba el analizador y el escáner frontal o busque una herramienta que le ayude con esto

Además, piense en cómo su compilador / intérprete advertirá a su usuario sobre programas erróneos y errores de sintaxis

Crear un lenguaje de programación Paso 10
Crear un lenguaje de programación Paso 10

Paso 10. Utilice la información del analizador para escribir el código del objeto o una representación intermedia

Haga que el analizador cree un AST, luego cree su código objeto a partir del AST usando el código de tres direcciones o su hermano mayor SSA, luego cree una tabla de símbolos para definir sus funciones, variables globales, etc.

Además, dependiendo de su idioma, es posible que también desee crear tablas de punteros virtuales o tablas de información para sus clases (para admitir la reflexión o RTTI)

Crear un lenguaje de programación Paso 11
Crear un lenguaje de programación Paso 11

Paso 11. Escriba el ejecutor o generador de código que unirá todo

Crear un lenguaje de programación Paso 12
Crear un lenguaje de programación Paso 12

Paso 12. Escriba muchos programas de prueba para probar el idioma

Desea crear programas que enfaticen las cargas de su gramática formal para ver que su compilador acepta todo lo que está dentro de su definición y rechaza todo lo que está fuera de ella

Crear un lenguaje de programación Paso 13
Crear un lenguaje de programación Paso 13

Paso 13. Considere cómo depurará el usuario sus propios programas

Crear un lenguaje de programación Paso 14
Crear un lenguaje de programación Paso 14

Paso 14. Si su idioma usa una biblioteca estándar, querrá escribirla

Junto con un recolector de basura u otras funciones de tiempo de ejecución si lo necesita.

Específicamente, si escribe un compilador, necesitará el código que ejecutará el sistema operativo para comenzar a ejecutar el código de usuario (por ejemplo, asignando todas las variables globales)

Crear un lenguaje de programación Paso 15
Crear un lenguaje de programación Paso 15

Paso 15. Publique su idioma, junto con la especificación del mismo y algunos ejemplos de lo que puede hacer en él

No olvide documentar cómo puede integrarse con bibliotecas, lenguajes existentes y cómo usar las funciones de tiempo de ejecución y / o la biblioteca estándar

Video: al utilizar este servicio, es posible que cierta información se comparta con YouTube

Consejos

  • Comience por diseñar su lenguaje y no escriba ningún código, hasta que esté satisfecho y haya respondido todas (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 que después.
  • Conozca su plataforma de destino (sistema operativo y bibliotecas) para su compilador / intérprete, después de todo, la va a usar y manipular.

Advertencias

  • Piense si realmente necesita un nuevo idioma y qué tiene su idioma 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 dedicar algo de tiempo al diseño del lenguaje, ya que no tendrá la oportunidad de cambiar su lenguaje una vez que haya escrito el compilador y pasado el punto de diseño.
  • No intente basar sus características en una unión de varios idiomas, como decir que su idioma será una unión del idioma X, el idioma Y y el idioma Z. La historia nos ha demostrado que los idiomas creados de esa manera nunca tendrán éxito. o todos estarían programando PL / 1 en lugar de algo basado en C.

Recomendado: