compilador de desarrollo de Python

introducción

Recientemente, acabo de terminar de escribir un compilador simple para analizar archivos protobuf en Python, y creo profundamente que ply es simple y conveniente para implementar análisis léxico y sintáctico. Aprovechando el calor residual y teniendo la mente clara, escribí un resumen y una experiencia para comodidad de los pitonistas como referencia.

uso de capas

Introducción

Si no está trabajando en un compilador o analizador, probablemente nunca haya oído hablar de ply. ply se basa en lex y yacc de Python, y su autor es el autor del famoso Python Cookbook, tercera edición. Algunos amigos pueden preguntarse: ¿Por qué necesito escribir mi propio compilador para el desarrollo empresarial? Los expertos en programación han dicho que el gobierno central ha decidido probar más cosas nuevas. También es muy útil comprender algunas posturas de análisis gramatical y analizar registros o fórmulas matemáticas con formatos complejos usted mismo en el futuro.

Para los niños que no tienen conocimientos básicos de compilación, se recomienda encarecidamente que comprendan algunos conceptos básicos relacionados con la gramática. Las técnicas de análisis y el Compilation Dragon and Killer Book que Brother Wheel recomienda encarecidamente no son adecuados para el aprendizaje de nivel inicial. Recomiendo los Principios de compilación de Hu Lunjun (Electronic Industry Press), que explican muchos conceptos con ejemplos y son muy adecuados para el nivel inicial. aprendiendo. Por supuesto, no es necesario estudiar en profundidad. Si conoce los conceptos y métodos relacionados del análisis léxico y el análisis de sintaxis, puede utilizar ply. Enlace del documento:  http://www.pchou.info/open-source/2014/01/18/52da47204d4cb.html

Para que a todos les resulte más fácil comenzar, explicaremos el uso de ply tomando como ejemplo la resolución de un sistema de ecuaciones lineales multivariadas.

Ejemplos

La entrada son múltiples ecuaciones lineales en x + 4y - 3.2z = 7el formato. Para que el ejemplo sea lo más simple posible, se imponen las siguientes restricciones:

  • La parte variable de cada ecuación está en el lado izquierdo del signo igual y la constante está en el lado derecho del signo igual.
  • No hay límite en el número de variables ni en el orden de las variables en cada ecuación, pero cada variable solo puede aparecer una vez en cada ecuación.
  • Las reglas de comando para las variables son cadenas de letras minúsculas (xy xx yy abc son todos nombres de variables legales)
  • Los coeficientes de las variables están limitados a números enteros y números de coma flotante. Los números de coma flotante no están permitidos 1.4e8en el formato. Los coeficientes están inmediatamente adyacentes a las variables y el coeficiente no puede ser 0.
  • , ; Separar sistemas de ecuaciones de sistemas de ecuaciones mediante

Los niños que han estudiado álgebra lineal deben saber que solo necesitan abstraer el sistema de ecuaciones en matrices y seguir el método del álgebra lineal para resolverlo. Por lo tanto, solo necesita analizar el sistema de ecuaciones de entrada en la matriz y la lista de variables de la derecha, y el resto del proceso de solución se puede dejar en manos de herramientas relacionadas con el álgebra lineal.

Léxico

Supongo que te gusta

Origin blog.csdn.net/lmrylll/article/details/130013310
Recomendado
Clasificación