APLICAÇÃO DE SIMPLIFICAÇÃO E DERIVAÇÃO DE EXPRESSÕES MATEMÁTICAS EM HASKELL
MESTRADO EM ENGENHARIA INFORMÁTICA
Paradigmas de Programação
APLICAÇÃO DE SIMPLIFICAÇÃO E DERIVAÇÃO
DE EXPRESSÕES MATEMÁTICAS EM HASKELL
Pedro Rodrigo Caetano Strecht Ribeiro
Dezembro 2004
Índice
1. Resumo
2
2. Descrição do Objectivo
2
3. Desenho da solução
3
3.1. Gramática das expressões
3
3.1.1. Números
3
3.1.2. Variáveis
3
3.1.3. Operadores
3
3.1.4. Funções
4
3.1.5. Expressões
4
3.2. Arquitectura da aplicação
4
3.3. Blocos funcionais
5
3.3.1. Conversor para o formato interno
5
3.3.2. Validador sintáctico
6
3.3.3. Construtor de árvore (parser)
6
3.3.4. Simplificador e validador semântico
8
3.3.5. Derivador
10
3.3.6. Construtor de expressão
11
3.3.7. Conversor para o formato externo
11
4. Implementação
12
4.1. Estruturas de dados
12
4.2. Funções desenvolvidas
12
4.2.1. Manipulação de strings
12
4.2.2. Conversão de formatos
13
4.2.3. Parsing de expressões
13
4.2.4. Simplificação de expressões
13
4.2.5. Derivação de expressões
14
4.2.6. Apresentação de expressões
14
4.2.7. Validação de expessões
14
4.2.8. Interacção com o utilizador
14
5. Conclusões e análise Crítica
15
6. Referências
16
Anexo – Guia do utilizador
1
1. Resumo
Este documento apresenta o resultado final do desenvolvimento de uma aplicação para simplificação e derivação de expressões matemáticas utilizando a linguagem de programação Haskell. A aplicação foi desenvolvida no âmbito do projecto da disciplina de Paradigmas de Programação da edição de 2004/2005 do Mestrado em Engenharia Informática da Faculdade de Engenharia da Universidade do Porto.
Neste relatório são descritos os problemas envolvidos, os objectivos a atingir, os detalhes do desenho da solução e a implementação em Haskell.
2. Descrição do problema e objectivo
O objectivo