Finalmente comencé a comprender la complejidad detrás de la creación de un intérprete y un compilador. He construido varias versiones de TinyBasic, 1964 (Dartmouth) Basic, y mis propias expansiones en esos idiomas antes de llegar a este punto. El proyecto más reciente es uno que llamo Open Source Basic ... porque no se me ocurren otras características del lenguaje que puedan interesar a las personas. Para poder abrir la fuente del lenguaje y comprender cómo se hacen algunas cosas complejas (cómo se escanea, analiza, interpreta y compila)
Open Source Basic se interpreta primero en un lenguaje basado en pila. Ese lenguaje basado en la pila se interpreta y ejecuta inmediatamente o se convierte en un ejecutable CLR.
Todas mis preguntas se reducen a esto:
- ¿Cuáles son las características / construcciones básicas de un lenguaje basado en Basic? Ya tengo estas construcciones básicas: Asignaciones, Expresiones, Variables, algunas funciones (Aleatorio, ToUpper, ToLower), Bucle (para y hacer mientras / hasta), If (bloque y una sola línea) Otras decisiones, entrada basada en la consola (Entrada ) y salida (Imprimir), y subrutinas (sin parámetros, todavía).
- Cuando termine de agregar las construcciones básicas a mi idioma, ¿cómo debo ramificarme? ¿En qué dominio (s)? En otras palabras, ¿qué dirección (s) debe tomar mi lenguaje básico de código abierto una vez que tenga todas las construcciones genéricas funcionando?
Gracias por tu tiempo,
Dominick