Cómo escribir un lenguaje de scripting usando C? ¿Alguna idea? ¿Campo de golf?Cómo escribir un lenguaje de scripting usando C?
Respuesta
Esta es una pregunta realmente general y probablemente se cerrará, pero bueno, también podría publicar esta respuesta: Lua (http://www.lua.org) es un lenguaje de scripting muy popular escrito en C. Puedes usarlo como inspiración.
¿Por qué no mirar el C-Code para un lenguaje de scripting (fácil)? Quizás Lua? (link )
Quizás también deba leer algo sobre parser generators, que es el primer componente básico que su programa puede interpretar en un idioma. El segundo bloque es hacer realmente, lo que se está analizando (a veces se puede integrar eso en el analizador sintáctico, se pueden devolver funciones a cada token/cada estructura analizada). Ejemplos fáciles, como analizar y ejecutar fórmulas matemáticas, podrían ser útiles.
¿Quiere decir, cómo escribir un idioma que se interpreta en C?
Si es así, usted querrá comprobar Wikipedia y otras fuentes sobre los siguientes temas:
- Análisis léxico (conversión de código fuente en tokens, como palabras clave, literales enteros/flotador, literales de cadena, etc.)
- Analizar (comprobación de las fichas contra una gramática predefinida, por lo general libre de contexto para asegurarse de que el programa es sintácticamente correcta)
- sintaxis árboles (generalmente construido durante el análisis; crear una representación del árbol intermedio que se puede recorrer con el fin de ejecutar el código)
- tablas de símbolos (Básicamente, la forma de buscar nombres de variables)
- mirilla optimizaciones (si desea hacer que su código se ejecute más rápido , a cambio de tomar más tiempo durante la etapa previa a la ejecución)
Es mucho más trabajo de lo que piensas ... ¡Feliz lectura!
La segunda y la tercera parte son las más complejas para entender. –
Hay un buen libro, viejo, llamado "Constructing Language Processors for Little Languages" que podría ayudarlo a comenzar. Es muy pragmático y explica las diversas opciones que tiene a medida que sus necesidades se vuelven más complejas.
Más allá de eso, esencialmente va a querer investigar un libro o dos sobre compiladores e intérpretes. Si quiere un camino de menor resistencia y lo hace para comprender conceptos en lugar de algo que necesita para una clase o proyectos de trabajo, mire una alternativa a C, como Lisp o Scheme, que facilitará la construcción. en pequeños experimentos. O aprenda sobre la construcción de DSL en idiomas que lo hagan más fácil (Boo, Groovy).
Puede echar un vistazo al libro "The UNIX programming environment"
http://cm.bell-labs.com/cm/cs/upe/covers/english4.gif
Al final del libro, y más o menos el último capítulo, los autores, escribió un pequeño intérprete en C con la información suficiente y detallada paso a paso. Muy interesante y muy fácil de seguir.
El código fuente de ese intérprete es here
Mi consejo sería empezar con un Recursive Descent Parser.
Si te gusta esto, entonces definitivamente deberías obtener una copia del Dragonbook.
Check-out antlr [link]
- 1. tutoriales o introducciones para escribir un lenguaje de scripting simple?
- 2. Lenguaje de scripting para C/C++?
- 3. Crear un lenguaje de scripting
- 4. ¿C# es adecuado para un lenguaje de scripting?
- 5. Uso de Groovy como lenguaje de scripting
- 6. IronRuby como lenguaje de scripting en .NET
- 7. Escribir un mini-lenguaje
- 8. Depuración de un lenguaje de scripting como ruby
- 9. Ruby vs Lua como lenguaje de scripting para C++
- 10. ¿Cómo puedo llamar a un archivo DLL desde un lenguaje de scripting?
- 11. lenguaje de programación de scripting más rápido?
- 12. ¿Qué lenguaje de scripting para nuestro IDE basado en .NET?
- 13. Python como lenguaje de scripting web?
- 14. manera más eficiente de analizar este lenguaje de scripting
- 15. Extensión de la aplicación C# .NET: ¿crear un lenguaje de scripting personalizado o no?
- 16. Lenguaje de scripting para el desarrollo de la estrategia comercial
- 17. Cómo escribir la extensión FireFox con Visual Studio usando el lenguaje de programación C#?
- 18. Lua como lenguaje de scripting de propósito general?
- 19. C++ Server-Side-Scripting
- 20. ¿Cómo puedo analizar macros en código C++, usando CLANG como analizador y Python como lenguaje de scripting?
- 21. ¿C# es un lenguaje de alto nivel?
- 22. ¿Cuál es su lenguaje de scripting preferido en Java World (lenguaje de scripting en JVM) y forma?
- 23. ¿Cómo harías para escribir un lenguaje de programación simple?
- 24. Java 6: ejemplos para implementar lenguaje de scripting propio usando javax.script?
- 25. ¿Alguien sabe de cualquier lenguaje de scripting estático?
- 26. ¿Qué lenguaje de scripting usar para scripts de utilidad?
- 27. C# como lenguaje de script
- 28. ¿Cómo escribir un compilador simple en C/++?
- 29. Cambiar la configuración de la BIOS usando el lenguaje C
- 30. Escribir un idioma para el Windows Scripting Host (WSH)
Eso es demasiado general para ser contestadas. –
Descarga la fuente de bash. Hecho. –
Mira a Lua. Hecho. – EboMike