Discusión sobre el artículo "Análisis sintáctico de MQL usando las herramientas de MQL"

 

Artículo publicado Análisis sintáctico de MQL usando las herramientas de MQL:

El presente artículo describe el preprocesador, escáner y el parser (analizador sintáctico) para el análisis sintáctico de los códigos fuente en el lenguaje MQL. La implementación en MQL se adjunta.

Esencialmente, la programación consiste en la formalización y automatización de algunos procesos usando los lenguajes de aplicación general o especial. Gracias al lenguaje «built-in» MQL, la plataforma comercial MetaTrader permite implementar la programación para resolver diversas tareas del trader. Normalmente, el proceso de la programación se basa en el análisis y procesamiento de los datos aplicados de acuerdo con las reglas establecidas en los códigos fuente. Sin embargo, a veces surge la necesidad de realizar el análisis y procesamiento de estos mismos códigos fuente. Aquí, tenemos algunos ejemplos.

Una de las tareas más reclamadas y fáciles de entender es la búsqueda semántica y contextual en la base de los códigos fuente. Naturalmente, se puede buscar las cadenas (string) en el código fuente como en el texto normal, pero, en este caso, se pierde la semántica de lo que se busca. Y eso que en caso de los códigos fuente, es deseable distinguir la especificidad del uso de una subcadena en cada caso particular. Si un programador quiere encontrar donde se usa cada determinada variable, por ejemplo, «notification», la búsqueda simple por su nombre puede dar datos de más si la cadena se encuentra en otros valores: como el nombre del método, literal o en comentarios.

En cuanto a los proyectos grandes, generalmente, una de las tareas más complejas y reclamadas consiste en identificar la estructura del código, las dependencias y la jerarquía de las clases. Esta tarea está estrechamente unida con la meta-programación, que permite realizar la refactorización del código (la mejora) y la generación del código. Recordaremos que MetaEditor ofrece algunas posibilidades de la generación del código. En particular, se trata de la creación de los códigos fuente de los EAs a través del Asistente, o la generación del archivo de cabecera del código fuente. Sin embargo, las posibilidades potenciales de esta tecnología son bastante más amplias.

El análisis de la estructura del código permite calcular varias métricas de su calidad, estadística, así como, encontrar las fuentes típicas de los errores runtime que no pueden ser detectadas por el compilador. Está claro que, en realidad, el propio compilador es la primera herramienta del análisis del código fuente, y salta muchos tipos de avisos, pero la verificación de todos los posibles errores normalmente no está incorporada en él, es que, es una tarea bastante volumétrica, por tanto, la atribuyen a los programas ajenos.

Aparte de eso, el análisis sintáctico de los códigos fuente se usa para la estilización (formateo) y la ofuscación.

Diagrama UML de las clases del análisis sintáctico MQL

Autor: Stanislav Korotky