|
|
- Malu Ribeiro Vieira
- 8 Há anos
- Visualizações:
Transcrição
1 PGL-Umalinguagemparao FabioA.G.Lubacheski ensinodealgoritmos WalterAoiamaNagai MarceloSilvaCintra
2 PGL-Umalinguagemparaoensinodealgoritmos edefendidopelossrs.fabioa.g.lubacheski,marcelosilvacintraewalteraoiama Nagai. projetodegraduac~aodevidamentecorrigido Esteexemplarcorrespondearedac~aonaldo CampoGrande,9defevereirode1998. Prof.RonaldoAlvesFerreira Orientador Projetodegraduac~aoapresentadoaoDepartamentodeComputac~aoeEstatstica, obtenc~aodottulodebacharelemci^encia dacomputac~ao. UFMS,comorequisitoparcialparaa
3 Resumo cialmente.essaslinguagensest~aobaseadas,normalmente,nalnguainglesa.paraum duc~aodasoluc~aodeumproblemaparaaslinguagensdeprogramac~aoexistentescomer- UmagrandebarreiraenfrentadapelosiniciantesnaCi^enciadaComputac~aoeatra- poisassoluc~oesestudadasemsaladeaulas~aoexpressasdeformaalgoritmicaenalngua portuguesa.umdosobjetivosdesteprojetoediminuiressabarreiraatravesdadenic~ao inicianten~aoadapatadoaessalngua,issosetornaumproblemaadicionalasersuperado, deumanovalinguagemdeprogramac~aobaseadainteiramentenalnguaportuguesa.esta decompiladores,concentrando-seprincipalmentenotopicodeotimizac~aodecodigo,nas novalinguagemfoidenominadapgl(portugollanguage). estruturasdedadosenosprincipaisalgoritmosutilizadosnaconstruc~aodeumcompilador AlemdedeniralinguagemPGL,estetrabalhoapresentaumarevis~aodateoria parapgl.
4 iv
5 Conteudo 2ALinguagemPGL 1Introduc~ao 1 2.3Rotinas Vis~aoGeraldaLinguagem Tipos Express~oes Variaveis,Par^ametrosFormais,ConstanteseRotulos Comandos Otimizac~ao 3.2AnaliseSintatica AnaliseLexica Gerac~aodeCodigoIntermediario CodigodeTr^esEnderecos AnaliseSem^antica BlocosBasicos Representac~aodeBlocosBasicossobaformadeGrafosDirecionadosAcclicos GrafodeFluxo TecnicasdeOtimizac~ao Otimizac~aoPeephole Ordenac~aoHeursticadoGDA Eliminac~aodeSubexpress~oesComuns...32 v
6 4Implementac~ao CONTEUDO 37 vi AnaliseSintatica AnaliseLexica...38 FasedeAnalise EstruturasdeDados TabeladeSmbolos AnaliseSem^antica BlocosBasicos CodigodeTr^esEnderecos DescritordeTipos OtimizadordeCodigo GeradordeCodigo GrafoDirigidoAcclico AnalisedeVariaveisVivas DescritoresdeRegistradoreseEnderecos GeradordeCodigoSimples Conclus~ao 4.4.4Afunc~aoobterreg PropostasparaTrabalhosFuturos ResultadosObtidos BOperadoresdaLinguagemPGL AGramaticadaLinguagemPGL CPalavrasReservadasdaLinguagemPGL 67
7 ListadeFiguras 2.2Exemplodedeclarac~aodeprocedimentoefunc~ao Exemplodeumprocedimentoeduasfunc~oes Exemplodeimplementac~aodetiposnalinguagemPGL Exemplodeprocedimentoefunc~oesencaixadas Exemplodedeclarac~aoderotulos,variaveiseconstantes Exemplodarepresentac~aodeumcodigodetr^esenderecos Blocobasico Exemplodesentencasdetr^esenderecos ExemplodeumprogramafonteemPGL GrafodeFluxo GrafoDirecionadoAcclico Codigodetr^esenderecosdasexpress~oes Trechodeumprogramaexemplo Umaarvoresintaticacomum Grafodeuxoalteradocomaotimizac~ao Fluxodecontroledagura Fluxodecontroledagura Eliminac~aodesubexpress~oescomuns GDAaposaplicac~aodoalgoritmoheurstico AlgoritmoheursticoparaGDA Func~aodedispers~aohashpjw EstruturadedadosdaTabeladeSmbolos Tabeladedispers~aoaberta EstruturadedadosdoDescritordeTipos...44 vii
8 LISTADEFIGURAS 4.5EstruturadedadosdoCodigodeTr^esEnderecos...44 viii 4.8Programasoma EstruturadedadosdoBlocoBasico Codigodetr^esenderecosdoprogramasoma EstruturadedadosdoGrafoDirecionadoAcclico AlgoritmodeAnalisedeVariaveisVivas ExemplodeUsosdeVariaveisemPGL...52
9 Captulo1 Introduc~ao descritademaneiraclara,precisaesemambiguidades.oquesebuscaeumasequ^encia putador.paraqueumproblemasejaresolvidocomputacionalmente,suasoluc~aodeveser OobjetivobasicodaCi^enciadaComputac~aoeasoluc~aodeproblemasatravesdocom- nitadepassosquequandoseguidoslevaasoluc~aodoproblema.esseeoconceitode algoritmoseconstituiabasedacomputac~ao. formanatural.utilizarumalinguagemalgortmicaeaformamaiscomumeeciente trato,eparaescrev^e-loeprecisoummeiopararepresentaressepensamentoabstratode Paradesenvolverumalgoritmoenecessarioumcertograuderaciocniologicoeabs- pensamentohumano. modo,umalinguagemdeveexpressardeformanaturaloraciocniologicoecriativodo dedescreverasideias,poisoatodeescrevereaunicamaneiradeformaliza-las.desse barreiradecomunicac~aoentreohomemeamaquina.oscomputadoresoperam,em geral,numnvelmuitoat^omico,manipulandodgitosbinarios,registradores,posic~oesde Oadventodoscomputadorestornouevidente,desdemuitocedo,aexist^enciadeuma memoriaetc.,enquantopessoaspreferemexpressar-seusandolnguasnaturais,auxiliadas, quandonecessario,peloempregodenotac~aomatematica.desdemuitocedotentou-se superaressabarreiracomaintroduc~aodelinguagensdeprogramac~ao. cutadostendoemvistaasoluc~aodeproblemas.existeumadiversidadedelinguagens deprogramac~ao,cadaumacomsuascaractersticaspropriasedestinadasasoluc~aode Atravesdelinguagensdeprogramac~ao,osalgoritmospodemserimplementadoseexe- problemasespeccos.amaioriadessaslinguagenspossuemseuscomandosemingl^es, taiscomocepascal.muitoslivrosdeensinodealgoritmosutilizamumalinguaguemde- 1
10 nominadaportugolparaaespecicac~aodealgoritmos,comoporexemplo[5].aprincipal Captulo1.Introduc~ao 2 caractersticadalinguagemportugolequeseuscomandoss~aoemportugu^es. paraoensinodealgoritmosemumcursointrodutoriodeci^enciadacomputac~ao.esta novalinguagem,denominadapgl(portugollanguage),estatotalmentebaseadana Umdosobjetivosdesteprojetoedenirumanovalinguaguemdeprogramac~aovoltada cal,demodoqueousuariodequalquerumadessaslinguagenspodefacilmentetraduzir lnguaportuguesa,ouseja,possuitodosseuscomandosemportugu^es. seuprogramapglparaessaslinguagensevice-versa.dessamaneira,oprogramador ALinguagemPGLpossuicaractersticasdeoutraslinguagens,taiscomoCePas- poderapensarlivrementenassoluc~oesdeproblemasepoderaimplementa-lasfacilmente nocomputador. eaquelequeaplicatransformac~oesdemelhoriadecodigodeformaaseobterumcodigo truc~aodeumcompiladorotimizador1paraestalinguagem.umcompiladorotimizador Alemdaespecicac~aodalinguaguemPGL,esteprojetotemcomoobjetivoacons- quesejaexecutadomaisrapidamente,queocupemenosespacoouosdois.essastrans- queocodigoobtidosejaotimo[1]. formac~oess~aotradicionalmentechamadasdeotimizac~oes,apesardotermon~aoserapropri- ado,porquesomenteemalgumassituac~oesespeccaspode-segarantirmatematicamente selec~aodetransformac~oesdemelhoriadecodigo[1]: Aconstruc~aodeumcompiladorotimizadorbaseia-seemtr^escriteriosbasicosparaa 1.umatransformac~aodevepreservarosignicadodosprogramas,istoe,umaotimizac~aon~aopodemodicarasadaproduzidaporumprograma; 2.umatransformac~aoprecisa,namedia,\acelerar"osprogramasporumfatormensuravel; 3.umatransformac~aoprecisavaleroesforco.N~aofazsentidoumcompiladorgastartempoadicionaldecompilac~aocomosprogramas-fonteseesseesforcon~aofor Duranteodesenvolvimentodesteprojeto,tecnicasdeotimizac~aodecodigoser~aoestudadas,bemcomoasestruturasdedadosnecessariasparaquetaistecnicaspossamser recompensadoquandooprogramaforexecutado. implementadas. 1OptimizingCompiler
11 Captulo1.Introduc~ao Esteprojetoestaorganizadodamaneiraaseguir.Ocaptulo2descreveasprincipaiscaractersticasdalinguagemPGLcomo,porexemplo,tipos,comandos,rotinaseas 3 funcionalidadesdeidenticadores(variaveis,constanteserotulos).ocaptulo3fazuma breverevis~aodateoriadecompiladores,concentrando-seprincipalmenteemalgoritmos PGL.Ocaptulo5apresentaasconclus~oesepossveisextens~oesparaestetrabalho. estruturasdedadosutilizadasealgunsdetalhesdeimplementac~aodocompiladorpara eestruturasdedadosnecessariosparaaotimizac~aodecodigo.ocaptulo4descreveas
12 Captulo1.Introduc~ao 4
13 Captulo2 ALinguagemPGL NestecaptuloseraapresentadaalinguagemPGL,mostrandocaractersticasqueadetersticasdeformagenerica.Asec~ao2.2forneceinformac~oessobreostiposbasicosexistenteseapossibilidadedesecriartiposestruturados.Asec~ao2.3detalhafunc~oese maneira:asec~ao2.1apresentaumavis~aogeraldalinguagem,mostrandosuascarac- nemcomoumalinguagemdeprogramac~ao.ocaptuloestaorganizadodaseguinte procedimentos,tiposdepar^ametrospossveis,tiposderetornoeotratamentodeescopo dasvariaveislocais.asec~ao2.4detalhaoscomandosexistentesnalinguagem,taiscomo: existenteseosoperadoresdasexpress~oes. constantes,rotulosedospar^ametrosformais.asec~ao2.6descreveostiposdeexpress~oes comandosrepetitivos,condicionaiseoutros.asec~ao2.5tratadadeclarac~aodevariaveis, AlinguagemPGLofereceumconjuntodetiposbasicos,comoporexemplo,inteiro, 2.1 Vis~aoGeraldaLinguagem booleano,caracter,realefrase.alemdisso,oprogramadorpglpodeconstruirnovos tiposestruturadosemaiscomplexosapartirdessestipos. possvelmodica-laduranteoprograma.osdemaistipos:booleano,caracterereals~ao comumtamanhomaximode255caracteres.umafraseesempreconstante,n~aosendo Umafraseeumasequ^enciadecaracteres(dgitoseletras)contidaentreumparde'"', equivalentesaostiposboolean,charerealdalinguagempascal. racteres(dgitoeletra),comecandocomumaletra,n~aohavendodistinc~aoentreletras Umidenticadorereconhecidopelalinguagemcomosendoumasequ^enciadeca- 5
14 maiusculaseminusculas.umidenticadorpoderepresentarrotulos,variaveis,rotinas, Captulo2.ALinguagemPGL 6 constantesoupalavrasreservadas. execuc~aodoprogramaealterado,seguindoparaaprimeirainstruc~aoaposorotulo.um dedesvio,desdequeorotulojatenhasidodeclarado.aoreferenciarumrotulo,ouxode Adenic~aoderotulospossibilitaaoprogramadorarefer^enciapormeiodeumcomando comandoqualquerpodeserprecedidoporumrotuloseguidodosmbolo':'(doispontos). aassociac~aodeumidenticadoraumvalorquepodeserumnumerointeiro,real,caracter poderaseralteradoaolongodoprograma.afacilidadequeasconstantesproporcioname Adenic~aodeconstantesconsisteematribuirumvaloraumidenticador,quen~ao oufrase,tornando-osin^onimodovalorassociado. mentos,eseguemopadr~aodalinguagempascal,sendoassim,func~oespodemtervalor deretorno,enquantoqueumprocedimenton~aopodeter.alemdisso,asec~ao2.3discute AlinguagemPGLpermiteacriac~aoderotinas,quepodemserfunc~oesouprocedi- caractersticasdasrotinas,formasderetornoetratamentodasvariaveislocais,bemcomo, otratamentoparaospar^ametrosdasrotinas.rotinaspodemserdeclaradasdentrode rotinacomonalinguagempascal. 2.2 Umtipodeneoconjuntodevaloresqueumavariavelpodeassumireasoperac~oese Tipos avariavelocupaecomoefeitasuarepresentac~aonamemoriadocomputador[8]. tipo.otipodavariavelpermiteaocompiladordeterminaraquantidadedememoriaque relac~oesqueatuamsobreestesvalores.todavariaveldeveestarassociadaaumunico deumproblemaespecco.alinguagempglpossuicincotiposbasicos:booleano,inteiro, caracter,frase,real.umtipobasicoeumtipocomcaractersticasjadenidaspelo Adenic~aoecriac~aodetiposs~aoutilizadaspeloprogramadorcomoauxlionasoluc~ao compilador.epermitidoaoprogramadoraredenic~aodetiposbasicoseacriac~aode novostiposdenominadostiposestruturados. podemserutilizadoscomoconstantesaolongodeumprograma,aumentandoacompreens~aodomesmo.issoemostradoclaramentenalinha(3)nagura2.1. porumasequ^enciadeidenticadoresconstantesemordemcrescente.estesidenticadores Umexemplodedenic~aodetipopodeserumaenumerac~ao,queeumtipoconstrudo Umaoutraformadoprogramadordenirumtipoeutilizarosexistentes,denindo
15 novosvaloresqueser~aoaceitospelonovotipo.otipointervalodeneosvaloresmaximo Captulo2.ALinguagemPGL 7 gura2.1temosumexemplodeumtipointervalo. emnimoqueelepoderaaceitar.osvaloresmaximoemnimos~aoidenticadoresconstantes,umnumerointeiroouumcaracter,sempredemesmotipo.nalinha(5)e(6)da enumerac~aoeintervalopodemsercombinadosdemodoaformartiposestruturadosque s~aodivididosemvetor,registroeconjunto.atravesdecombinac~oesdotipovetorpode-se Ostiposbasicosbooleano,inteiro,caracter,fraseerealemaisostiposdenidos chegaraumtipoestruturadomatriz,queeumvetorcommaisdeumadimens~ao.os edenidonadeclarac~aodomesmo.parasefazeracessosaoselementosdovetor,usa-se elementosdeumvetordevemsertodosdomesmotipoeonumerodeelementosexo porelementosquepodemserdetiposdistintos(basicos,estruturados),comonoexemplo onomedavariavelvetorseguidodondiceentrecolchetes.jaotiporegistroeformado nalinha(8)dagura2.1.cadacomponentedeumregistroedenominadocampo.os camposdeumregistropodemserreferenciadosusando-seonomedavariaveldotipo registroseguidodeumpontoeoidenticador(campo).otipoconjunto,assimcomoo aceitandooperac~oesbasicasdeconjuntocomo(uni~ao,diferencaeintersec~ao). tipovetor,tambemconsistenumacolec~aodeelementosdeummesmotipo,adiferenca estanamanipulac~aodoselementos,poisotipoconjuntoetratadocomoumaunidade, din^amicass~aoreferenciadasindiretamenteutilizando-seooperadordeindirec~ao. seja,variaveisquepodemsercriadasoudestrudasemtempodeexecuc~ao.asvariaveis Asvariaveisassociadasaotipoponteiros~aodenominadasvariaveisdin^amicas,ou Agura2.1mostravariosexemplosdedenic~oesdetiposvalidosnalinguagemPGL. 2.3 AsrotinasdalinguagemPGLpossuemumtratamentoigualaodasoutraslinguagens Rotinas par^ametrosderotinass~aoexpress~oes,variaveiseaspropriasrotinas.umarotinapode estruturadas,possuindoprincipalmenteumaequival^enciacomalinguagempascal.os assumirasformasmostradasnagura2.2: forempassadosporrefer^enciaseusvalorespoder~aoseralteradosduranteaexecuc~aoda Estespar^ametrospodemserpassadosporvalorouporrefer^encia,Quandoospar^ametros Asequ^enciapar1,par2,...denotaospar^ametrosformaisqueumarotinapodeassumir. rotinaeasalterac~oesser~aoreetidasnasvariaveisdeorigem.
16 Captulo2.ALinguagemPGL 8 (4) (3) (1)programaexemplo (2)tiponumero Equipes =(Corinthians,Palmeiras,Santos,Sao_Paulo, =inteiro; (7) (6) (5) Rodadas Cariocas=Botafogo..Vasco; Paulistas=Corinthians..Sao_Paulo; =1..7; Botafogo,Flamengo,Fluminense,Vasco); (8) (9) Clube =registro (12) (11) (10) fimregistro; socios=numero; titulos=numero; nome =Equipes; (13) (14) PontosGanhos=vetor[Rodadas]denumero; (17)fim. (15)inicio (16)//corpodoprograma Tabela =vetor[equipes][equipes]deequipes; Figura2.1:Exemplodeimplementac~aodetiposnalinguagemPGL. (2) (3) (4) (1) inicio procedimentoidenticador(par1,par2,...) (5) (6) m funcaoidenticador(par1,par2,...):identicador corpodoprocedimento (9) (7) (8) m inicio corpodafunc~ao Figura2.2:Exemplodedeclarac~aodeprocedimentoefunc~ao.
17 Captulo2.ALinguagemPGL Todosospar^ametrosformaisdeumarotinaetodasasvariaveisdeclaradasnelatem9 (1) umescopolocallimitadoaocorpodarotina,istoe,s~aolocaisarotina. (4) (2) (3) inicio procedimentop1(valora,b:inteiro;referenciac:inteiro) (5) (6) m funcaof1(a,b:inteiro):inteiro c<-a+b; (9) (10) (7) (8) m inicio (11) funcaof2(a,b:inteiro):inteiro F1<-a+b; (14) (13) (12) m inicio retornea+b; Umretornodefunc~aopodeassumirduasformas,aprimeiraerepresentadanalinha Figura2.3:Exemplodeumprocedimentoeduasfunc~oes. comandoretorne,comomostraalinha(13)dagura2.3.ovalorderetornodeuma (8)dagura2.3,emqueoidenticadorf1dafunc~aoarmazenaovalorquedeveraser func~aodeveserdeumtipobasicooudeumtipoapontador,n~aosendopossveloretornode retornadopelemesma.asegundaforma,menosrepresentativa,efeitautilizando-seo tiposestruturados(vetor,registro,matriz,etc).epermitidaaoprogramadoraliberdade deescolhadaformaqueserautilizadaparaoretornodevalordeumafunc~ao,poisambas Pascal[8].Oencaixamentoderotinasefeitoatravesdadeclarac~aodesubrotinasdentro possuemamesmafuncionalidade.. derotinas,comomostraagura2.4.comesseencaixamentoassubrotinaspodemutilizar Umoutrorecursodalinguagemeoencaixamentoderotinas,comonalinguagem asvariaveis,tipos,constantes,rotuloserotinasdeclaradasnasrotinasmaisexternas. Kowaltowskiem[7]apresentaumestudoextensosobreencaixamentoderotinas. ouseja,quaisvariaveispodemservistasporoutrassubrotinas.nalinha(8)dagura 2.4,oprocedimentop3temacessoatodasasvariaveisqueforamdeclaradasnoprograma Oprogramaencaixadomostraquaiss~aoosescoposdasvariaveisnosprocedimentos, principal,asqueforamdeclaradasemp1,alemdesuaspropriasvariaveis.masopro-
18 Captulo2.ALinguagemPGL 10 (1) (2) programaencaixado (5) (4) (3) declarea:inteiro; declareb:inteiro; procedimentop1 (7) (8) (6) inicio declarec:inteiro; procedimentop2 (9) (10) (11) inicio m p2; a<-a+b+c; (12) (13) (15) (16) m(14) declared:inteiro; a<-a+b; (17) inicio a<-a+d; procedimentop3 (20) (21) (18) (19) inicio m (22) mp1; p3; Figura2.4:Exemplodeprocedimentoefunc~oesencaixadas.
19 cedimentop2n~aotemacessoasvariaveisqueforemdeclaradasapartirnoprocedimento Captulo2.ALinguagemPGL 11 encaixamentomaisinterno. p3possuemummesmonveldeencaixamento.jaoprocedimentop2temumnvelde p3,poisp2sopodeseracessadoapartirdoprocedimentop1.osprocedimentosp1e 2.4 AlinguagemPGLpermitecomandossimilaresaosdasoutraslinguagensestruturadas, Comandos daseguinteforma: umaseriedesentencasseparadasporponto-vrgula.umcomandodeatribuic~aoefeito emboraapresentecaractersticasespeccasqueadiferenciam.umasentencaspgle Aformageraldeumcomandocondicionale: identicador expressao; (2) (1) (3) seexpressaoentao (4) (5)... (6) senao (7) (8) (9)... Ocomandorotuladorepresentadonalinha(2)docomandocondicionalindicaquepode mse execuc~aonormaldoprograma.aformageraldecomandorotuladoemostradaaseguir. setratardeumcomandocomrotulo,sendoutilizadosomentesefornecessariodesviara Aformageraldeumcomandodedesvioe: [identicador:]comandof[identicador:]comandog emqueidenticaorrepresentaumrotulo. Aformageraldeumcomandodedesviomultiploe: desvieparaidenticador;
20 Captulo2.ALinguagemPGL escolhaexpressaode 12 AlinguagemPGLpermitediversoscomandosderepetic~ao,quepossuem mescolha fcasog 3formasbasicas: enquantoexpressaofaca... comandorotulado menquanto repita... comandorotulado ateexpressao paraidenticadordeexpressaoateexpressao[passoexpressao]faca... comandorotulado explicados.aformadeumadeclarac~aodedesviodeiterac~aoe: Alinguagempermiteumcomandodedesviodeiterac~aodos3comandos mpara abandone; anteriormentenotopicoderotinas,estadeclarac~aoearetorne.ocomando retorneeutilizadosomenteemfunc~oesn~aosendopossvelutiliza-loemum AlinguagemPGLcontemumadeclarac~aoderetornodefunc~aojadiscutida procedimento,jaqueprocedimentosn~aopossuemvalorderetorno.
21 2.5 Captulo2.ALinguagemPGL Variaveis,Par^ametrosFormais,ConstanteseRotulos 13 Variaveis,constantes,par^ametrosformaiserotuloss~aodenotadosemPGL porsimplesidenticadores. essavariavelpassaserdenominadacomovariavellocaleereconhecidasomentenocorpodestarotina,possuindoportanto,umescopolocal.jaahecido.quandodeclaramosumavariaveldentrodeumadeterminadarotina, Escopoeolocal(ouponto)noprogramaemqueumidenticadorerecon- seuescopo(dereconhecimento)eemtodooprograma[12]. variaveisdeclaradasnoinciodoprogramas~aodenominadasvariaveisglobaise estruturado(complexo).essaassociac~aoevalidaemtodooblocoquea contem. Umadeclarac~aodevariaveisassociaumidenticadoraumtipobasicoou mesmoescopo.estaregran~aovalepararotinasencaixadas,poisummesmo identicadorpodeestaremdiferentesescopos. Ummesmoidenticadorsopodeserdeclaradoumaunicavezdentrodeum Adeclarac~aodevariaveispossuiaseguinteformageral: Aatribuic~aodevariaveispossuiaseguinteformageral: declareidenticador1,identicador2,...:tipo; Ooperadordeatribuic~aoerepresentadopelosmbolo<-.Onovovalorpara identicador expressao; avariavelqueestaaesquerdadesteoperadoreobtidoapartirdaavaliac~ao nasvaloresdetiposbasicos:inteiro,real,booleano,caracter,frase.otamanhode daexpress~aoqueestaadireita. umaconstanteeindicadopelotipoatribudoaela.umaconstantepossuium Asconstantess~aorepresentadasporidenticadoresepodemassumirape- valorxoquen~aosemodicaduranteaexecuc~aodeumprograma. Adeclarac~aodeconstantesedaseguinteforma: constanteidenticador=constante;
22 Captulo2.ALinguagemPGL Adeclarac~aoderotulospossuioseguinteformato: 14 Todorotulodeveserdeclaradoantesdeseuusonasec~aodedeclarac~ao rotulosidenticador1,identicador2,...; doblocoemqueestacontido.essadeclarac~aodisponibilizaorotuloparaa refer^enciadocomandodesviepara.qualquercomandopodeserprecedidode umrotulodenido. PGL: Segueabaixoumexemplodedeclarac~oesemumprogramanalinguagem 3constanteconst1=3; 1programaexemplo1; 2rotulo 45tipotipo1=^inteiro; l,l2,l3; 6declarevar1,var2:inteiro; 7 var3,var4:frase; const2=const1; 11fim 9inicio 10 8procedimentop1(par1,par2:inteiro); //corpodoprograma Figura2.5:Exemplodedeclarac~aoderotulos,variaveiseconstantes. Umaexpress~aoeformadadeoperandos,operadorespodendosersimplesou 2.6 Express~oes Express~oessimpless~aoformadasporvariaveis,constantesoupar^ametrosformais. complexas.asexpress~oescomplexass~aocompostasporexpress~oessimples. truturado).acadatipoeassociadoumconjuntodeoperac~oespossveissobre asinst^anciasdotipo,podendoassim,determinarosoperadoresinerentesaos Osoperandosest~aosempreassociadosaumdeterminadotipo(basicooues- operandos.osoperadoresdalinguagempgl,bemcomosuaspreced^encias,
23 s~aomostradasnosap^endicesbec.aspreced^enciasdosoperadoresest~ao Captulo2.ALinguagemPGL 15 denidasemordemcrescente. s~aoavaliadossempredaesquerdaparaadireita.parasealteraraordem dosoperadoresenvolvidos,sendoqueosoperadoresdemesmapreced^encia Aordemdeavaliac~aodeumaexpress~aoocorredeacordocomapreced^encia deavaliac~aodeumaexpress~aoeprecisoutilizarparesdepar^entesesqueespecicamosoperandosquedevemseravaliadosprimeiro,sendoquedentro preced^encia,daesquerdaparaadireita[7]. decadapardepar^entesesser~aoavaliadosprimeiroosoperadoresdemaior ouvariaveisdotiponumerico(inteirooureal)ecujosoperadorespodemser: Express~oesAritmeticas:s~aoasexpress~oescujosoperandoss~aoconstantes Podemosclassicarasexpress~oesemduascategorias: OperadoresUnarios OperadoresdeMultiplicac~ao OperadoresdeAdic~ao OperadoresdeBit Operadoresparaponteiro Umexemplodeexpress~aoaritmeticaemPGLemostradoabaixo: Express~oesLogicas:s~aoexpress~oescujosoperadoress~aologicos,ecujos -(10*5+15)>>2 operandoss~aorelac~oes,constantesouvariaveisdotipologico. atravesdeconstantes,variaveisouexpress~oesaritmeticas,estasultimaspara doisvaloresdemesmotipobasico.estesvaloress~aorepresentadosnarelac~ao Umarelac~ao,ouexpress~aorelacional,eumacomparac~aorealizadaentre relac~ao,tambems~aomostradosnoap^endiceb.oresultadoobtidodeuma ocasodevaloresnumericos. relac~aoesempreumvalorlogico. Osoperadoresrelacionais,queindicamacomparac~aoentreostermosda Umexemplodeumaexpress~aologicaemPGLemostradoabaixo:
24 Captulo2.ALinguagemPGL (2+4=6)ou(2*2+4=6) 16 avaliac~aoefeitadeacordocomapreced^enciadosoperadores. Tantonasexpress~oesaritmeticascomonasexpress~oeslogicas,aordemde
25 Captulo3 Otimizac~ao quepoderiaserproduzidoa\m~ao".oscompiladoresotimizadoresdeveriam Seriaidealseoscompiladoresproduzissemumcodigot~aobomquantoaquele fazerisso,masoquerealmentefazemeummelhoramentodocodigo,pois raramentepodesergarantidoqueocodigogeradosejaotimo. anteriormentenoprocessodecompilac~ao.porisso,serafeitainicialmente entanto,paraquesepossafazerotimizac~ao,variasetapasdevemsercumpridas Nestecaptuloser~aoestudadosalgunstopicosdeotimizac~aodecodigo.No umarevis~aodosprincipaisconceitosdateoriadecompiladoresqueservir~ao dasfasesiniciaisdeumcompilador(lexica,sintaticaesem^antica).asec~ao5 comobaseparaaleituradorestantedotexto..ocaptuloestaorganizado detalhaumadaspossveisrepresentac~oesparaocodigointermediario,ocodigo daseguinteforma:asquatroprimeirassec~oesapresentamumabreverevis~ao basicosparaaotimizac~aodecodigoeasec~ao7discutealgumastecnicasde otimizac~ao. detr^esenderecos.asec~ao6tratadaconstruc~aoedaimport^anciadeblocos 3.1 Aanaliselexicaeaprimeirafasedeumcompilador.Elaeresponsavelpela AnaliseLexica leituradoarquivofonteepeloreconhecimentodeatomos.atomosrepresentamossmbolosterminaisdagramaticadalinguagemfonte,porexemplo,identicadores,palavraschaves,operadores,constantes,smbolosdepon- 17
26 tuac~aoeoutrosmais. Captulo3.Otimizac~ao 18 lexico.nocaptulo4ser~aodiscutidosalgumascaractersticasadicionaisde analisadoreslexicosetambemalgumasmaneirasdeimplementa-los. Aoprogramaresponsavelpelaanaliselexicada-seonomedeanalisador Cadalinguagemdeprogramac~aopossuiregrasquedescrevemaestrutura 3.2 AnaliseSintatica programac~aoenormalmentedescritaatravesdegramaticaslivresdecontexto [6].Aanalisesintatica,tambemconhecidacomoanalisehierarquica,eresponsavelpeloagrupamentodeatomos,provenientesdaanaliselexica,do sintaticadosprogramas.asintaxedasconstruc~oesdeumalinguagemde fonte. analiseeumaarvoresintatica[1]comascontruc~oespermitidaspelalinguagem programafonteemfrasesgramaticais.normalmente,oprodutodafasede compiladoress~aoodescendente(top-down)eoascendente(bottom-up)[1,2,7]. Osmetodosdeanalisesintaticamaiscomumenteutilizadosnacontruc~aode 3.3 Aanalisesem^anticavericaoserrossem^anticosnoprogramafonteecapturaas AnaliseSem^antica informac~oesdetipoparaafasedegerac~aodecodigo.elautilizaaestrutura plicitamentegerada,ouent~aovericaavalidadesem^anticadoprogramafonte hierarquicageradanafasedeanalisesintatica,quandoessaestruturaeex- duranteoprocessodeanalisesintaticacomoac~oesembutidasnoanalisador sintatico,quandoaarvoresintatican~aoeconstrudaexplicitamente. mitidospelaespecicac~aodalinguagemfonte.alemdisso,eladevefazera Nelaocompiladorvericasecadaoperadorrecebeosoperandosques~aoper- Umimportantecomponentedaanalisesem^anticaeavericac~aodetipos. vendonumerosinteirosedepontoutuante,cabeaoanalisadorsem^antico, programaresponsavelpelaanalisesem^antica,fazeraconvers~aodevalores convers~aoentretiposquandonecessaria.porexemplo,emexpress~oesenvol-
27 inteirosparapontoutuanteevice-versa. Captulo3.Otimizac~ao Emumcompiladorcommaisdeumpasso[1],aposasfasesdeanaliselexica, Gerac~aodeCodigoIntermediario sintaticaesem^antica,umaformaderepresentac~aointermediariaegerada paraumamaquinaabstrata.apesardesepodertraduziroprograma-fonte pelocompilador.estarepresentac~aopodeserpensadacomoumprograma formaintermediariaindependentedemaquinas~ao: diretamenteparaalinguagemalvo,algunsdosbenefciosemseusaruma 1.apartirdarepresentac~aointermediariapode-segerarcodigoparadiferentesmaquinasalvo,bastandoapenasmudaromodulodegerac~aode 2.otimizac~oesindependentesdemaquinapodemseraplicadasarepresentac~aointermediaria. codigo; asmaisconhecidass~ao:ocodigodetr^esenderecoseaarvoresintatica.a seguirseraestudadoocodigodetr^esenderecos,quefoiarepresentac~aointermediariaescolhidaparaaimplementac~aodocompiladorparapgl. Existeumavariedadedeformasderepresentac~aointermediaria,sendoque 3.5 Arepresentac~aodeumprogramautilizandocodigodetr^esenderecosconsiste CodigodeTr^esEnderecos operandos.maisespecicamente,ocodigodetr^esenderecoseumasequ^encia emumasequ^enciadeinstruc~oes,cadaumadelaspossuindonomaximotr^es desentencasdeformageral: emquex,yezs~aovariaveis,constantesouvariaveistemporariascriadas x:=yopz pelocompilador;oprepresentaumoperadorbinario,comoporexemplo,um operadoraritmeticodepontoxooupontoutuante.
28 Captulo3.Otimizac~ao Comooprepresentaumunicooperador,n~aos~aopermitidasexpress~oes 20 tencasdetr^esenderecos: aritmeticascomplexas.porconseguinte,umaexpress~aodelinguagem-fonte comok<-x+y*zaoseranalisadaproduziraaseguintesequ^enciadesen- t1:=y*z emquet1eumavariaveltemporariageradapelocompilador.ousodetemporariosfacilitaadecomposic~aodeexpress~oescomplexasemexpress~oesmais k:=x+t1 dosenvolvidoscomooperador,dadoqueosenderecosdosoperandoss~ao simples. conhecidoseoenderecodoresultadotambemeconhecido,sendopossvel Autilizac~aodocodigodetr^esenderecosfacilitaamanipulac~aodosoperan- codigodetr^esenderecosemostradanagura3.1.estarepresentac~aoeconhecidacomoquadrupla.paramaioresdetalhessobreoutrasrepresentac~oes, fazeraoperac~aoearmazenaroresultado.umapossvelrepresentac~aodeum comoporexemplotriplas,veja[1]. Figura3.1:Exemplodarepresentac~aodeumcodigodetr^esenderecos. Operador Arg1 Arg2 Resultado binarios,eleerepresentativotambemparaoperadoresunarioseparaoutras construc~oesquealinguagemfontepossaexigir,comoporexemplo,instruc~oes Ocodigodetr^esenderecosn~aoerepresentativosomenteaoperadores hanteaumainstruc~aodemaquina,facilitando,portantoagerac~aodecodigo dedesviocondicionaleincondicional. nal. Umasentencadetr^esenderecoseumaformarepresentativabastantesemel- utilizadasemumcompilador. Aseguirs~aodescritasalgumassentencasdetr^esenderecosnormalmente 1.Atribuic~oesdaformax:=opy,sendoopumoperadorunario.
29 Captulo3.Otimizac~ao 2.Sentencasdecopia,daformax:=y,sendoqueyeatribudodiretamente 21 3.UmasentencadedesvioincondicionaldesvieparaLindicaoproximo enunciadodetr^esenderecoscomrotulolaserexecutado.esteenunciadoesemelhanteasinstruc~oesjumpoubranchdeumalinguagemde montagem. ax. 4.UmasentencadedesviocondicionalcomosexrelopydesvieparaL avaliac~aofeitapelocompiladordecidevalidaroun~aoaexecuc~aodoenunciadodesvieparal,casocontrario,aexecuc~aosegueparaaprimeira aplicaumoperadorrelacional(<,=,<=,>,>=,<>)edeacordocoma 5.Sentencasdaformaparamxecallp,ns~aoutilizadasparachamadasde instruc~aoaposoenunciadocondicional. rotinas,emqueasequ^enciadetr^esenderecospossuiaseguinteforma: paramx1 paramx2... paramxn callp,n rotinap. x2,...,xn).nasentencacallp,n,nindicaonumerodepar^ametrosda Essasinstruc~oess~aogeradascomopartedachamadadeprocedimentop(x1, resentarocodigodetr^esenderecosnocompiladorparaalinguagempgl. Nocaptulo4seraapresentadaaestruturadedadosutilizadaparaarep- 3.6 Aposarepresentac~aodeumprogramafonteemsentencasdetr^esenderecos, BlocosBasicos tem-seumarepresentac~aodasinstruc~oesdemaquinaquepodemsergeradas uxosdecontrole,eistoacontecequandos~aofeitosporsentencasdaforma apartirdeumprograma.umprogramanormalmenteapresentadesviosde
30 desvieparal.estassentencasdedesvioscriam\ramicac~oes"noprograma. Captulo3.Otimizac~ao 22 Umblocobasicoeumasequ^enciadecodigosdetr^esenderecosquen~aopossui ramicac~ao,ouseja,quandoouxodecontroleatingeoprimeirocodigode possiblidadederamicac~ao[1,9]. tr^esenderecosdobloco,elesomenteodeixanom,semumaparadaou b<-a*5; enquantob<100faca senao seb<aentao fimse b<-b-5; b<-c+5; fimenquanto Figura3.2:ExemplodeumprogramafonteemPGL r1: b:=a*5 5 seb>=100desvieparar2 76 seb>=adesvieparar3 8 r3: b:=c+5 9 r4: b:=b-5 desvieparar r2: desvieparar1 Osblocosbasicoss~aoimportantesparaaconstruc~aodegrafosdeuxo,pois Figura3.3:Exemplodesentencasdetr^esenderecos. osmesmosoferecemdiversasalternativasdeotimizac~ao.oconceitodegrafo deuxoedetalhadonaproximasec~ao.
31 Captulo3.Otimizac~ao Umprogramaexemploedescritonagura3.2easuarepresentac~aoem 23 sentencasdetr^esenderecosedescritanagura3.3.comisso,epossvelgerar osblocosbasicosdoprogramaexemplocomomostraagura3.4. r1: b:=a*5 B1 seb>=100desvieparar2 B2 seb>=adesvieparar3. b:=c+5 B3 B4 r3: desvieparar4 B5 r4: b:=b-5 desvieparar1 B6 r2: Figura3.4:Blocobasico. B7 instruc~oescontidasemcadablocodeacordocomanumerac~aoapresentadana gura3.3.asinstruc~oes3,4,6e10possuemumenunciadodaformadesvie Osnumeroscontidosdentrodecadaret^angulodagura3.4indicamas paral,emquelpodeserr1,r2,r3,r4.destaforma,pode-sereferenciar Lcomosendoum\rotulo"dedesvio.Umrotuloeoinciodeumbloco enquantoqueumenunciadodedesviodeveserumnaldebloco,dadoque umainstruc~aodedesviopermiteumaramicac~ao. enderecoseasadaproduzidaserianaformarepresentadapelagura3.4. deimplementac~ao,emqueaentradaseriasequ^enciasdesentencasdetr^es Umalgoritmodeconstruc~aodeblocosbasicosseradiscutidonocaptulo Mostrandotambem,algumasmodicac~oesnecessariasnaestruturadocodigo
Estruturas de entrada e saída
capa Estruturas de entrada e saída - A linguagem C utiliza de algumas funções para tratamento de entrada e saída de dados. - A maioria dessas funções estão presentes na biblioteca . - As funções
Leia maisPos. Designação Tipo Medida Material 1 RETENTORES CB 4 X 11 X 6 2 RETENTORES CB 4 X 11 X 6 VITON 3 RETENTORES CB 4 X 12 X 6 4 RETENTORES CB 4 X 12 X
1 RETENTORES CB 4 X 11 X 6 2 RETENTORES CB 4 X 11 X 6 VITON 3 RETENTORES CB 4 X 12 X 6 4 RETENTORES CB 4 X 12 X 6 VITON 5 RETENTORES CB 4,5 0X 16 X 7 6 RETENTORES CB 4,8 X 22 X 7 7 RETENTORES CC 5 X 15
Leia maisTécnicas de Programação: ESTRUTURAS, UNIÕES E TIPOS DEE UFPB
Técnicas de Programação: ESTRUTURAS, UNIÕES E TIPOS DEFINIDOS PELO USUÁRIO Prof. Protásio DEE UFPB 1 Estruturas É uma coleção de variáveis que são referenciadas sob um único nome. Uma estrutura fornece
Leia maisESTRUTURA CONDICIONAL
AULA 6 ESTRUTURA CONDICIONAL 130 Tem como objetivo executar um conjunto de comandos caso uma condição lógica seja atendida. Quando a resposta lógica for falsa, nada será executado. Sintaxe Se CONDIÇÃO
Leia maisTeoria da Computação Gramáticas, Linguagens Algébricas e Autómatos de Pilha
Teoria da Computação Gramáticas, Linguagens Algébricas e Autómatos de Pilha Simão Melo de Sousa 12 de Outubro de 2011 Conteúdo 1 Gramáticas e Definições básicas 1 2 Gramáticas e Linguagens 4 2.1 Gramáticas
Leia maisIntrodução. A verificação de tipos pode ser estática e dinâmica
Análise Semântica Introdução Verifica se as construções sintaticamente corretas possuem significado lógico dentro da linguagem Verifica a consistência da declaração e uso dos identificadores Além disso,
Leia maisTrabalho: Algoritmos de Busca e Ordenação. 1 Introdução. Prof. Bruno Emerson Gurgel Gomes IFRN - Câmpus Currais Novos. 31 de outubro de 2012
Trabalho: Algoritmos de Busca e Ordenação Prof. Bruno Emerson Gurgel Gomes IFRN - Câmpus Currais Novos 31 de outubro de 2012 1 Introdução Os algoritmos de busca e de ordenação compreendem um conjunto de
Leia maisSECRETARIA MUNICIPAL DE EDUCAÇÃO DE CANINDÉ DE SÃO FRANCISCO RELAÇÃO DE FUNCIONÁRIOS
CATEGORIA 12 CATEGORIA 20 020569 02050 020568 02051 020902 0020584 0020582 0020581 02058 0020886 0020533 0020588 0020586 0020566 020589 0020592 0010134 002088 0020561 002053 020898 0010363 0010198 0020591
Leia maisProgramação I. Departamento de Engenharia Rural Centro de Ciências Agrárias
Departamento de Engenharia Rural Centro de Ciências Agrárias Programação I Prof. Bruno Vilela Oliveira bruno@cca.ufes.br http://www.brunovilela.webnode.com.br Aulas 2-3-4-5-6-7-8 Lógica Algoritmos Portugol
Leia maisCompiladores. Otimização de código
Compiladores Otimização de código Otimização de código Recebe uma representação intermediária e produz como saída código de máquina eficiente Parser Checagem Estática Geração de código intermediário Otimização
Leia maisCompiladores. Otimização de Código
Compiladores Otimização de Código Cristiano Lehrer, M.Sc. Atividades do Compilador Arquivo de origem Arquivo de destino Análise Otimização Geração de Código Intermediário Geração de Código Final Síntese
Leia maisALGORITMO I VARIÁVEIS INDEXADAS
VARIÁVEIS INDEXADAS Array Auxiliadora Freire Slide 1 Array: Conjunto de informações do mesmo tipo, cada informação é representada na memória do computador por uma variável. O nome de qualquer variável
Leia maisTratamentos Tempo de Armazenamento T F secagem 0 mês 6 meses ( C) (m 3 /minuto/t) (hora) D 1 D 2 D 3 Médias D 1 D 2 D 3 Médias 42 26,9 0 10,4 10,8
Tratamentos Tempo de Armazenamento T F secagem 0 mês 6 meses ( C) (m 3 /minuto/t) (hora) D 1 D 2 D 3 Médias D 1 D 2 D 3 Médias 42 26,9 0 10,4 10,8 10,9 10,7 12,8 11,6 12,0 12,1 4 11,1 10,6 10,9 10,9 13,1
Leia maisGeração de código intermediário. Novembro 2006
Geração de código intermediário Novembro 2006 Introdução Vamos agora explorar as questões envolvidas na transformação do código fonte em uma possível representação intermediária Como vimos, nas ações semânticas
Leia maisAlgoritmos com VisuAlg
Algoritmos com VisuAlg Prof Gerson Volney Lagemann Depto Eng de Produção e Sistemas UDESC - CCT Algoritmos com VisuAlg Introdução A linguagem VisuAlg é simples, seu objetivo é disponibilizar um ambiente
Leia maisIntrodução a Algoritmos Parte 04
Universidade Federal do Vale do São Francisco Curso de Engenharia de Computação Introdução a Algoritmos Parte 04 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti
Leia maisFluxograma. Conjunto de símbolos utilizados em fluxogramas
27 Símbolo Nome Terminador Seta de fluxo Entrada de dados Atribuição Saída de dados Desvio condicional Declaração Fluxograma Descrição Indica o início e o fim do fluxo do algoritmo. Indica o sentido do
Leia maisGeração de código. Ivan Ricarte INTRODUÇÃO À COMPILAÇÃO
Geração de código Ivan Ricarte 2008 Sumário Geração de código intermediário Código de três endereços Notação pós-fixa Otimização de código Heurísticas de otimização Geração de código em linguagem simbólica
Leia maisLinguagem algorítmica: Portugol
Programação de Computadores I Aula 03 Linguagem algorítmica: Portugol José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/34 Introdução I Lógica A lógica é usada
Leia maisProjeto em Grupo: Parte 2
Universidade Federal do Pará Instituto de Tecnologia Faculdade de Engenharia da Computação Disciplina: Compiladores Professor: Jefferson Data: 12/05/2009 Equipe: Luana Oliveira Lucas Mousinho Luis Adauto
Leia maisIMPORTAÇÃO DO CADASTRO DE PESSOAS
IMPORTAÇÃO DO CADASTRO DE PESSOAS 1. Objetivo: 1. Esta rotina permite importar para o banco de dados do ibisoft Empresa o cadastro de pessoas gerado por outro aplicativo. 2. O cadastro de pessoas pode
Leia maisConvertendo Algoritmos para a Linguagem C
onvertendo Algoritmos para a Linguagem Notas de Aula Prof. Francisco Rapchan www.geocities.com/chicorapchan O objetivo deste texto é mostrar alguns programas em, dando uma breve descrição de seu funcionamento
Leia maisCash Management Folha de Pagamento
Cash Management Folha de Pagamento Layout de Arquivo Padrão CNAB 240 Padrão 240 Folha de Pagamento Versão Atualizada Composição do Arquivo Header do arquivo (registro tipo 0) Header do lote (registro tipo
Leia maisLinguagem de Programação
Linguagem de Programação Introdução a Linguagem C Princípios de Programação em C Gil Eduardo de Andrade Conceitos Iniciais: Linguagem C Introdução É uma linguagem estruturada; Foi desenvolvida na década
Leia maisLinguagens de Programação
68 Linguagens de Programação Uma linguagem de programação é um vocabulário e um conjunto de regras gramaticais usadas para escrever programas de computador. Esses programas instruem o computador a realizar
Leia maisTrabalho 3: Agenda de Tarefas
INF 1620 Estruturas de Dados Semestre 08.2 Trabalho 3: Agenda de Tarefas O objetivo deste trabalho é a implementação de um conjunto de funções para a manipulação de uma agenda de tarefas diárias, de forma
Leia maisIntrodução a Linguagem C
Rafael Silva Guimarães =p://=p.ci.ifes.edu.br/informacca/rafael_guimaraes Introdução a Linguagem C Técnicas de Programação Histórico O C é derivado de uma outra linguagem: o B, criado por Ken Thompson.
Leia maisTransformação sobrenome + nome em nome completo utilizando Máquina de Turing
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Programa de Pós-Graduação em Ciência da Computação Computabilidade e Complexidade de Algoritmos Prof. Ney Laert Vilar Calazans
Leia maisAlgoritmos Computacionais ( Programas )
Algoritmos Computacionais ( Programas ) A partir deste tópico, consideramos a utilização do universo Computacional na solução de problemas. Para tanto devemos lembrar que a transposição de problemas do
Leia maisAula 3 Desvio Condicional
Aula 3 Desvio Condicional ROTEIRO DA AULA Desvio Condicional Simples Desvio Condicional Composto Desevio Condicional Aninhado Desvio Condicional em JAVA 2 DESVIO CONDICIONAL Um desvio condicional é usado
Leia maisTutorial do Interpretador de Linguagem Algorítmica (ILA)
1 Tutorial do Interpretador de Linguagem Algorítmica (ILA) Preparado por Elvio Leonardo, a partir do tutorial fornecido com o software ILA e do material produzido pelo Prof Marcelo Azambuja I INTRODUÇÃO
Leia maisProgramação de Computadores I Pseudocódigo PROFESSORA CINTIA CAETANO
Programação de Computadores I Pseudocódigo PROFESSORA CINTIA CAETANO Pseudocódigo Pseudocódigo é uma forma genérica de escrever um algoritmo, utilizando uma linguagem simples (nativa a quem o escreve,
Leia maisAvaliação de Expressões
valiação de Expressões valiação de Expressões - Como efetuar o cálculo de uma expressão em um computador? Exemplo: / B C D + E Regras usuais da matemática. Os parênteses alteram a ordem das expressões:
Leia maisResumo da Introdução de Prática de Programação com C. A Linguagem C
Resumo da Introdução de Prática de Programação com C A Linguagem C O C nasceu na década de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 rodando o sistema operacional
Leia maisEstruturas de Repetição. Prof. Paulo Cesar F. de Oliveira, BSc, PhD
Prof. Paulo Cesar F. de Oliveira, BSc, PhD 1 Seção 1.1 Recapitulação 2 ² Estruturas vistas até agora ² Sequencial algoritmo exemplo var declaração de variáveis inicio comando 1 comando 2... comando n fimalgoritmo
Leia maisPROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br
- Aula 5 - O NÍVEL DA LINGUAGEM DE MONTAGEM 1. INTRODUÇÃO É relativamente fácil compreender os fundamentos da programação de computadores, sob o ponto de vista da inteligibilidade dos comandos de alto
Leia mais7. Estrutura de Decisão
7. Estrutura de Decisão Neste tipo de estrutura o fluxo de instruções a ser seguido é escolhido em função do resultado da avaliação de uma ou mais condições. Uma condição é uma expressão lógica. A classificação
Leia maisGramá3ca Livre de Contexto (GLC)
Linguagens Formais e Autômatos Gramá3ca Livre de Contexto (GLC) Andrei Rimsa Álvares Material extraído do livro e slides do Prof. Newton Vieira (hep://dcc.ufmg.br/~nvieira) Sumário Gramá4cas livres de
Leia maisANEXO I-i PLANILHA DE AVALIAÇÃO DE PREÇOS LOTE 1
ANEXO I-i PLANILHA DE AVALIAÇÃO DE PREÇOS RAZÃO SOCIAL - NOME FANTASIA - LOTE 1 Quantidade Preço Final Quantidad e CATEGORIA C1 Avaliação Final de Preços por Porta/ Preço Final Quantidade Preço Final 512Kbps
Leia maisAlgoritmos: Estruturas de Repetição. Prof. Carlos Lopes
Algoritmos: Estruturas de Repetição Prof. Carlos Lopes Estruturas de Repetição Considere o algoritmo apresentado anteriormente Algoritmo Inteiro N1,N2,N3,N4; // notas bimestrais Real MA // media Leia(N1,N2,N3,N4)
Leia maisLinguagens Formais e Compilação Ficha de exercícios
Linguagens Formais e Compilação Ficha de exercícios Simão Melo de Sousa 1 Linguagens Formais: Construir Frases Exercício 1 Para cada uma das gramáticas G seguintes, (a) descreva a linguagem L(G) gerada
Leia maisProgramação de Computadores III
Programação de Computadores III Introdução a Linguagens de Programação Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.1/tcc-00.157
Leia maisExpressões. Prof. Alberto Costa Neto alberto@ufs.br. Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe
Linguagens de Programação Departamento de Computação Universidade Federal de Sergipe Expressão é uma frase de um programa que ao ser avaliada retorna um valor Tipos Literais Agregados Chamadas de Função
Leia mais----------------------------------------------------------------------------------------------------- Prof. Marcelo Nogueira
LISTAS Uma lista é uma coleção de elementos do mesmo tipo dispostos linearmente que podem ou não seguir determinada organização, por exemplo: [E, E2, E, E4, E,...En], onde n deve ser >=0. Como exemplos
Leia mais1. Fazer um programa em C que pergunta um valor em metros e imprime o correspondente em decímetros, centímetros e milímetros.
Lista de exercícios: Grupo I - programa seqüênciais simples 1. Fazer um programa em C que pergunta um valor em metros e imprime o correspondente em decímetros, centímetros e milímetros. 2. Fazer um programa
Leia maisSistemas Operacionais e Introdução à Programação. Introdução à Lógica de Programação: estruturas de repetição
Sistemas Operacionais e Introdução à Programação Introdução à Lógica de Programação: estruturas de repetição 1 Imagine um algoritmo para calcular a média de uma quantidade desconhecida de números Para
Leia maisAula prática de Cálculo Usando a planilha Excel
Aula prática de Cálculo Usando a planilha Excel Prof. Ulysses Sodré Profa. Sônia Ferreira L. Toffoli Londrina-PR, 27 de Junho de 2007, arquivo: excel001.tex 1 Alça de preenchimento no Excel Ao selecionar
Leia maisCompiladores. Análise léxica. Plano da aula. Vocabulário básico. Motivação para análise léxica. Estrutura de um compilador
Estrutura de um compilador Compiladores Análise lexical (1) Expressões Regulares 1 2 Plano da aula 1. Motivação do uso de E.R. e definições Linguagens, tokens, lexemas... 2. Regras de formação e exemplos
Leia maisIntrodução à Lógica de Programação (cont.)
Operadores Introdução à Programação (cont.) Luis Otavio Alvares Adaptado de slides das profas. Vania Bogorny, Patrícia Jaques e Mônica Py Usados para incrementar, decrementar, comparar e avaliar dados,
Leia maisAutômatos a pilha. UFRN/DIMAp/DIM0330 Linguagens formais. David Déharbe. http://www.consiste.dimap.ufrn.br/ david/enseignement/2003.
UFRN/DIMAp/DIM0330 Linguagens formais http://www.consiste.dimap.ufrn.br/ david/enseignement/2003.1/dim0330 1/36 Autômatos a pilha David Déharbe UFRN/DIMAp Campus Universitário, Lagoa Nova, 59072-970 Natal,
Leia maisAPOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL
1. O que é Linguagem SQL 2. Instrução CREATE 3. CONSTRAINT 4. ALTER TABLE 5. RENAME TABLE 6. TRUCANTE TABLE 7. DROP TABLE 8. DROP DATABASE 1 1. O que é Linguagem SQL 2. O SQL (Structured Query Language)
Leia maisProgramação Estruturada
Algoritmos e Técnicas - Estruturas de Controle de Fluxo - Programação Estruturada Programação estruturada é a técnica de construir e formular algoritmos de uma forma sistemática. Utilizada para apresentar
Leia maisESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO
ESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO Baseado nos slides de autoria de Rosely Sanches Estruturas de Controle ESTRUTURA SEQUENCIAL ESTRUTURAS CONDICIONAIS Estrutura Condicional Simples Estrutura
Leia maisProtótipo de Gerador de Código Executável no Ambiente FURBOL
Protótipo de Gerador de Código Executável no Ambiente FURBOL Acadêmico: Geovânio Batista André Orientador: José Roque Voltolini da Silva Trabalho de Conclusão de Curso Área/SubÁrea Compiladores/Geração
Leia maisEstrutura de Condição, Escolha e Repetição
Estrutura Condicional Se, Laços de repetição Estrutura de Condição, Escolha e Repetição Profª Fabíola Gonçalves C. Ribeiro INTRODUÇÃO Os comandos a seguir modificam o fluxo de execução de um algoritmo
Leia maisCurso de C para Engenharias
Aula 4 Cristiano Dalbem Dennis Balreira Gabriel Moreira Miller Biazus Raphael Lupchinski Universidade Federal do Rio Grande do Sul Instituto de Informática Grupo PET Computação Sintaxe Funções Exemplos
Leia maisCompiladores Aula 5. Celso Olivete Júnior. olivete@fct.unesp.br
Aula 5 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Conjuntos Primeiro(First) e Seguidor(Follow) 2 Na aula de hoje Análise Sintática Análise Sintática Descendente Recursividade Fatoração 3
Leia maisEstruturas de Dados I
Estruturas de Dados I Rodrigo Porfírio da Silva Sacchi rodrigosacchi@ufgd.edu.br 3410-2075 Aula 6: Listas Encadeadas e Alocação Dinâmica Listas Encadeadas e Alocação Dinâmica Alocação Seqüencial versus
Leia maisCircuitos Digitais Segunda Lista de Exercícios
Circuitos Digitais Segunda Lista de Exercícios Observação: o início da lista é composto dos problemas recomendados do livro-texto. exercícios nas últimas duas páginas da lista são novos (não estão no livro-texto).
Leia maisRelatório de Versões Versão 3.52
Relatório de Versões Versão 3.52 Alterações Realizadas Nº Descrição TELA PRINCIPAL: 1 Tela Principal Botão de Relação de Fundos: Novo item de informação na tela principal para indicar o nome da Conexão
Leia maisComo utilizar o ScadaBR para monitorar os sensores da linha Comet.
Como utilizar o ScadaBR para monitorar os sensores da linha Comet. Para acessar os dados dos monitores de temperatura da linha Comet utilizando a solução open source ScadaBR, basta seguir a rotina abaixo.
Leia maisProcessamento da Informação Teoria. Algoritmos e Tipos de dados
Processamento da Informação Teoria Algoritmos e Tipos de dados Semana 01 Prof. Jesús P. Mena-Chalco 24/04/2013 (*) Slides adaptados das aulas do Prof. Harlen Costa Batagelo Algumas definições de algoritmo
Leia maisCURSO BÁSICO DE PROGRAMAÇÃO AULA 9. Revisão Aula Anterior Estruturas de Decisão (If e Switch)
CURSO BÁSICO DE PROGRAMAÇÃO AULA 9 Revisão Aula Anterior Estruturas de Decisão (If e Switch) Revisão Comandos básicos no terminal: Para verificar os arquivos que estão em uma pasta usa-se ls: Para acessar
Leia maisOBS.: Qualquer variável utilizada num subprograma que não for parâmetro deve ser considerada como variável local.
1 LINGUAGEM ALGORITMICA Instituto Luterano de Ensino Superior de Ji-Paraná Curso Bacharelado em Informática Prof.: José Luiz A. Duizith Variáveis : Toda em maiúscula : CONSTANTE Iniciando em Maiúscula
Leia maisParte II Introdução a Linguagens de Programação
Programação de Computadores III Aula 1 Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2011.1/tcc-03.063 Roteiro da Aula
Leia maisAlgoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3
Algoritmos e Estruturas de Dados I Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3 Exercício - Seleção Escreva um algoritmo que leia o ano, mês e dia que uma pessoa nasceu
Leia maisVisuALG Estruturas de Repetição. Professores: Vilson Heck Junior vilson.junior@ifsc.edu.br Felipe Schneider Costa felipe.costa@ifsc.edu.
VisuALG Estruturas de Repetição Professores: Vilson Heck Junior vilson.junior@ifsc.edu.br Felipe Schneider Costa felipe.costa@ifsc.edu.br O Problema. Estruturas de Repetição: Introdução; Repita ate; Exemplo;
Leia maisNoções sobre Objetos e Classes
Noções sobre Objetos e Classes Prof. Marcelo Cohen 1. Elementos de programação Revisão de programação variáveis, tipos de dados expressões e operadores cadeias de caracteres escopo de variáveis Revisão
Leia maisSíntese. Compiladores. Geração de código intermediário. Linguagens Intermediárias. Modelo Clássico. Linguagens Intermediárias. Código intermediário
Síntese Compiladores Código intermediário 1 Os assuntos apresentados trazem respostas às perguntas seguintes: 1. Pode a memória ser alocada dinamicamente? 2. Pode a memória ser liberada explicitamente?
Leia mais2 Orientação a objetos na prática
2 Orientação a objetos na prática Aula 04 Sumário Capítulo 1 Introdução e conceitos básicos 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2 Objetos 1.4.3 Métodos e atributos 1.4.4 Encapsulamento 1.4.5 Métodos
Leia mais6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto
Capítulo 6. Autômatos com Pilha 6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto Nos exemplos da seção anterior, vimos que os autômatos com pilha existem para
Leia maisCIÊNCIA DA COMPUTAÇÃO I Excel. Núm1, núm2,... são argumentos de 1 a 255 cuja soma ou valor total você deseja obter.
SOMA Retorna a soma de todos os números na lista de argumentos. Sintaxe SOMA(núm;núm;...) Núm, núm,... são argumentos de a 55 cuja soma ou valor total você deseja obter. Comentários Os números, valores
Leia maisApostila 03 Linguagens Livres de Contexto
Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e
Leia maisQUALIFICAÇÃO TÉCNICA EM DESENVOLVIMENTO DE SISTEMAS
Desenvolvimento De Sistemas - Lógica De Programação. 1. Lógica de Programação I 1.1 Introdução á Lógica de Programação 1.2 O que é lógica? 1.3 Lógica Matemática 1.4 Lógica de Programação 1.5 Seqüência
Leia maisINSTITUTO SUPERIOR DE CIÊNCIAS DO TRABALHO E DA EMPRESA. Filas de mensagem
Página 1 de 5 INSTITUTO SUPERIOR DE CIÊNCIAS DO TRABALHO E DA EMPRESA Sistemas Operativos ETI - IGE Filas de mensagem 2º Semestre 2003/2004 Aula 04 1. Criar uma fila de mensagens. Mandar uma mensagem.
Leia maisCriar a classe Aula.java com o seguinte código: Compilar e Executar
Introdução à Java Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Código Exemplo da Aula Criar a classe Aula.java com o seguinte código: public class Aula { public static void
Leia maisLinguagem C. TGSI Lógica de Programação / Linguagem C Prof. Marcos Roberto
Linguagem C O C nasceu na década de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 rodando o sistema operacional UNIX. O C é derivado de uma outra linguagem: o B,
Leia maisInvestimentos - Poupança
A33H050838813777051 05/02/2013 09:23:06 Período 01/2013 31/12 SALDO ANT. 552,89 C 17/01 17/ JUROS 3793-1 2,76 C 555,65 C POUPANCA OURO E - RENDEM TRANQUILIDADE E COMODIDADE. CENTRAL DE ATENDIMENTO BB 4004
Leia maisGABARITO COMENTADO SISTEMAS OPERACIONAIS. PROF. Cláudio de C. Monteiro, Evanderson S. de Almeida, Vinícius de M. Rios
CURSO - TADS TURMA 2008.1 2 PERÍODO 3 MÓDULO AVALIAÇÃO MP2 DATA 02/10/2008 SISTEMAS OPERACIONAIS 2008/2 GABARITO COMENTADO SISTEMAS OPERACIONAIS PROF. Cláudio de C. Monteiro, Evanderson S. de Almeida,
Leia maisCurso Adonai QUESTÕES Disciplina Linguagem JAVA
1) Qual será o valor da string c, caso o programa rode com a seguinte linha de comando? > java Teste um dois tres public class Teste { public static void main(string[] args) { String a = args[0]; String
Leia maisLP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br
LP II Estrutura de Dados Introdução e Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Considerações Gerais Introdução a Linguagem C Variáveis e C Tipos de
Leia maisAluísio Eustáquio da Silva
1 Aluísio Eustáquio da Silva SciLab Programável Material didático usado em aulas de Programação de Computadores, Algoritmos e Lógica de Programação Betim Maio de 2012 2 PROGRAMAÇÃO O SciLab permite que
Leia mais1.6. Tratamento de Exceções
Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER
Leia maisFig.1: Ilustração de Estrutura de Dados Fonte: Internet
ATENÇÃO: LOCAL DE ALTERAÇÃO/ACRESCIMO!!!! 5. Estruturas de Dados Geralmente, os algoritmos são elaborados para manipulação de dados e quando estes dados estão organizados de forma coerente, representam
Leia maisAplicativo para controle de vendas e estatísticas através da Internet. Carlos Alberto Zago
Aplicativo para controle de vendas e estatísticas através da Internet Carlos Alberto Zago Roteiro Introdução Comércio Eletrônico Ferramentas Personal Web Server A Linguagem PHP MySQL Desenvolvimento do
Leia maisWeb Services. Autor: Rômulo Rosa Furtado
Web Services Autor: Rômulo Rosa Furtado Sumário O que é um Web Service. Qual a finalidade de um Web Service. Como funciona o serviço. Motivação para o uso. Como construir um. Referências. Seção: O que
Leia maisTabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008
Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,
Leia maisProgramação Orientada a Objetos
Programação Orientada a Objetos Faculdade de Computação Aula Revisão Marcelo Zanchetta do Nascimento Material elaborado pela Profa. Ana Carolina Lorena - UNIFESP Desenvolvimento de Software ANÁLISE IMPLEMENTAÇÃO
Leia maisAlgoritmo e Programação
Algoritmo e Programação Professor: José Valentim dos Santos Filho Colegiado: Engenharia da Computação Prof.: José Valentim dos Santos Filho 1 Ementa Noções básicas de algoritmo; Construções básicas: operadores,
Leia maisNovas Tecnologias no Ensino da Matemática
UFF Novas Tecnologias no Ensino da Matemática 1 Novas Tecnologias no Ensino da Matemática Humberto José Bortolossi http://www.professores.uff.br/hjbortol/ Lista 8 ATIVIDADE 1 Uma outra maneira de se poupar
Leia maisFUNDO DE EFICIÊNCIA ENERGÉTICA
FUNDO DE EFICIÊNCIA ENERGÉTICA Comissão Executiva do Plano Nacional de Ação para a Eficiência Energética (PNAEE) Decisão sobre as candidaturas submetidas ao Aviso 07 Promoção da Mobilidade Urbana Sustentável
Leia maisVPL do Projeto. Parte 3. O VPL Projetado Como fazer na planilha Excel
2008 VPL do Projeto Parte 3 O VPL Projetado Como fazer na planilha Excel Bertolo INVENT 21/05/2008 2 VPL do Projeto ORÇAMENTO DE CAPITAL 10 VPL Projetado 1. Básico Problema. Suponha uma empresa considerando
Leia maisCURSO BÁSICO DE PROGRAMAÇÃO AULA 9. Introdução a linguagem C Estruturas de decisão
CURSO BÁSICO DE PROGRAMAÇÃO AULA 9 Introdução a linguagem C Estruturas de decisão Introdução à Linguagem C Linguagem compilada. Desenvolvida sobre os paradigmas de programação procedural. Uma das linguagens
Leia maisPROGRAMAÇÃO ESTRUTURADA. CC 2º Período
PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 07: Funções O comando return Protótipo de funções O tipo void Arquivos-cabeçalho Escopo de variáveis Passagem de parâmetros por valor
Leia maisIntrodução ao Matlab. 1 Algumas regras e comandos do Matlab. 3 de março de 2015. Docente Responsável : Prof. Dr. Antônio C. Roque
Introdução ao Matlab 3 de março de 2015 Docente Responsável : Prof. Dr. Antônio C. Roque Monitores : Rodrigo F. O. Pena e Renan Shimoura MATLAB (MATrix LABoratory) é um programa de alta performance e de
Leia maisUNIVERSIDADE FEDERAL DA BAHIA UFBA ESCOLA POLITÉCNICA DEPARTAMENTO DE TRANSPORTES DISCIPLINA: TÉCNICAS DE GEOMENSURA LEVANTAMENTOS TOPOGRÁFICOS
UNIVERSIDADE FEDERAL DA BAHIA UFBA ESCOLA POLITÉCNICA DEPARTAMENTO DE TRANSPORTES DISCIPLINA: TÉCNICAS DE GEOMENSURA LEVANTAMENTOS TOPOGRÁFICOS SUBTERRÂNEOS CADERNO DE EXERCÍCIOS PROPOSTOS CAPÍTULO 6 PROF.
Leia mais