growlnx / dione

A linguagem de programação Dione (em desenvolvimento nada funciona ainda...)
https://github.com/growlnx/dione/wiki
GNU General Public License v3.0
2 stars 0 forks source link

Otimização da Expression AST #2

Open growlnx opened 4 years ago

growlnx commented 4 years ago

A otimização desta AST é importante pois fará com que o código gerado também seja otimizado.

growlnx commented 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.

growlnx commented 4 years ago

Redução de operações matemáticas através de produtos notáveis

É 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.

https://web.archive.org/web/20051216051622/http://pessoal.sercomtel.com.br/matematica/medio/polinom/prodnot.htm

growlnx commented 4 years ago

Reposicionamento de funções puras

É 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.

growlnx commented 4 years ago

Redução de expressões booleanas através de Karnaugh Map

O algoritmo de Karnaugh será utilizado para reduzir as expressões booleanas.