En esta publicación se anotan los resultados del desarrollo de una lenguaje interpretado basado en BASIC creado sobre C# / JAVA y aplicable a otros lenguajes. El objetivo principal es preservar la lógica que puede ser aplicado a cualquier lenguaje de programación.

Cómo escribir su propio lenguaje de programación en C# (Traducción libre)

Aquí generalizaré el algoritmo Split-and-Merge para analizar no sólo una expresión matemática, sino también cualquier sentencia del lenguaje CSCS. Todas las expresiones CSCS deben ir separadas por un carácter de separación. Lo defino en el archivo Constants.cs como Constants.END_STATEMENT = ';' constante.

El algoritmo Split-and-Merge consta de dos pasos. Primero, se divide la cadena en una lista de tokens. Cada token consiste en un número o una cadena y una acción que se le puede aplicar.

 Continuar leyendo en  Link | 1 |

VENTAJAS

  1. A diferencia de la mayoría de los demás lenguajes, es muy fácil modificar la funcionalidad porque todo está en un código C# estándar fácil de seguir con una interfaz clara para añadir funciones. Cualquier función adicional se puede añadir a este lenguaje con sólo unas pocas líneas de código
  2. Todas las palabras clave de este lenguaje (if, else, while, function, etc.) pueden sustituirse fácilmente por cualquier palabra clave no inglesa (y no tienen que ser ASCII, al contrario que en la mayoría de los otros lenguajes). Sólo son necesarios cambios de configuración para sustituir las palabras clave
  3. Este lenguaje puede usarse como lenguaje de scripting y como programa shell, como Bash en Unix o PowerShell en Windows (pero lo hará más fácil de usar que PowerShell).
  4. Incluso Python no tiene los operadores prefijo y postfijo ++ y - con el argumento matador de que "no los necesita". Con tu propio lenguaje, puedes decidir por ti mismo lo que necesitas. Y te mostraré cómo.
  5.  Cualquier análisis sintáctico personalizado puede implementarse sobre la marcha. Tener control total sobre el análisis significa menos tiempo buscando cómo usar un paquete externo o una librería regex.
  6.     ¡No usarás ninguna expresión regular en absoluto! Creo que este es el principal obstáculo para algunas personas que necesitan desesperadamente analizar una expresión, pero son reacios al dolor y la humillación inducida por las reglas regex.


Modelo Mark 1

En este experimento se desarrolla un lenguaje desde cero.

Para crearlo se deben tomar las siguientes decisiones.

¿Es un lenguaje compilado o interpretado?

Si es un compilado, se trata de crear archivos ejecutables según el sistema operativo y procesador. Por tal motivo, los lenguajes tienen un compilador que lo transforma en lenguaje de máquina.

En la actualidad, se puede usar un lenguaje intermedio, y nuevos lenguajes han optado por generar codigo en c++ para ser compilado y generar código de máquina.

¿Necesitamos un editor de código propio o se puede usar uno de terceros?

Para la investigación se ha hecho un editor desde cero. Consta de un objeto "picture" que recibe las pulsaciones del teclado y añade las letras a un arreglo de string para formar el texto.


Para una mejor rendimiento, se hace el cálculo de las líneas visibles y solo se muestran en pantalla cuando desde el teclado se recibe un comando o se añade una letra a la parte visible.

Lista de cambios

- Carga de archivos y grabar archivos de TEXTO extensión BAS

- Soportar eventos keypress para insertar líneas, borrar caracteres

- Configurar un VIEWPORT para solo observar parte del código visible en pantalla

 

TOKEN para resolver ecuaciones

34 * 4 + 45 / 3

Se divide en token y según prioridad se calcula en orden las * / y luego las + - de está forma se completa la ecuación.

1 = 34 

2 = * 

3 = 4 

4 = + 

5 = 45 

6 = / 

7 = 3 

En iteraciones se resuelve la función

34 * 4 + 45 / 3

136 + 15

151

Se puede añadir validaciones para no calcular número entre cero y la falta de parámetros.