History pl

download History pl

of 59

  • date post

    16-Jan-2017
  • Category

    Documents

  • view

    248
  • download

    0

Embed Size (px)

Transcript of History pl

  • AHistriadasLinguagensdeProgramao

    FernandoMagnoQuintoPereira(apresentaoextradadeslidesde

    AdamBrooksWebber)

  • PrhistriadaslinguagensdeprogramaoProgramadoresdaBabilnia.MohammedAlKhorezmiAugustaAda,CondessadeLovelace

    AsprimeiraslinguagensdeprogramaoPlankalkulFortranLispAlgolSmalltalk

    AslinguagensqueestudamosnestecursoPrologML Java

  • Babilnia

    Escritacuneiforme:1790BC Tbuasdeargilaaindaexistem:PoemaseestriasContratoseacordosAstronomiaMatemYca

  • NmerosdaBabilnia

    Base60.Porque? Nmerosdepontoflutuante!

    1 601 +10 600 = 70

    1,10=

  • ProgramasdaBabilnia

    Algoritmoseramescritosusandolinguagemnatural.

    AlgoritmosdescreviamprocedimentosdavidacoYdiana:Paracalcularovolumedacisterna,seseuraio2.0esuaaltura7.0,entoovolume3.1vezes2.0vezes2.0vezes7.0.

    Nousavamvariveis.Nmerosserviamparaexemplos.

  • PrhistriadaslinguagensdeprogramaoProgramadoresdaBabilnia.MohammedAlKhorezmiAugustaAda,CondessadeLovelace

    AsprimeiraslinguagensdeprogramaoPlankalkulFortranLispAlgolSmalltalk

    AslinguagensqueestudamosnestecursoPrologML Java

  • Baghdad,780850

    Enquantonaeuropasenhoresfeudaisestavammatandounsaosoutros,umaculturaricaevibrantefloresciaemBaghdad.

    HaviaumcortesoematemYcochamadoAlKhorezmi,queescreveuunslivros

  • Nmerosindoarbicos

    Olivrodosalgoritmos:ooriginalperdeuse. TraduoemlaYm:AlgorthmidenumeroIndorum.

    Algoritmosparafazercontascomnmeroshindus.Base10Sistemaposicional

    InfluencioufortementeamatemYcanaEuropamedieval.

  • OutrosalgoritmosanYgos

    Euclides,porvoltadoano300antesdeCristo,descreveuumalgoritmoparacalcularMDC.

    AlexanderdeVillaDei,1220depoisdeCristo:CantodeAlgorsmo:algoritmosemverso!

    Claro,nohaviaummtodoformalparadescreveralgoritmos.Qualquercoisavalia:linguagemnatural,poesiaeatmsica.

  • PrhistriadaslinguagensdeprogramaoProgramadoresdaBabilnia.MohammedAlKhorezmiAugustaAda,CondessadeLovelace

    AsprimeiraslinguagensdeprogramaoPlankalkulFortranLispAlgolSmalltalk

    AslinguagensqueestudamosnestecursoPrologML Java

  • AugustaAda

    FilhadeLordByron,umgrandepoetaIngls.

    1800epouco:mulheresnorecebiameducaoformal.MatemYcaeratabu.

    AdatomouaulasparYcularesdematemYca.

    Casouseaos19,tornandoseLadyLovelace,etevetrsfilhos.Nenhumanovidade

  • CharlesBabbage

    MatemYcoIngls ProjetoucomputadoresmecnicosAmquinadiferencial(nochegouaserterminadaporBabbage)

    MquinaanalYca(nuncaconstruda)

    IwishtoGodthesecalculaAonshadbeenexecutedbysteam!

    CharlesBabbage,1821

  • AdaandCharles

    AdaLovelaceeCharlesBabbageficaramamigosetrabalharamjuntosemmuitasdasidiasdeBabbage.

    AdadescreveuumalgoritmoparacalcularnmerosdeBernoulliusandoamquinadiferencial.Nochegouasertestado,afinalamquinanoexisYadefato.

    Masconsideradooprimeiroprograma.

  • PrhistriadaslinguagensdeprogramaoProgramadoresdaBabilnia.MohammedAlKhorezmiAugustaAda,CondessadeLovelace

    AsprimeiraslinguagensdeprogramaoPlankalkulFortranLispAlgolSmalltalk

    AslinguagensqueestudamosnestecursoPrologML Java

  • KonradZuse

    1936:construiuumcomputadormecnico,nasaladeestardeseuspais,emBerlim:oZ1

    Eraumbacomecnico,controladoporpinosdemetalecorreias.

    Programvelviafitasperfuradas. Nmerosdepontoflutuante,embinrio,comexpoenteexplcito.

  • Plankalkul

    Em194546,Zusecompletouoprojetodeumalinguagemdeprogramao:Plankalkul.

    Vriasidiasrevolucionrias:Atribuio,expressesariYmYcas,subscritos.TipoprimiYvo:bit.Tiposderivados:inteiro,real,arranjos,etc.

    Execuocondicional,laos,subroYnas.Asseres!

    Zusecriouvriosprogramasexemplo:ordenao,buscaemgrafos,anlisesintYca,etc.

  • ExemploP1 max3 (V0[:8.0],V1[:8.0],V2[:8.0]) => R0[:8.0] max(V0[:8.0],V1[:8.0]) => Z1[:8.0] max(Z1[:8.0],V2[:8.0]) => R0[:8.0] END

    P2 max (V0[:8.0],V1[:8.0]) => R0[:8.0] V0[:8.0] => Z1[:8.0] (Z1[:8.0] < V1[:8.0]) -> V1[:8.0] => Z1[:8.0] Z1[:8.0] => R0[:8.0] END

    Nochegouaterinflunciaemoutraslinguagens.Porque?

  • PrhistriadaslinguagensdeprogramaoProgramadoresdaBabilnia.MohammedAlKhorezmiAugustaAda,CondessadeLovelace

    AsprimeiraslinguagensdeprogramaoPlankalkulFortranLispAlgolSmalltalk

    AslinguagensqueestudamosnestecursoPrologML Java

  • Programardavaumtrabalho

    Programareratrocarfiosdelugar.Namelhordashipteses,furarcartes.

    discilentenderquodiscileraestaaYvidade.

    OsprogramasdeAEDsIeramtrabalhodesemanas,uns60anosatrs.

  • WishList

    Nmerosdepontoflutuante:programadoresYnhamdelembrarqualaposiodoponto.

    EndereorelaYvo:programadoresYnhadesaberoendereodassubroYnasparacomputarendereosabsolutos.

    Subscritosparaarranjos. Algomaissimplesdelembrarqueinstruesoctais.

  • Asprimeirasferramentas

    Montadores CompiladoresprimiYvos:Shortcode,JohnMauchly,1949A0,A1,A2,GraceHopper,195153.CompiladoresparaexpressesaritmYcas.

    SpeedCoding,JohnBackus,1954 Eraprecisopoupartempodosprogramadores.

  • Fortran

    Aprimeiralinguagemdeprogramaoasetornarbastantepopular.

    OprojetofoilideradoporJohnBackus,naIBMEraparaterlevadoseismeses;levoudoisanos.

    DiminuiuoserrosdeprogramaoPossuiaumcompiladorquegeravacdigodequalidade.

  • CompilaoemSeparado

    Inicialmentesemcompilaomodular. Porm,programascomearamacrescer.CompilarprogramasgrandeseraimprYco.

    ComFortranIIveioapossibilidadedecompilarmdulos,enoprogramasinteiros.

    Idon'tknowwhatthelanguageoftheyear2000willlooklike,butIknowitwillbecalledFORTRAN.

    C.A.R.Hoare

  • Fortranfezescola

    Usadaathoje:previsodetempo,dinmicadefludos,etc.Benchmarks:SPECCFP2006.

    OcompiladoroYmizante:AnliselxicaParsingAlocaoderegistradores

  • JohnBackus

    Fortran,Algol58e60,BNFeFP(umalinguagempuramentefuncional)

    Mypointisthis:whileitwasperhapsnaturalandinevitablethatlanguageslikeFORTRANanditssuccessorsshouldhavedevelopedoutoftheconceptofthevonNeumanncomputerastheydid,thefactthatsuchlanguageshavedominatedourthinkingfortwentyyearsisunfortunate.ItisunfortunatebecausetheirlongstandingfamiliaritywillmakeithardforustounderstandandadoptnewprogrammingstyleswhichonedaywillofferfargreaterintellectualandcomputaYonpower.

    JohnBackus,1978

  • PrhistriadaslinguagensdeprogramaoProgramadoresdaBabilnia.MohammedAlKhorezmiAugustaAda,CondessadeLovelace

    AsprimeiraslinguagensdeprogramaoPlankalkulFortranLispAlgolSmalltalk

    AslinguagensqueestudamosnestecursoPrologML Java

  • LISP

    Em1956aconteceuumaconfernciadeIAemDartmouth:McCarthy,Minksy,Newell,Simon.

    Newell,ShaweSimonintroduziramLogicTheorist,umprogramaderacioncnioescritoemIPL(InformaYonProcessingLanguage).

    IPLYnhasuportealistasencadeadas,echamouaatenodeMcCarthy.

    SurgiaLISP,aprimeiralinguagemfuncional.

  • UmalinguagemparaIA

    JohnMcCarthyeraumprofessornoMIT,trabalhandocomIA.

    EleYnhaumalistadedesejos:ExpressescondicionaisRecursoFunesdealtaordem(comomap)Coletordelixo.

    Fortrannoservia

  • AsintaxedeLISP

    Umprogramaumalista,representandoumaAST:(+a(*bc))

    McCarthyescreveuumafunoevalparainterpretaraAST.AASTacabouvirandoaprprialinguagem.

    Estafunoevalfoiescritaamo,usandolinguagemassembly.

  • AevoluodeLISP

    LISPpossivelmentealinguagemmaispopularparaIA.

    Atporvoltade1980haviamuitosdialetos:CadagrupodepesquisaemIAYnhaseuprprioLISP.HaviainclusivecomputadoresqueforamdesenvolvidossomenteparaexecutarLISP.

    Hojehumacertapadronizao:CommonLISP:alinguagemebibliotecas.Scheme:umdialetomaissimples,ensinadoemescolas.

  • AinflunciadeLISP

    LISPasegundalinguagemdeprogramaoaindaemuso.

    Idiascomoexpressescondicionaiserecursosoamplamenteadotadashoje.

    Muitaslinguagensfuncionaissurgiram. Acoletadelixotambmmuitopopular.

  • PrhistriadaslinguagensdeprogramaoProgramadoresdaBabilnia.MohammedAlKhorezmiAugustaAda,CondessadeLovelace

    AsprimeiraslinguagensdeprogramaoPlankalkulFortranLispAlgolSmalltalk

    AslinguagensqueestudamosnestecursoPrologML Java

  • Algol

    Em1957aslinguagensdeprogramaoestavamsurgindoaosmontes. IndstriasYnhamseuspadres.UniversidadesYnhamseuspadres.Haviamuitospadres,enenhumapadronizao.

    Algolsurgiuparaacabarcomisto.Universal,independentedemquina.

    Umcomitinternacionalfoicriadoem1958,paraestabeleceroprojeto.

  • MuitosAlgols(!)

    Nofinaldascontas,trsprojetos:Algol58,Algol60eAlgol68.

    Oscomitsforamficandocadavezmaioresemaisestrelados.

  • Alongaherana

    Quasetodalinguagemquesurgiudepoisde1958usaidiasdeAlgol: Blocosdelimitadores. Estruturalxicadeformatolivre. SintaxedefinidaviaBNF Escopodeblocoparavariveislocais TipagemestYcacomanotaesdeYpo Ifthenelsesaninhados Chamadaporvalor Recursoeexpressescondicionais Alocaodinmicadememria. Procedimentosdeprimeiraclasse. Operadoresdefinidospelousurio.

  • Polmicas

    Asprimeiraslinguagensusavamrtulosegotosparacriardesviosdefluxo.

    Algolesimilaresvieramcomumanovaproposta,baseadaemestruturasdecontrole.

    Houvemuitapolmica. Em1968,EdsgarDijkstraescreveuumarYgomuitofamoso:Gotostatementconsideredharmful.

  • AProgramaoEstruturada

    Aprogramaobaseadaemestruturasdecontrole,emvezdertulos,chamadaprogramaoestruturada.

    Muitosprogramadoresachavamdiscilprogramarsemgotos.

    HojeapolmicapareceterchegadoaofinalAlgumaslinguagens,comoJava,nempossuemgotos

    Emesmoemlinguagensondegotosexistem,osprogramadoresraramenteosusam.

    EstapolmicatodasurgiucomAlgol

  • Ortogonalidade

    OprojetodeAlgoltentavaaomximoevitarcasosespeciais:SintaxeindependendedaformadosprogramasEliminaodelimitesarbitrrios:nomespodemterqualquertamanha