Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar...
Transcript of Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar...
![Page 1: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/1.jpg)
Aspectos preliminares
Linguagens de Programacao
Marco A L Barbosa
cbaEste trabalho esta licenciado com uma Licenca Creative Commons - Atribuicao-CompartilhaIgual 4.0 Internacional.
http://github.com/malbarbo/na-lp-copl
![Page 2: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/2.jpg)
Conteudo
Razoes para estudar conceitos de linguagens de programacao
Domınios de programacao
Criterios para avaliacao de linguagens
Influencias no projeto de linguagens
Categorias de linguagens
Metodos de implementacao
Referencias
![Page 3: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/3.jpg)
Razoes para estudar conceitos de linguagens deprogramacao
![Page 4: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/4.jpg)
Razoes para estudar conceitos de linguagens deprogramacao
I Aumentar a capacidade de expressar ideias
I Melhorar as condicoes de escolha da linguagem apropriadapara cada problema
I Aumentar a capacidade de aprender novas linguagens
I Melhorar o uso das linguagens ja conhecidas
I Entender a importancia da implementacao
I Avanco da area de computacao
4 / 27
![Page 5: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/5.jpg)
Razoes para estudar conceitos de linguagens deprogramacao
I Aumentar a capacidade de expressar ideias
I Melhorar as condicoes de escolha da linguagem apropriadapara cada problema
I Aumentar a capacidade de aprender novas linguagens
I Melhorar o uso das linguagens ja conhecidas
I Entender a importancia da implementacao
I Avanco da area de computacao
4 / 27
![Page 6: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/6.jpg)
Razoes para estudar conceitos de linguagens deprogramacao
I Aumentar a capacidade de expressar ideias
I Melhorar as condicoes de escolha da linguagem apropriadapara cada problema
I Aumentar a capacidade de aprender novas linguagens
I Melhorar o uso das linguagens ja conhecidas
I Entender a importancia da implementacao
I Avanco da area de computacao
4 / 27
![Page 7: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/7.jpg)
Razoes para estudar conceitos de linguagens deprogramacao
I Aumentar a capacidade de expressar ideias
I Melhorar as condicoes de escolha da linguagem apropriadapara cada problema
I Aumentar a capacidade de aprender novas linguagens
I Melhorar o uso das linguagens ja conhecidas
I Entender a importancia da implementacao
I Avanco da area de computacao
4 / 27
![Page 8: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/8.jpg)
Razoes para estudar conceitos de linguagens deprogramacao
I Aumentar a capacidade de expressar ideias
I Melhorar as condicoes de escolha da linguagem apropriadapara cada problema
I Aumentar a capacidade de aprender novas linguagens
I Melhorar o uso das linguagens ja conhecidas
I Entender a importancia da implementacao
I Avanco da area de computacao
4 / 27
![Page 9: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/9.jpg)
Razoes para estudar conceitos de linguagens deprogramacao
I Aumentar a capacidade de expressar ideias
I Melhorar as condicoes de escolha da linguagem apropriadapara cada problema
I Aumentar a capacidade de aprender novas linguagens
I Melhorar o uso das linguagens ja conhecidas
I Entender a importancia da implementacao
I Avanco da area de computacao
4 / 27
![Page 10: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/10.jpg)
Domınios de programacao
![Page 11: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/11.jpg)
Domınios de programacao
I Aplicacoes cientıficas
I Estruturas simples (arranjos e matrizes)I Muitas operacoes com pontos flutuantesI Fortran, Algol, C/C++I Fortress, Mathlab (Octave), numpy (Python)
I Aplicacoes comerciais
I Producao de relatoriosI Formatacao de numeros decimais e caracteresI Cobol
I Inteligencia artificial
I Manipulacao de sımbolos (lista ligada)I Criacao e execucao de codigoI Lisp, PrologI C/C++
6 / 27
![Page 12: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/12.jpg)
Domınios de programacao
I Aplicacoes cientıficas
I Estruturas simples (arranjos e matrizes)I Muitas operacoes com pontos flutuantesI Fortran, Algol, C/C++I Fortress, Mathlab (Octave), numpy (Python)
I Aplicacoes comerciais
I Producao de relatoriosI Formatacao de numeros decimais e caracteresI Cobol
I Inteligencia artificial
I Manipulacao de sımbolos (lista ligada)I Criacao e execucao de codigoI Lisp, PrologI C/C++
6 / 27
![Page 13: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/13.jpg)
Domınios de programacao
I Aplicacoes cientıficas
I Estruturas simples (arranjos e matrizes)I Muitas operacoes com pontos flutuantesI Fortran, Algol, C/C++I Fortress, Mathlab (Octave), numpy (Python)
I Aplicacoes comerciais
I Producao de relatoriosI Formatacao de numeros decimais e caracteresI Cobol
I Inteligencia artificial
I Manipulacao de sımbolos (lista ligada)I Criacao e execucao de codigoI Lisp, PrologI C/C++
6 / 27
![Page 14: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/14.jpg)
Domınios de programacao
I Aplicacoes cientıficas
I Estruturas simples (arranjos e matrizes)I Muitas operacoes com pontos flutuantesI Fortran, Algol, C/C++I Fortress, Mathlab (Octave), numpy (Python)
I Aplicacoes comerciais
I Producao de relatoriosI Formatacao de numeros decimais e caracteresI Cobol
I Inteligencia artificial
I Manipulacao de sımbolos (lista ligada)I Criacao e execucao de codigoI Lisp, PrologI C/C++
6 / 27
![Page 15: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/15.jpg)
Domınios de programacao
I Aplicacoes cientıficas
I Estruturas simples (arranjos e matrizes)I Muitas operacoes com pontos flutuantesI Fortran, Algol, C/C++I Fortress, Mathlab (Octave), numpy (Python)
I Aplicacoes comerciais
I Producao de relatoriosI Formatacao de numeros decimais e caracteresI Cobol
I Inteligencia artificial
I Manipulacao de sımbolos (lista ligada)I Criacao e execucao de codigoI Lisp, PrologI C/C++
6 / 27
![Page 16: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/16.jpg)
Domınios de programacao
I Aplicacoes cientıficas
I Estruturas simples (arranjos e matrizes)I Muitas operacoes com pontos flutuantesI Fortran, Algol, C/C++I Fortress, Mathlab (Octave), numpy (Python)
I Aplicacoes comerciais
I Producao de relatoriosI Formatacao de numeros decimais e caracteresI Cobol
I Inteligencia artificial
I Manipulacao de sımbolos (lista ligada)I Criacao e execucao de codigoI Lisp, PrologI C/C++
6 / 27
![Page 17: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/17.jpg)
Domınios de programacao
I Software de sistema
I Eficiencia devido ao uso contınuoI C/C++I D, Go, Rust
I Web
I Codigo dentro do documentoI Javascript, PHP, Java, Ruby, Python
7 / 27
![Page 18: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/18.jpg)
Domınios de programacao
I Software de sistema
I Eficiencia devido ao uso contınuoI C/C++I D, Go, Rust
I Web
I Codigo dentro do documentoI Javascript, PHP, Java, Ruby, Python
7 / 27
![Page 19: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/19.jpg)
Domınios de programacao
I Software de sistema
I Eficiencia devido ao uso contınuoI C/C++I D, Go, Rust
I Web
I Codigo dentro do documentoI Javascript, PHP, Java, Ruby, Python
7 / 27
![Page 20: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/20.jpg)
Domınios de programacao
I Software de sistema
I Eficiencia devido ao uso contınuoI C/C++I D, Go, Rust
I Web
I Codigo dentro do documentoI Javascript, PHP, Java, Ruby, Python
7 / 27
![Page 21: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/21.jpg)
Criterios para avaliacao de linguagens
![Page 22: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/22.jpg)
Criterios para avaliacao de linguagens
I Facilidade de leitura (legibilidade)
I Facilidade de escrita
I Confiabilidade
I Custo
9 / 27
![Page 23: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/23.jpg)
Criterios para avaliacao de linguagens
I Facilidade de leitura
I Simplicidade
I Um conjunto bom de caracterısticas e construcoesI Poucas formas de expressar cada operacaoI Mınima sobrecarga de operadorI Muito simples nao e bom (assembly)
I Ortogonalidade
I Poucas caracterısticas podem ser combinadas de variasmaneiras
I Uma caracterıstica deve ser independente do contexto que eusada (excecoes a regra sao ruins)
I Muito ortogonalidade nao e bom (Algol68)I Linguagens funcionais oferecem uma boa combinacao de
simplicidade e ortogonalidade
10 / 27
![Page 24: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/24.jpg)
Criterios para avaliacao de linguagens
I Facilidade de leitura
I Simplicidade
I Um conjunto bom de caracterısticas e construcoesI Poucas formas de expressar cada operacaoI Mınima sobrecarga de operadorI Muito simples nao e bom (assembly)
I Ortogonalidade
I Poucas caracterısticas podem ser combinadas de variasmaneiras
I Uma caracterıstica deve ser independente do contexto que eusada (excecoes a regra sao ruins)
I Muito ortogonalidade nao e bom (Algol68)I Linguagens funcionais oferecem uma boa combinacao de
simplicidade e ortogonalidade
10 / 27
![Page 25: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/25.jpg)
Criterios para avaliacao de linguagens
I Facilidade de leitura
I Tipos de dados
I Tipos pre-definidos adequados
I Sintaxe
I Flexibilidade para nomear identificadoresI Forma de criar instrucoes compostasI A forma deve ter relacao com o significado
11 / 27
![Page 26: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/26.jpg)
Criterios para avaliacao de linguagens
I Facilidade de leitura
I Tipos de dados
I Tipos pre-definidos adequados
I Sintaxe
I Flexibilidade para nomear identificadoresI Forma de criar instrucoes compostasI A forma deve ter relacao com o significado
11 / 27
![Page 27: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/27.jpg)
Criterios para avaliacao de linguagens
I Facilidade de escrita
I Simplicidade e ortogonalidade
I Poucas construcoes e um conjunto consistente de formas decombinacao
I Suporte para abstracao
I Definir e usar estruturas e operacoes de maneira que osdetalhes possam ser ignorados
I Suporte a subprogramasI Suporte a tipos abstratos de dados
I Expressividade
I Maneira conveniente de expressar a computacao
12 / 27
![Page 28: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/28.jpg)
Criterios para avaliacao de linguagens
I Facilidade de escrita
I Simplicidade e ortogonalidade
I Poucas construcoes e um conjunto consistente de formas decombinacao
I Suporte para abstracao
I Definir e usar estruturas e operacoes de maneira que osdetalhes possam ser ignorados
I Suporte a subprogramasI Suporte a tipos abstratos de dados
I Expressividade
I Maneira conveniente de expressar a computacao
12 / 27
![Page 29: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/29.jpg)
Criterios para avaliacao de linguagens
I Facilidade de escrita
I Simplicidade e ortogonalidade
I Poucas construcoes e um conjunto consistente de formas decombinacao
I Suporte para abstracao
I Definir e usar estruturas e operacoes de maneira que osdetalhes possam ser ignorados
I Suporte a subprogramasI Suporte a tipos abstratos de dados
I Expressividade
I Maneira conveniente de expressar a computacao
12 / 27
![Page 30: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/30.jpg)
Criterios para avaliacao de linguagens
I Confiabilidade
I Verificacao de tipos
I Manipulacao de excecoesI ApelidosI Facilidade de leitura e escrita
13 / 27
![Page 31: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/31.jpg)
Criterios para avaliacao de linguagens
I Confiabilidade
I Verificacao de tiposI Manipulacao de excecoes
I ApelidosI Facilidade de leitura e escrita
13 / 27
![Page 32: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/32.jpg)
Criterios para avaliacao de linguagens
I Confiabilidade
I Verificacao de tiposI Manipulacao de excecoesI Apelidos
I Facilidade de leitura e escrita
13 / 27
![Page 33: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/33.jpg)
Criterios para avaliacao de linguagens
I Confiabilidade
I Verificacao de tiposI Manipulacao de excecoesI ApelidosI Facilidade de leitura e escrita
13 / 27
![Page 34: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/34.jpg)
Criterios para avaliacao de linguagens
I Custo
I Treinar programadores
I Escrever programasI Compilar programasI Executar programasI ConfiabilidadeI ManutencaoI Maior peso no custo: escrita, manutencao e confiabilidade
14 / 27
![Page 35: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/35.jpg)
Criterios para avaliacao de linguagens
I Custo
I Treinar programadoresI Escrever programas
I Compilar programasI Executar programasI ConfiabilidadeI ManutencaoI Maior peso no custo: escrita, manutencao e confiabilidade
14 / 27
![Page 36: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/36.jpg)
Criterios para avaliacao de linguagens
I Custo
I Treinar programadoresI Escrever programasI Compilar programas
I Executar programasI ConfiabilidadeI ManutencaoI Maior peso no custo: escrita, manutencao e confiabilidade
14 / 27
![Page 37: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/37.jpg)
Criterios para avaliacao de linguagens
I Custo
I Treinar programadoresI Escrever programasI Compilar programasI Executar programas
I ConfiabilidadeI ManutencaoI Maior peso no custo: escrita, manutencao e confiabilidade
14 / 27
![Page 38: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/38.jpg)
Criterios para avaliacao de linguagens
I Custo
I Treinar programadoresI Escrever programasI Compilar programasI Executar programasI Confiabilidade
I ManutencaoI Maior peso no custo: escrita, manutencao e confiabilidade
14 / 27
![Page 39: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/39.jpg)
Criterios para avaliacao de linguagens
I Custo
I Treinar programadoresI Escrever programasI Compilar programasI Executar programasI ConfiabilidadeI Manutencao
I Maior peso no custo: escrita, manutencao e confiabilidade
14 / 27
![Page 40: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/40.jpg)
Criterios para avaliacao de linguagens
I Custo
I Treinar programadoresI Escrever programasI Compilar programasI Executar programasI ConfiabilidadeI ManutencaoI Maior peso no custo: escrita, manutencao e confiabilidade
14 / 27
![Page 41: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/41.jpg)
Criterios para avaliacao de linguagens
I Outros criterios
I PortabilidadeI Padronizacao
I Diferentes visoes
I ProgramadorI Projetista da linguagemI Implementador da linguagem
15 / 27
![Page 42: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/42.jpg)
Criterios para avaliacao de linguagens
I Outros criterios
I PortabilidadeI Padronizacao
I Diferentes visoes
I ProgramadorI Projetista da linguagemI Implementador da linguagem
15 / 27
![Page 43: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/43.jpg)
Influencias no projeto de linguagens
![Page 44: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/44.jpg)
Influencias no projeto de linguagens
I Arquitetura do Computador
I Arquitetura de von NeumannI Arquiteturas multicoreI Outras?
I Metodologias de Programacao
I Orientada a processosI Orientada a dadosI Orientacao a objetos
17 / 27
![Page 45: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/45.jpg)
Influencias no projeto de linguagens
I Arquitetura do Computador
I Arquitetura de von NeumannI Arquiteturas multicoreI Outras?
I Metodologias de Programacao
I Orientada a processosI Orientada a dadosI Orientacao a objetos
17 / 27
![Page 46: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/46.jpg)
Categorias de linguagens
![Page 47: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/47.jpg)
Categorias de linguagens
I Imperativas:
Algol68, Fortran, Cobol, Ruby, Python, Go,Java, Pascal, C/C++, . . .
I Funcionais ou Aplicativas: Lisp, Haskell, ML, Scheme, Erlang,Ocaml, F#, Miranda, . . .
I Logicas ou Declarativas: Prolog, Planner, QA-4, Popler,Conniver, QLISP, Mercury, Oz, Frill, . . .
19 / 27
![Page 48: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/48.jpg)
Categorias de linguagens
I Imperativas: Algol68, Fortran, Cobol, Ruby, Python, Go,Java, Pascal, C/C++, . . .
I Funcionais ou Aplicativas: Lisp, Haskell, ML, Scheme, Erlang,Ocaml, F#, Miranda, . . .
I Logicas ou Declarativas: Prolog, Planner, QA-4, Popler,Conniver, QLISP, Mercury, Oz, Frill, . . .
19 / 27
![Page 49: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/49.jpg)
Categorias de linguagens
I Imperativas: Algol68, Fortran, Cobol, Ruby, Python, Go,Java, Pascal, C/C++, . . .
I Funcionais ou Aplicativas: Lisp, Haskell, ML, Scheme, Erlang,Ocaml, F#, Miranda, . . .
I Logicas ou Declarativas: Prolog, Planner, QA-4, Popler,Conniver, QLISP, Mercury, Oz, Frill, . . .
19 / 27
![Page 50: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/50.jpg)
Categorias de linguagens
I Imperativas: Algol68, Fortran, Cobol, Ruby, Python, Go,Java, Pascal, C/C++, . . .
I Funcionais ou Aplicativas: Lisp, Haskell, ML, Scheme, Erlang,Ocaml, F#, Miranda, . . .
I Logicas ou Declarativas: Prolog, Planner, QA-4, Popler,Conniver, QLISP, Mercury, Oz, Frill, . . .
19 / 27
![Page 51: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/51.jpg)
Metodos de implementacao
![Page 52: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/52.jpg)
Metodos de implementacao
I Compilacao
I Interpretacao
I Hıbrido
21 / 27
![Page 53: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/53.jpg)
Metodos de implementacao
22 / 27
![Page 54: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/54.jpg)
Metodos de implementacao - Compilacao
23 / 27
![Page 55: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/55.jpg)
Metodos de implementacao - Interpretacao
24 / 27
![Page 56: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/56.jpg)
Metodos de implementacao - Hıbrido
25 / 27
![Page 57: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/57.jpg)
Referencias
![Page 58: Aspectos preliminares - Linguagens de Programação · 2018. 8. 3. · Raz~oes para estudar conceitos de linguagens de programa˘c~ao I Aumentar a capacidade de expressar ideias I](https://reader034.fdocument.pub/reader034/viewer/2022052011/60261409d139534a3e026842/html5/thumbnails/58.jpg)
Referencias
I Robert Sebesta, Concepts of programming languages, 9a
edicao. Capıtulo 1.
27 / 27