peter - plp.pdf

Download Peter - PLP.pdf

Post on 19-Oct-2015

18 views

Category:

Documents

0 download

Embed Size (px)

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