Pregunta sobre cómo crear un lenguaje de scripting

12

Digamos, por ejemplo, que quería pagarle a alguien para que me creara un lenguaje de programación o de programación. ¿Qué tipo de documento necesitarían para poder comprender completamente qué es exactamente lo que quiero?

Quiero decir, ¿hay documentos estándar que describen el nuevo lenguaje de programación / scripts en cuestión?

    
pregunta J.T.S. 16.10.2010 - 20:57

5 respuestas

16

Lo que necesita escribir se denomina especificación de idioma .

Debe contener una descripción de la gramática del idioma (preferiblemente en Backus-Naur-Form extendido) y su semántica.

Para la última parte, puede escribir una descripción con sus propias palabras (pero tenga cuidado de ser preciso) o una semántica formal .

    
respondido por el sepp2k 16.10.2010 - 22:20
13

Necesitarás lo siguiente:

  • Una razón para crear un nuevo idioma
  • Una filosofía
  • Una definición semántica
  • Una descripción léxica de tus tokens
  • Una definición de análisis de sintaxis

¿Cómo será diferente tu idioma? ¿Cuál es su misión? ¿Es funcional? ¿Está orientado a objetos? ¿Es un meta-lenguaje? ¿Cuáles son sus características únicas? ¿Qué le dará al mundo que no existe (o que existe de una manera fea)? ¿Cómo quieres cambiar las cosas? ¿Es compilado o interpretado? ¿Un lenguaje de propósito general o DSL? Esta es su filosofía y determina mucho sobre el diseño de su idioma.

A continuación, trabaje para eliminar la sintaxis y la semántica en papel. Esta será su definición semántica ... escribir un código falso es una excelente manera de desarrollar sus pensamientos. Lea "El lenguaje de programación C" para ver un excelente ejemplo de cómo se hace esto. Juega con él.

A continuación, deberá definir sus tokens y la sintaxis de alguna manera. Los programas luego los procesan en autómatas capaces de leer en cadenas y procesar la sintaxis. Yacc y Bison utilizan expresiones regulares y una sintaxis de estilo BNF para el análisis léxico y de sintaxis, respectivamente. También hay herramientas similares a Yacc y Bison para otros idiomas.

También necesitará un fundamento en la teoría del lenguaje / compiladores para saber qué NO hacer. Los ejemplos incluyen gramáticas ambiguas, problemas de generación y manipulación de AST y, en general, cómo simplificar la vida. Conocer la teoría es muy importante. Consideraría obtener lo siguiente para comenzar:

Compiladores: Principios, técnicas y herramientas (Libro del Dragón)
Implementación del compilador moderno en C o Implementación moderna del compilador en Java

    
respondido por el Aiden Bell 17.10.2010 - 06:22
8

El 99.9% del tiempo creando un nuevo idioma es completamente innecesario. Lo más probable es que el retorno de la inversión sea mínimo, y usted hubiera perdido el tiempo.

Lo más probable es que puedas usar Javascript como un lenguaje de scripting susceptible, y ya hay analizadores disponibles para la mayoría de los idiomas. También puede usar otros lenguajes de scripting que desee si puede encontrar un analizador adecuado para ellos. Implementarlas en su programa requeriría mucho menos trabajo y tendría un rendimiento mayor. Las personas no tienen que aprender otro idioma, solo tienen que aprender su API. Es una solución mucho mejor.

Crear un nuevo idioma casi siempre es malo.

    
respondido por el TheLQ 17.10.2010 - 01:37
3

Puede describir la gramática de su idioma en BNF .

Por ejemplo, esto es gramática de Python .

    
respondido por el grokus 16.10.2010 - 21:55
0

Si estás usando .NET, aquí hay algo que encontré hace algún tiempo. Solo le di una mirada curiosa, pero tal vez sería útil para usted: ironia .

  

Irony es un kit de desarrollo para implementar lenguajes en la plataforma .NET.

    
respondido por el DevSolo 16.10.2010 - 22:28

Lea otras preguntas en las etiquetas