14
Paradigmas de Linguagem de Programação Aspectos Básicos

Paradigmas de Linguagem de Programação - arieldias.comarieldias.com/material/2018-2/PLP/Aula3.pdf · Mecanismo que manipula e produz entidades abstratas (dados); Enquanto em formato

  • Upload
    vuthu

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Paradigmas de Linguagem de ProgramaçãoAspectos Básicos

Introdução

▪ Nesta segunda etapa de nossos estudos, veremos:

▪ aspectos básicos de programa e linguagem de programação;

▪ revisão de conceitos de compilador e interpretador;

▪ as principais linguagens de programação;

▪ breve conceito sobre alguns paradigmas.

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Aspectos básicos

▪ Programa

▪ Mecanismo que manipula e produz entidades abstratas (dados);

▪ Enquanto em formato texto, ele se torna a descrição do mecanismo;

▪ Em execução, ele se torna o próprio mecanismo, com ações próprias;

▪ O meio físico de atuação deste mecanismo é o computador.

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Aspectos básicos

▪ Linguagem de Programação

▪ Trata-se de um conjunto de recursos e regras capazes de construírem mecanismosabstratos a serem executados com qualidade em computadores;

▪ A primeira linguagem foi criada em 1945 e denominada Plankalkul;

▪ Esta linguagem nunca foi implementada.

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Aspectos básicos

▪ Características de uma linguagem de programação▪ Requisitos

▪ qual universo de problemas queremos resolver?

▪ Expressividade▪ melhor forma para representar os elementos da linguagem

▪ Paradigma▪ qual a forma mais adequada para representar e resolver os problemas apresentados por uma determinada

aplicação?

▪ Implementável▪ aquilo que é passível de implementação

▪ Eficiência▪ relação entre custo x benefício da implementação

▪ Sintaxe▪ como escrevemos os elementos da linguagem.

▪ Semântica▪ o significado de cada elemento da linguagem, ou seja, seu comportamento quando em execução.

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Compilador e Interpretador

▪ Para que a linguagem de programação possa ser executada, precisamos de umprocessador de linguagem;

▪ Processadores de linguagens são programas capazes de transformar os códigosfontes (escrito pelo programador) em códigos entendidos pelo sistemacomputacional;

▪ A estes processadores de linguagem denominamos de Compilador eInterpretador;

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Compilador e Interpretador

▪ Compilador

▪ Transforma código fonte escrito pelo programador em código que pode serentendido pelo computador (código de máquina);

▪ Uma vez traduzido, o computador executa de uma única vez todo o código demáquina gerado pelo compilador;

▪ Conforme vimos anteriormente, o compilador possui 4 fases fundamentais:

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Compilador e Interpretador

▪ Analisador Léxico

▪ Constrói a tabela de símbolos léxicos (identificadores, palavras reservadas,operadores, etc)

▪ Analisador Sintático

▪ Verifica se os símbolos léxicos obedecem as regras sintáticas da linguagem

▪ Analisador Semântico

▪ Verifica se há conflitos difíceis/impossíveis de serem encontrados pelo analisadorsintático

▪ Gerador de Código de Máquina

▪ Constrói um código capaz de ser executado pelo processador do computador

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Compilador e Interpretador

▪ Interpretador

▪ Diferentemente do Compilador, aqui cada linha do código escrito pelo programadoré executada de uma a uma

▪ Cada linha passa pela análise léxica, sintática e semântica e imediatamenteexecutada pelo processador (caso não haja erro no código)

▪ Desvantagem: lentidão

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Paradigmas de Programação

▪ No cotidiano encontramos muitos problemas e cada um deles possui uma (oumais) forma diferente de ser solucionado

▪ O mesmo problema pode ter dois ou mais tipos de soluções

▪ Ex: Como é possível subir do térreo ao 17º andar de um prédio?

▪ Possibilidades:▪ Ir de elevador▪ Ir pelas escadas do prédio;▪ Escalar;▪ Subir de escada magirus;▪ Outras possibilidades???

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Paradigmas de Programação

▪ No problema temos 4 possíveis soluções, mas qual a melhor?

▪ Elevador: mais rápido, mais prático;

▪ Escadas: prático, porém SE for um idoso ou deficiente físico, talvez não seja uma boaideia;

▪ Escalar: nada prático;

▪ Escada magirus: em um cenário normal é algo inviável;

▪ Para este cenário, o melhor mesmo é o elevador.

▪ Mas e se o prédio estiver em chamas???

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Paradigmas de Programação

▪ Como vimos, para cada problema uma ou mais soluções;

▪ As linguagens de programação foram desenvolvidas para solucionar problemas,das mais diferentes espécies, porém, cada linguagem possui suas característicase determinados fins;

▪ O elevador do problema anterior que era excelente para levar o morador de umandar para o outro, em caso de chamas passa-se a ser a pior escolha;

▪ Por outro lado, a escada magirus que em situação normal é nada praticável,torna-se a melhor opção em caso de incêndio.

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Paradigmas de Programação

▪ Paradigma Imperativo (estado, atribuição, sequência)

▪ Basic, Pascal, C, Assembly, ADA

▪ Paradigma Funcional (função, aplicação, avaliação)

▪ Lisp, Miranda, Haskell, SCHEME

▪ Paradigma Lógico (relação, dedução)

▪ Prolog, Godel

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda

Paradigmas de Programação

▪ Paradigma Orientado a Objetos (objeto, troca de mensagem)

▪ C++, JAVA, Eiffel, Ocaml, Python

▪ Paradigma Concorrente (processo, comunicação – síncrona ou assíncrona)

▪ Ada, JAVA

▪ Declarativas

▪ Vê o problema como uma relação das declarações (objetos, dados e relações).

▪ Deste paradigma, podemos destacar o paradigma lógico e o paradigma funcional

Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda