Open growlnx opened 4 years ago
As otimizações agora serão realizadas dentro dos construtores da AST no arquivo "src/ast.cc". Acredito que essa modificação deixará o parser mais organizado.
É possível aplicar produtos notáveis nas expressões com o objetivo de reduzir a quantidade de operações que serão realizadas. Mas será necessário validar se as operações realmente reduzirão a quantidade de instruções, porque não é garantido que todas operações matemáticas serão built-in nos processadores.
É possível realizar o reposicionamento de uma função nas expressões contanto que ela seja pura.
Com o objetivo de facilitar a vida do compilador a keyword "pure" foi adicionada à sintaxe da Dione. Futuramente será implementado a análise semântica para funções puras, porém isto será tratado em outra issue.
O algoritmo de Karnaugh será utilizado para reduzir as expressões booleanas.
A otimização desta AST é importante pois fará com que o código gerado também seja otimizado.