paradigmas de linguagens de programação
DESCRIPTION
Aula 1 – Profª Danielle Costa [email protected]. Paradigmas de Linguagens de Programação. Linguagens de Programação (LP). O objetivo de LPs é tornar mais efetivo o Processo de Desenvolvimento de Software (PDS ) - PowerPoint PPT PresentationTRANSCRIPT
![Page 2: Paradigmas de Linguagens de Programação](https://reader036.vdocuments.site/reader036/viewer/2022062806/56814fac550346895dbd6812/html5/thumbnails/2.jpg)
Linguagens de Programação (LP)
O objetivo de LPs é tornar mais efetivo o Processo de Desenvolvimento de Software (PDS)
PDS visa geração e manutenção de softwares de modo produtivo e com garantias de padrões de qualidade
![Page 3: Paradigmas de Linguagens de Programação](https://reader036.vdocuments.site/reader036/viewer/2022062806/56814fac550346895dbd6812/html5/thumbnails/3.jpg)
Propriedades desejadas em Softwares
Confiabilidade
Manutenibilidade
Eficiência
Desempenho
![Page 4: Paradigmas de Linguagens de Programação](https://reader036.vdocuments.site/reader036/viewer/2022062806/56814fac550346895dbd6812/html5/thumbnails/4.jpg)
Propriedades desejáveis em LPs
Legibilidade
Marcadores de Blocosif (x>1)
if (x==2)x=3;
else x=4;
Desvios Incondicionais (goto)
![Page 5: Paradigmas de Linguagens de Programação](https://reader036.vdocuments.site/reader036/viewer/2022062806/56814fac550346895dbd6812/html5/thumbnails/5.jpg)
Propriedades desejáveis em LPs
Facilidade de Aprendizado Excesso de Características é Prejudicial
c = c + 1;c+=1;c++;++c;
Eficiência Verificação Dinâmica de Tipos Confiabilidade Tratamento de Exceções
![Page 6: Paradigmas de Linguagens de Programação](https://reader036.vdocuments.site/reader036/viewer/2022062806/56814fac550346895dbd6812/html5/thumbnails/6.jpg)
Propriedades desejáveis em LPs
Reusabilidade
Redigibilidade Tipos de Dados Limitados (FORTRAN) Ausência de Tratamento de Exceções
Portabilidade Rigor no Projeto Pode Contrastar com Eficiência
Um dos principais benefícios do POO
![Page 7: Paradigmas de Linguagens de Programação](https://reader036.vdocuments.site/reader036/viewer/2022062806/56814fac550346895dbd6812/html5/thumbnails/7.jpg)
Conceitos Básicos
Paradigma
Léxico
Sintaxe
Semântica
![Page 8: Paradigmas de Linguagens de Programação](https://reader036.vdocuments.site/reader036/viewer/2022062806/56814fac550346895dbd6812/html5/thumbnails/8.jpg)
Paradigma
Conjunto de regras que estabelecem fronteiras (domínios) e descrevem como resolver os problemas dentro destas fronteiras.
Exemplo ou modelo que servem de norma.
Forma de representar e manipular o conhecimento.
![Page 9: Paradigmas de Linguagens de Programação](https://reader036.vdocuments.site/reader036/viewer/2022062806/56814fac550346895dbd6812/html5/thumbnails/9.jpg)
Léxico e Sintaxe
Léxico: é o conjunto de palavras que compõem a linguagem (também chamadas de palavras reservadas)
Sintaxe: em LPs é a forma de suas expressões, de suas instruções e de suas unidades de programas.
![Page 10: Paradigmas de Linguagens de Programação](https://reader036.vdocuments.site/reader036/viewer/2022062806/56814fac550346895dbd6812/html5/thumbnails/10.jpg)
Semântica
Em LPs é o significado das expressões, instruções e definição de unidades de programas: Exemplo: a sintaxe do IF no Pascal é:
IF <expressão condicional> THEN <instrução>
Significado: se o resultado da expressão condicional for verdadeiro, excecuta a instrução, do contrário não.
Necessidade de Padronização (ISSO, IEEE, ANSI)
![Page 11: Paradigmas de Linguagens de Programação](https://reader036.vdocuments.site/reader036/viewer/2022062806/56814fac550346895dbd6812/html5/thumbnails/11.jpg)
Implementação de LPs
![Page 12: Paradigmas de Linguagens de Programação](https://reader036.vdocuments.site/reader036/viewer/2022062806/56814fac550346895dbd6812/html5/thumbnails/12.jpg)
Implementação de LPs
Compilação Eficiência Problemas com Portabilidade e Depuração
Interpretação Pura Flexibilidade, Portabilidade e Facilidade de
Depuração Problemas com Eficiência
Híbrido Une Vantagens dos Outros Métodos JVM
![Page 13: Paradigmas de Linguagens de Programação](https://reader036.vdocuments.site/reader036/viewer/2022062806/56814fac550346895dbd6812/html5/thumbnails/13.jpg)
Pense...
Se as linguagens interpretadas são menos eficientes que as linguagens compiladas, por que elas foram criadas e ainda existem?
![Page 14: Paradigmas de Linguagens de Programação](https://reader036.vdocuments.site/reader036/viewer/2022062806/56814fac550346895dbd6812/html5/thumbnails/14.jpg)
Paradigmas de LPs
![Page 15: Paradigmas de Linguagens de Programação](https://reader036.vdocuments.site/reader036/viewer/2022062806/56814fac550346895dbd6812/html5/thumbnails/15.jpg)
Exemplos
Programação estruturada, em contraste a POO Programação imperativa, em contraste de programação declarativa Programação de passagem de mensagens Programação procedural, em contraste de programação funcional Programação orientada a fluxos, em contraste de programação
orientada a eventos Programação escalar, em contraste de programação vetorial Programação restritiva, que complementa a programação lógica Programação orientada a aspecto Programação orientada a regras Programação orientada a tabelas Programação orientada a fluxo de dados Programação orientada a políticas Programação orientada a testes Programação genérica Programação multiparadigma
![Page 16: Paradigmas de Linguagens de Programação](https://reader036.vdocuments.site/reader036/viewer/2022062806/56814fac550346895dbd6812/html5/thumbnails/16.jpg)
Paradigmas de LPs
Imperativo Processo de Mudanças de Estados Variável, Valor e Atribuição Células de Memória
Declarativo Especificações sobre a Tarefa a Ser
Realizada Abstrai-se de Como o Computador é
Implementado
![Page 17: Paradigmas de Linguagens de Programação](https://reader036.vdocuments.site/reader036/viewer/2022062806/56814fac550346895dbd6812/html5/thumbnails/17.jpg)
Paradigmas de LPs: Imperativo Estruturado
Refinamentos Sucessivos Blocos Aninhados de Comandos Desestímulo ao uso de desvio incondicional
Orientado a Objetos Abstração de Dados
Concorrente Processos Executam Simultaneamente e
Concorrem por Recursos
![Page 18: Paradigmas de Linguagens de Programação](https://reader036.vdocuments.site/reader036/viewer/2022062806/56814fac550346895dbd6812/html5/thumbnails/18.jpg)
Paradigmas de LPs: Estruturado
Funcional Programa Composto por Funções
Matemáticas
Lógico Predicados Dedução Automática
![Page 19: Paradigmas de Linguagens de Programação](https://reader036.vdocuments.site/reader036/viewer/2022062806/56814fac550346895dbd6812/html5/thumbnails/19.jpg)
Histórico: Evolução de LPs
Dificuldade de Programação em Linguagens de Máquina
Foco de Primeiras LPs era Eficiência de Processamento e Consumo de Memória
Baixa Produtividade de Programação Programação Estruturada Tipos Abstratos de Dados Orientação a Objetos
![Page 20: Paradigmas de Linguagens de Programação](https://reader036.vdocuments.site/reader036/viewer/2022062806/56814fac550346895dbd6812/html5/thumbnails/20.jpg)
Histórico: Evolução de LPs
FORTRAN (1957) aplicações numéricas
LISP (1959) programação funcional
ALGOL (1960) programação estruturada
COBOL (1960) aplicações comerciais
![Page 21: Paradigmas de Linguagens de Programação](https://reader036.vdocuments.site/reader036/viewer/2022062806/56814fac550346895dbd6812/html5/thumbnails/21.jpg)
Histórico: Evolução de LPs
BASIC (1964) ensino para leigos
PASCAL (1971) ensino de programação estruturada
simplicidade C (1972)
implementação de UNIX PROLOG (1972)
programação lógica
![Page 22: Paradigmas de Linguagens de Programação](https://reader036.vdocuments.site/reader036/viewer/2022062806/56814fac550346895dbd6812/html5/thumbnails/22.jpg)
Histórico: Evolução de LPs SMALLTALK (1972)
programação orientada a objetos ADA (1983)
programação concorrente C++ (1985)
disseminação da programação orientada a objetos
JAVA (1995) mais simples e confiável que C++ Internet
![Page 23: Paradigmas de Linguagens de Programação](https://reader036.vdocuments.site/reader036/viewer/2022062806/56814fac550346895dbd6812/html5/thumbnails/23.jpg)
Próxima Aula..
Tipos de Dados
Estrutura de Controles