Discussão do artigo "Análise sintática MQL via ferramentas MQL"

 

Novo artigo Análise sintática MQL via ferramentas MQL foi publicado:

Este artigo descreve um pré-processador, um leitor e um analisador para examinar códigos fonte em MQL. A implementação em MQL está anexada ao artigo.

Basicamente, a programação consiste na criação e automação de certos processos usando linguagens gerais ou especiais. Graças à sua linguagem MQL embutida, a plataforma de negociação MetaTrader permite implementar programação para resolver as mais diversas tarefas do trader. Normalmente, o processo de programação se baseia na análise e no processamento de dados de aplicativos segundo regras já estabelecidas em códigos fonte. No entanto, às vezes, é necessário analisar e processar esses mesmos códigos fonte. Aqui estão alguns exemplos:

Uma das tarefas mais procuradas e fáceis de entender é a da pesquisa contextual em bases de códigos-fonte. Naturalmente, pode-se procurar no código fonte tanto strings como texto sem formatação, não entanto, ao fazer isso, perde-se a semântica da pesquisa. Além disso, no caso de códigos fonte, é bom distinguir as especificidades do uso de substrings. Se um programador quiser descobrir onde se usa uma determinada variável, por exemplo, "notification", uma busca simples pelo nome pode dar dados a mais se a string for encontrada em outros valores, como no nome de método, no literal ou no comentário.

Quanto a grandes projetos, normalmente, uma das tarefas mais complexas e populares é a da visualização de estruturas de código, de dependências e de hierarquia de classes. Esse trabalho está intimamente relacionado à meta-programação permitindo refatoração (aprimoramento) e geração de código. Lembre que o MetaEditor possui alguns recursos de geração de código, em particular, a criação de códigos fonte especializados usando Assistentes ou a geração de arquivos de cabeçalho de código fonte. No entanto, o potencial dessa tecnologia é muito mais amplo.

A análise da estrutura do código permite calcular várias métricas de qualidade, estatísticas e também encontrar fontes típicas de erros de tempo de execução que o compilador não pode detectar. Na verdade, é claro que o próprio compilador é a primeira ferramenta de análise de código fonte e fornece muitos tipos de avisos, mas a verificação de todos os possíveis erros geralmente não é incorporada a ele, uma vez que isso é uma tarefa muito grande e, portanto, é atribuído a programas individuais.

Além disso, a análise do código fonte é usada para formatação e ofuscação.

Diagrama UML de classes de análise sintática MQL

Autor: Stanislav Korotky