peter - plp.pdf

52
Paradigmas de Linguagens de Paradigmas de Linguagens de Programação Programação Parte 1 Parte 1 Introdução ao Estudo de Linguagens Introdução ao Estudo de Linguagens de Programação ( de Programação ( LPs LPs ) )

Upload: marcus-vinicius-germano

Post on 19-Oct-2015

48 views

Category:

Documents


0 download

TRANSCRIPT

  • Paradigmas de Linguagens deParadigmas de Linguagens deProgramaoProgramao

    Parte 1Parte 1

    Introduo ao Estudo de LinguagensIntroduo ao Estudo de Linguagensde Programao (de Programao (LPsLPs))

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 2

    Plano de AulaPlano de Aula Razes para Estudar Conceitos de Razes para Estudar Conceitos de LPsLPs Domnios de ProgramaoDomnios de Programao Critrios para Avaliar Critrios para Avaliar LPsLPs Consideraes sobre os critrios de avaliaoConsideraes sobre os critrios de avaliao Influncias sobre o projeto de Influncias sobre o projeto de LPsLPs Categorias de LinguagensCategorias de Linguagens Mtodos de ImplementaoMtodos de Implementao

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 3

    Razes para Estudar ConceitosRazes para Estudar Conceitosde de LPsLPs

    Aumentar a capacidade de expressarAumentar a capacidade de expressaridiasidias A profundidade com que pensamos A profundidade com que pensamos

    influenciada pelo poder expressivo dainfluenciada pelo poder expressivo dalinguagem com a qual nos comunicamos;linguagem com a qual nos comunicamos;

    difcil para as pessoas expressar estruturas difcil para as pessoas expressar estruturasque elas no conseguem descrever;que elas no conseguem descrever;

    Programadores sofrem o mesmo problema!!!Programadores sofrem o mesmo problema!!!

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 4

    Permitir simular estruturas de outrasPermitir simular estruturas de outraslinguagens naquela que estiver usandolinguagens naquela que estiver usando

    IndexIndex em em FORTRANFORTRAN, , substring substring em Cem C subprogramasubprograma em Pascal, funo sem retorno em Pascal, funo sem retorno

    em Cem C

    Razes para Estudar ConceitosRazes para Estudar Conceitosde de LPsLPs

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 5

    Aumentar o conhecimento para escolherAumentar o conhecimento para escolherlinguagens de programao apropriadaslinguagens de programao apropriadas Programadores tendem a continuar usando aProgramadores tendem a continuar usando a

    linguagem que lhes mais familiar, mesmolinguagem que lhes mais familiar, mesmoque esta no seja a mais adequadaque esta no seja a mais adequada

    Razes para Estudar ConceitosRazes para Estudar Conceitosde de LPsLPs

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 6

    Melhorar a habilidade de aprender novasMelhorar a habilidade de aprender novaslinguagenslinguagens Computao est em evoluo contnuaComputao est em evoluo contnua Processo de aprender uma nova linguagem Processo de aprender uma nova linguagem

    mais difcil para quem no conhece osmais difcil para quem no conhece osconceitos gerais de conceitos gerais de LPsLPs

    Razes para Estudar ConceitosRazes para Estudar Conceitosde de LPsLPs

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 7

    Melhorar o entendimento da importnciaMelhorar o entendimento da importnciada implementaoda implementao Permite usar a linguagem maisPermite usar a linguagem mais

    inteligentemente, pois estar avaliando asinteligentemente, pois estar avaliando asconseqncias de suas decisesconseqncias de suas decises

    Razes para Estudar ConceitosRazes para Estudar Conceitosde de LPsLPs

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 8

    Melhorar a habilidade de projetar novasMelhorar a habilidade de projetar novaslinguagenslinguagens Um dia voc poder precisar projetar umaUm dia voc poder precisar projetar uma Mesmo que no, a experincia Mesmo que no, a experincia

    enriquecedoraenriquecedora

    Razes para Estudar ConceitosRazes para Estudar Conceitosde de LPsLPs

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 9

    Avano da Computao como um todoAvano da Computao como um todo Nem sempre a linguagem mais utilizada aNem sempre a linguagem mais utilizada a

    melhormelhor ALGOL ALGOL 60 versus FORTRAN60 versus FORTRAN

    Se as pessoas responsveis pela escolha deSe as pessoas responsveis pela escolha deLPsLPs forem melhor informadas, talvez forem melhor informadas, talvezlinguagens melhores sejam utilizadaslinguagens melhores sejam utilizadas

    Razes para Estudar ConceitosRazes para Estudar Conceitosde de LPsLPs

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 10

    Domnios de ProgramaoDomnios de Programao

    Aplicaes CientficasAplicaes Cientficas Estruturas de dados simplesEstruturas de dados simples Operaes em ponto-flutuanteOperaes em ponto-flutuante Primeira linguagem:Primeira linguagem:

    FORTRANFORTRAN (Formula (Formula TranslatorTranslator))

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 11

    Aplicaes ComerciaisAplicaes Comerciais Incio da dcada de 50Incio da dcada de 50 1960: 1960: COBOL COBOL (At hoje...)(At hoje...) Produo de relatrios, armazenamento deProduo de relatrios, armazenamento de

    informaes, informaes, etcetc.. Muitas funes se tornaram aplicaes bemMuitas funes se tornaram aplicaes bem

    definidas e consolidadas:definidas e consolidadas: planilhas, folhas de pagamento, planilhas, folhas de pagamento, etcetc..

    Domnios de ProgramaoDomnios de Programao

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 12

    Inteligncia ArtificialInteligncia Artificial Primeira Linguagem:Primeira Linguagem:

    LISP LISP (funcional) - 1959(funcional) - 1959 Linguagem mais usada:Linguagem mais usada:

    PROLOGPROLOG Dialeto hbrido:Dialeto hbrido:

    OBJLOG OBJLOG (lgica + (lgica + OOOO))

    Domnios de ProgramaoDomnios de Programao

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 13

    Programao de SistemasProgramao de Sistemas Softwares Softwares do sistema:do sistema:

    Sistema Operacional.Sistema Operacional. Eficincia na execuoEficincia na execuo Caractersticas de baixo nvelCaractersticas de baixo nvel Linguagem mais utilizada: CLinguagem mais utilizada: C

    Quase todo o Quase todo o Unix Unix escrito nela escrito nela

    Domnios de ProgramaoDomnios de Programao

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 14

    Linguagens de Linguagens de ScriptsScripts Consiste em se agrupar uma lista deConsiste em se agrupar uma lista de

    comandos em um arquivo a ser executadocomandos em um arquivo a ser executado Auxiliam na execuo de tarefas do dia-a-diaAuxiliam na execuo de tarefas do dia-a-dia PerlPerl

    crescimento sensvel de importncia com a WWWcrescimento sensvel de importncia com a WWW desenvolvimento de aplicaes que usam CGIdesenvolvimento de aplicaes que usam CGI

    ShellShell (UNIX) (UNIX)

    Domnios de ProgramaoDomnios de Programao

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 15

    Linguagens de Propsito EspecficoLinguagens de Propsito Especfico Atendem a um determinado domnio deAtendem a um determinado domnio de

    problemaproblema GPSS (General GPSS (General Purpose Statistic SimulationPurpose Statistic Simulation)) RPG (RPG (Report GeneratorReport Generator)) ANS.1 (ANS.1 (Abstract Abstract Sintaxe Sintaxe OneOne))

    Domnios de ProgramaoDomnios de Programao

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 16

    Critrios Para AvaliarCritrios Para Avaliar LPs LPs

    Faz-se necessrio avaliar asFaz-se necessrio avaliar ascaractersticas das diversas caractersticas das diversas LPsLPs,,observando-se os impactos sobre oobservando-se os impactos sobre oprocesso de desenvolvimento de softwareprocesso de desenvolvimento de software

    Precisamos de Critrios...Precisamos de Critrios...

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 17

    LegibilidadeLegibilidade AplicabilidadeAplicabilidade EscritabilidadeEscritabilidade CustosCustos

    Critrios Para Avaliar Critrios Para Avaliar LPsLPs

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 18

    LegibilidadeLegibilidade

    Facilidade com que um programa pode serFacilidade com que um programa pode serlido e entendidolido e entendido

    Conseqncia da Conseqncia da Crise de SoftwareCrise de Software Booch Booch (1970) props o conceito de ciclo de(1970) props o conceito de ciclo de

    vidavida Deve ser considerada no contexto doDeve ser considerada no contexto do

    domnio do problemadomnio do problema

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 19

    LegibilidadeLegibilidade

    SimplicidadeSimplicidade Afeta fortemente a legibilidadeAfeta fortemente a legibilidade Linguagens com um grande nmero deLinguagens com um grande nmero de

    componentes bsicos so mais difceis decomponentes bsicos so mais difceis deaprender do que aquelas com um nmeroaprender do que aquelas com um nmeroreduzidoreduzido

    Alguns programadores aprendem apenas umAlguns programadores aprendem apenas umsubconjunto da linguagemsubconjunto da linguagem

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 20

    Multiplicidade de Caractersticas:Multiplicidade de Caractersticas:countcount = = count count + 1;+ 1; countcount += 1; += 1;countcount++;++; ++++countcount;;

    Sobrecarga de OperadoresSobrecarga de Operadores Simplicidade demais pode ser um problema:Simplicidade demais pode ser um problema:

    AssemblyAssembly (reduzido nmero de estruturas)(reduzido nmero de estruturas)

    LegibilidadeLegibilidade

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 21

    LegibilidadeLegibilidade

    OrtogonalidadeOrtogonalidade Um conjunto de construes pode serUm conjunto de construes pode ser

    combinado para formar um outro conjuntocombinado para formar um outro conjunto-- Apontadores em C (apontam p/ qualquer tipo)Apontadores em C (apontam p/ qualquer tipo)// Adio em Adio em Assembly Assembly (adio separada)(adio separada)

    Ortogonalidade demais pode causarOrtogonalidade demais pode causarproblemas:problemas:

    ALGOL ALGOL 6868

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 22

    LegibilidadeLegibilidade

    Declaraes de ControleDeclaraes de Controle Um programa que pode ser lido (quase)Um programa que pode ser lido (quase)

    linearmente do incio ao fim muito mais fcillinearmente do incio ao fim muito mais fcilde entender do que um programa repleto dede entender do que um programa repleto dedesvios (desvios (gotosgotos))

    FORTRANFORTRAN BASICBASIC

    Estruturas de controle (Estruturas de controle (ifif--thenthen--elseelse, , whilewhile, for), for)permitem uma leitura mais compreensvelpermitem uma leitura mais compreensvel

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 23

    LegibilidadeLegibilidade

    Tipos e Estruturas de DadosTipos e Estruturas de Dados A possibilidade de definir estruturas e tipos deA possibilidade de definir estruturas e tipos de

    dados tambm afeta a legibilidadedados tambm afeta a legibilidadeINT fim_de_arquivo =INT fim_de_arquivo = 1 1;;BOOLEAN fim_de_arquivo = BOOLEAN fim_de_arquivo = truetrue;;

    whilewhile( ( not not fim_de_arquivo == 1)fim_de_arquivo == 1)whilewhile( ( not not fim_de_arquivo )fim_de_arquivo )

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 24

    LegibilidadeLegibilidade

    SintaxeSintaxe A forma dos elementos tem um efeitoA forma dos elementos tem um efeito

    significativo sobre a linguagemsignificativo sobre a linguagem IdentificadoresIdentificadores

    FORTRAN FORTRAN 7777 (6 caracteres) (6 caracteres) BASICBASIC ANSIANSI (1 caractere ou 1 caractere seguido de 1(1 caractere ou 1 caractere seguido de 1

    nmero)nmero) JavaJava (no tem limite) (no tem limite)

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 25

    LegibilidadeLegibilidade Palavras Especiais:Palavras Especiais:

    PASCALPASCAL ( (beginbegin--endend)) FORTRANFORTRAN 9090 e e ADAADA ( (ifif--endifendif)) FORTRANFORTRAN 9090 permite que se defina variveis com nomes permite que se defina variveis com nomes

    dodo e e endend if if if if > > then then then then then then = = else else else else else else = = endif endifendif endif

    Forma e significadoForma e significado A aparncia deve ao menos parcialmente indicar oA aparncia deve ao menos parcialmente indicar o

    propsito.propsito. staticstatic em em C;C;

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 26

    EscritabilidadeEscritabilidade

    Indica o quo facilmente uma linguagemIndica o quo facilmente uma linguagempode ser usada em um determinadopode ser usada em um determinadodomnio de problemadomnio de problema

    Deve ser considerada no contexto doDeve ser considerada no contexto dodomnio do problema da linguagemdomnio do problema da linguagem

    COBOL COBOL versus Cversus C

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 27

    EscritabilidadeEscritabilidade

    Simplicidade e OrtogonalidadeSimplicidade e Ortogonalidade Se uma linguagem tiver um grande nmero deSe uma linguagem tiver um grande nmero de

    construes, programadores podem no seconstrues, programadores podem no sefamiliarizar com todasfamiliarizar com todas

    Mal uso de algumas e desuso de outrasMal uso de algumas e desuso de outras

    Ortogonalidade demais pode prejudicar aOrtogonalidade demais pode prejudicar aescritabilidadeescritabilidade

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 28

    Suporte para AbstraoSuporte para Abstrao Possibilidade de se definir e usar estruturasPossibilidade de se definir e usar estruturas

    complexas sem que os aspectos internos decomplexas sem que os aspectos internos deiplementao iplementao dessas estruturas sejam vistosdessas estruturas sejam vistospelo programadorpelo programador

    Implementao de uma rvore Binria em Implementao de uma rvore Binria em FORTRANFORTRAN,,PascalPascal e em e em JavaJava

    EscritabilidadeEscritabilidade

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 29

    EscritabilidadeEscritabilidade

    ExpressividadeExpressividade Pode se referir a diversas caractersticasPode se referir a diversas caractersticas

    countcount++;++; (C, C++, Java)(C, C++, Java) forfor (Pascal, C)(Pascal, C)

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 30

    ConfiabilidadeConfiabilidade

    Um programa dito confivel se eleUm programa dito confivel se eleexecuta de acordo com suasexecuta de acordo com suasespecificaes sob quaisquerespecificaes sob quaisquercircunstnciascircunstncias

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 31

    Checagem de TiposChecagem de Tipos Verifica se os valores atribudos aos tiposVerifica se os valores atribudos aos tipos

    esto de acordo com os definidosesto de acordo com os definidos Quando uma linguagem faz uma verificaoQuando uma linguagem faz uma verificao

    rigorosa de seus tipos, diz-se que ela rigorosa de seus tipos, diz-se que ela fortemente fortemente tipadatipada..

    Java e Pascal Java e Pascal -- C C //

    ConfiabilidadeConfiabilidade

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 32

    Manipulao de ExceesManipulao de Excees a possibilidade de um programa interceptar a possibilidade de um programa interceptar

    um erro em tempo de execuo, tomar asum erro em tempo de execuo, tomar asmedidas adequadas e continuar (ou no) amedidas adequadas e continuar (ou no) aexecuoexecuo

    Java, C++ e Java, C++ e Ada Ada -- Pascal, C e Pascal, C e FORTRAN FORTRAN //

    ConfiabilidadeConfiabilidade

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 33

    AliasingAliasing a possibilidade de se ter duas ou mais a possibilidade de se ter duas ou mais

    referncias para um mesmo local da memriareferncias para um mesmo local da memria uma tcnica perigosa de programao uma tcnica perigosa de programao

    C (apontadores e C (apontadores e UnionsUnions)) Java no possui essa propriedadeJava no possui essa propriedade

    ConfiabilidadeConfiabilidade

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 34

    Legibilidade e EscritabilidadeLegibilidade e Escritabilidade Quanto mais fcil de escrever um programa,Quanto mais fcil de escrever um programa,

    maior a probabilidade dele estar certomaior a probabilidade dele estar certo

    Quanto mais fcil de escrever um programa,Quanto mais fcil de escrever um programa,maior a facilidade de corrigi-maior a facilidade de corrigi-lolo e de ( e de (rere-)-)escrevescrev--lolo

    ConfiabilidadeConfiabilidade

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 35

    CustoCusto

    uma funo de algumas outras uma funo de algumas outrascaractersticascaractersticas 1) Custo de Treinamento1) Custo de Treinamento

    ortogonalidade e simplicidadeortogonalidade e simplicidade 2) Custo de escrever programas na linguagem2) Custo de escrever programas na linguagem

    escritabilidadeescritabilidade 3) Custo de compilar programas3) Custo de compilar programas

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 36

    CustoCusto

    4) Custo de executar programas4) Custo de executar programas projeto da linguagemprojeto da linguagem

    5) Custo do sistema de implementao5) Custo do sistema de implementao 6) Custo da confiabilidade pobre6) Custo da confiabilidade pobre 7) Custo de manuteno7) Custo de manuteno

    muitas outras caractersticas, sobretudo amuitas outras caractersticas, sobretudo alegibilidadelegibilidade

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 37

    Consideraes sobre osConsideraes sobre osCritrios de AvaliaoCritrios de Avaliao

    Pode haver outros critrios:Pode haver outros critrios: portabilidade, generalidade, definio, portabilidade, generalidade, definio, etcetc..

    Critrios so subjetivosCritrios so subjetivos legibilidade, legibilidade, escritabilidadeescritabilidade, etc., etc.

    Critrios tm valores diferentes, dependendo daCritrios tm valores diferentes, dependendo daperspectiva:perspectiva:

    implementadores, usurios, projetistasimplementadores, usurios, projetistas

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 38

    Influncias no Projeto de Influncias no Projeto de LPsLPs

    Arquitetura do ComputadorArquitetura do Computador Arquitetura de Arquitetura de Von Neumann Von Neumann influenciou fortemente ainfluenciou fortemente a

    adoo de linguagens imperativasadoo de linguagens imperativas

    ALU UC

    Resultados das Operaes Instrues e dados

    Memria

    UCP

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 39

    Influncias no Projeto deInfluncias no Projeto de LPs LPs

    Devido Arquitetura de Devido Arquitetura de Von Neumann Von Neumann asascaractersticas centrais das linguagenscaractersticas centrais das linguagensimperativas so:imperativas so: variveisvariveis clulas de memriaclulas de memria atribuies atribuies opera operaeses sequenciamentosequenciamento

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 40

    Influncias no Projeto deInfluncias no Projeto de LPs LPs

    Metodologias de ProgramaoMetodologias de Programao orientao a processosorientao a processos orientao a dadosorientao a dados

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 41

    Categorias de LinguagensCategorias de Linguagens

    ImperativasImperativas FuncionaisFuncionais Orientadas a ObjetoOrientadas a Objeto Lgicas Lgicas

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 42

    ImperativasImperativas

    Do Latim: Do Latim: ImperareImperare (significa comandar) (significa comandar) Baseiam-se em comandos que atualizamBaseiam-se em comandos que atualizam

    variveis armazenadas na memriavariveis armazenadas na memria Em princpio, podem ser implementadas deEm princpio, podem ser implementadas de

    forma eficiente (devido arquitetura)forma eficiente (devido arquitetura) Domnio: Aplicaes comerciais, S.O., Domnio: Aplicaes comerciais, S.O., etcetc.. Exemplos: Pascal, C, Exemplos: Pascal, C, COBOLCOBOL, , etcetc..

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 43

    FuncionaisFuncionais

    Baseiam-se em princpios da matemticaBaseiam-se em princpios da matemticapara realizar computaespara realizar computaes FunesFunes

    Interao (Imperativa) x Interao (Imperativa) x RecursoRecurso Domnio: Matemtica, I.A.Domnio: Matemtica, I.A. Exemplos:Exemplos: LISPLISP, ML, , ML, SchemeScheme, , CLOSCLOS, , etcetc..

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 44

    Orientadas a ObjetosOrientadas a Objetos

    Baseiam-se no conceito de classesBaseiam-se no conceito de classes Atributos + Mtodos = Atributos + Mtodos = ClasseClasse;; Hoje aplica-se a praticamente todos osHoje aplica-se a praticamente todos os

    domniosdomnios Exemplos: Java, C++, Simula 67, Exemplos: Java, C++, Simula 67, etcetc..

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 45

    LgicasLgicas

    Baseiam-se na noo de que um programaBaseiam-se na noo de que um programaimplementa uma relao implementa uma relao ao invs de umao invs de ummapeamentomapeamento

    Domnio: Inteligncia ArtificialDomnio: Inteligncia Artificial Exemplo: Exemplo: PrologProlog

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 46

    Mtodos de ImplementaoMtodos de Implementao

    CompilaoCompilao Interpretao PuraInterpretao Pura Implementao HbridaImplementao Hbrida

    Interpretao de Cdigo ArmazenadoInterpretao de Cdigo Armazenado

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 47

    CompilaoCompilao

    Consiste em se traduzir um Consiste em se traduzir um programa fonteprograma fontepara um programa em para um programa em linguagem delinguagem demquina (ou montagem)mquina (ou montagem), que pode ser, que pode serexecutado (quase) diretamenteexecutado (quase) diretamente

    Execuo rpidaExecuo rpida FortranFortran, C, , C, COBOLCOBOL, Pascal, , Pascal, etcetc..

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 48

    CompilaoCompilao

    Gerador de Cod.Interm. (e Analisador

    Semntico)

    Geradorde Cdigo

    Otimizao

    CdigoFonte

    AnalisadorLxico

    Computador

    Tabela deSmbolos

    AnalisadorSinttico

    Dados

    Resultados

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 49

    Interpretao PuraInterpretao Pura

    Executa (interpreta) os comandos doExecuta (interpreta) os comandos docdigo fontecdigo fonte

    Simula uma mquina virtualSimula uma mquina virtual DebuggingDebugging mais simples mais simples 10 a 10010 a 100 vezes mais lenta que a compilao vezes mais lenta que a compilao Scripts ShellScripts Shell, , PrologProlog,, etc etc..

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 50

    Interpretao PuraInterpretao Pura

    CdigoFonte Interpretador

    Resultados

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 51

    Implementao HbridaImplementao Hbrida

    Utiliza as duas abordagens anterioresUtiliza as duas abordagens anteriores Traduz um programa fonte - de alto nvel -Traduz um programa fonte - de alto nvel -

    para um programa intermedirio de para um programa intermedirio de fcilfcilinterpretaointerpretao

    Java (atualmente j possvel compilar),Java (atualmente j possvel compilar),PerlPerl, , etcetc..

  • UFPB/CCT/DSC Paradigmas de Linguagens de Programao 52

    Implementao HbridaImplementao Hbrida

    Gerador de Cdigo.Intermedirio Interpretador

    CdigoFonte

    AnalisadorLxico

    AnalisadorSinttico

    Dados

    Resultados