Escolar Documentos
Profissional Documentos
Cultura Documentos
Parte1
Nestapginaestodetalhadososprocedimentosquedevemserseguidospara
odesenvolvimentodoTrabalho1dadisciplinadeCompiladoresI.Este
trabalhoserdesenvolvidoaolongodestesemestreletivoeconstituircomo
partedanotafinaldareferidadisciplina.fortementerecomendadoqueos
estudantesacessemcomfreqnciaestapginapara:esclarecerpossveis
dvidas,estarcientedocronograma,estarapardepossveis
atualizaes/alteraesnotrabalho.
Objetivos:ProjetareImplementarAnalisadorLxico(ParteI)paraumsub
conjuntodalinguagemPascal.Paratanto,utilizealinguagemJavaetome
comobaseasaulastericaseprticasdocursodeCompiladoresIato
momento.
Oquedeveserfeito?
1. ConstruiraclasseAnaLexemtodosparaanliselxica.Pelomenosum
mtodo(AnaLex)deveexistir.
1. Omtododevelerocontedodoprogramapassadocomoparmetro
eretornarostokensencontrados.
2. Controlaranumeraodaslinhasassimcomodeveseignorar
comentrios.Paracadatokenreconhecido,deveserpossvelexibir:
<Numerodalinhadotoken,Token,Atributo(quandopossuiratributo)>
3. ObservequeomtodoAnaLexretornaumtokensemprequefor
chamado.Essemtodonodeveescreverotokennatela,massim
produzirumtokenparaumoutromtodo(mtodomain,porexemplo)
queseroresponsvelpelasada
4. Aspalavraschavesoconsideradaspalavrasreservadas,i.e.nopodem
serutilizadascomoidentitificadores.Alistadepalavrasreservadas
dadapor:{AND,ARRAY,BEGIN,CASE,CONST,DIV,DO,
DOWNTO,ELSE,END,FOR,FUNCTION,GOTO,IF,LABEL,
MOD,NOT,OF,OR,POINTER,PROCEDURE,PROGRAM,
RECORD,REPEAT,SET,THEN,TO,TYPE,UNTIL,VAR,WHILE,
WITH}
5. Criaregerenciarumatabeladepalavrasreservadas(tabelahashou
vetordestrings)paraaspalavrasreservadasdalinguagem.Todavez
queumidentificadorforencontrado,deverserfeitaumabuscana
tabeladepalavrasreservadas.Umabuscacomsucessonessatabela
indicaqueumapalavrachavefoireconhecidaeentoseutokenser
retornado.Casocontrrio,umidentificadorfoireconhecidoeomesmo
deverserinseridonatabeladesmbolos,casoaindanotenhasido
inserido.
6. Implementartabeladesmboloscomoumatabelahashoutabelade
disperso.Quandoumidentificadorreconhecido,deveseinicialmente
fazerumabuscanatabeladepalavrasreservadasparaverificarseuma
palavrareservada.Casoabuscanotenhasucesso,devesefazeruma
novabuscanatabeladesmbolos,eretornarotokenassociado,casoo
identificadorsejaencontrado.Emcasonegativo,oidentificadordeve
serinseridonatabeladesmboloseentoretornarotokenassociado.
7. Pascalnofazdistinoentreidentificadorescomletrasmaisculasou
minsculas.ARRAYequivalentearray.Sugeresequetodasasletras
sejamconvertidasparaumadasduasformasantesdequalquer
comparao.
8. SeguirmetodologiaparaconvenodecdigoemprogramasJava
descritaaqui.
9. Definiesregularesparatokenssematributos:
assign_op>:= dotdot>.. dot>. colon>:
simb_pointer>^ ender>@
10.Definiesregularesparatokenscomatributos:
Obs:Notequeoreconhecimentodepalavrasreservadasserno
reconhecimentodeindentificadores(definioidentifier).
11.Delimitadores:
Delim>''|\t|\n ws>delim+
2. Implementarumanalisadorsintticopreditivorecursivodeacordocoma
gramticadominipascalespecificadaaqui.
3. Deveserconstrudoumanalisadorsintticodescendenterecursivosem
recuperaodeerros.Quandoumerrofordetectado,oanalisadordeveemitir
umamensagemdeerro,mostrandootipodeerrodetectadoealinhaqueo
erroocorreueterminaraexecuodoprograma.
Sugestodemetodologiaparadesenvolvimentodotrabalho
Trabalhocooperativoeparticipativoemdupla(ouindividual).Namedidado
possvel,utilizeametodologiaXPpararealizaodessetrabalho.
Faaoprojetodoanalisadorlxico.Organizeasclasses,atributosemtodos.
Lembreseque,maistarde,acrescentaremosumanalisadorsintticonesse
projeto!
Implementeoreconhecimentodeumtoken,faatestes,passeparaoprximo.
Fazendoisso,errossimplesdetectadosnessaimplementaonoserepetiro
nasprximas.
Noapagueosprogramasqueestcriandoparatestarseuanalisadorlxico.
Oconjuntodeprogramastestesdeveincrementardetamanhoamedidaque
novascaractersticassoimplementadas.
Utilizeocompiladorexemploquetemosadotadoemsaladeaulaparainiciar
oentendimentoe/ouaimplementaodoanalisadorlxico.
Faaoprojetodoanalisadorsinttico.Organizeasclasses,atributose
mtodos.Lembreseque,maistarde(prximosemestre),acrescentaremosum
analisadorsemnticonesseprojeto!
Naimplementaodoanalisadorsinttico,elaboreprogramasexemploque
exploremascaractersticassintticasdalinguagem.
Discussocomoutraspessoas(professoresealunosdo9sem.)afimde
entenderetirardvidasdeimplementao.
QualoCronograma?
11/03:Iniciodotrabalho.Observequeaolongodetodoosemestreteremos
aulasdedicadas,exclusivamente,aodesenvolvimentodoTrabalhoI.
10/04:1o.Checkpoint(ParteI):Ohorriodaaulaserdedicadopara
avaliaodoandamentodaParteI(AnalisadorLxico)doTrabalhoI.O
Professorfarentrevistascomcadagrupoprocurandosaberoquefoi
implementado,oquenofoiimplementado,quaissooscasosdetestes.Ser
pedidoparaogrupoexplicarpartesdocdigofonteacritriodoprofessor.
esperadoqueaduplatenhaimplementadoaclasseAnalexeosrecursosdo
AnalisadorLxico(>70%).
29/05:2o.(eltimo)Checkpoint(ParteII):Ohorriodaaulaserdedicado
paraavaliaodoandamentodaParteII(AnalisadorSinttico)doTrabalhoI.
OProfessorfarentrevistascomcadagrupoprocurandosaberoquefoi
implementado,oquenofoiimplementado,quaissooscasosdetestes.Ser
pedidoparaogrupoexplicarpartesdocdigofonteacritriodoprofessor.
esperadoqueaduplatenhaimplementadoaclasseParsereosrecursosdo
AnalisadorSinttico(>80%).
12/06:EntregaeApresentaodoTrabalho:
ComoseraavaliaodotrabalhonadisciplinadeCompiladoresI?
NAPCAvaliaesParciaisdosCheckpoints(presena,participao,
objetivoscumpridos,etc.)CadacheckpointterPeso1.5.
NImpImplementao(clarezadocdigo,comentrios,programasteste,
documentaogeraldocdigo)Peso4
NRelRelatrio(organizao,qualidadedaescrita,clareza)Peso3
NBBonus(participaonadisciplina,utilizao/demonstraode
ferramentas,qualidadedorelatrio,adoodeconvenodecdigo,destaque
emrelaoaosdemaistrabalhos)Peso1
Somadetodasasnotasanteriorescomseusrespectivospesos.Lembreseque
amdiafinaldadisciplinadadaporMF=(P1+P2+T1)/3
Dicas/Sugestes
ProcureentenderocdigoJavaqueutilizamosemaulasanteriores.Isso
ajudaradefiniroanalisadorlxico.
Inicieotrabalhooquantoantes.Otempovoa!
Nocopiecdigodeningum!Nunca,jamais.Seencontrarcdigo
semelhanteaoquevocdesejaimplementar,estudeo,entendao,masfaaa
suaprriaimplementao.
Perguntasfrequentes:
P:Sefaltarnodiadocheckpoint,ficacom0?
R:Hduaspossibilidades:1)Sesouber,previamente,queirfaltaremdiade
checkpoint,adupladeveavisaraoprofessorqueiragendarumhorrioanteriorao
diadocheckpoint.2)casoafaltasejadevidoaumimprevisto,adupladeve
procuraroprofessoredevejustificaraausnciae,apsisso,oprofessormarcar
umhorrioparaaentrevista.Faltassemjustificativa,recebero0comonotado
checkpoint.
P:Hpossibilidadedeadiaraentregadotrabalhoporalgunsdias?
R:No.Asdatasdeentregaestnolimitemximoaceitvel.Trabalhosentregues
foradoprazocorremosrioriscodenoseremavaliadose,nomelhordoscasos,
seroavaliadosmasosatrasosserodescontadosnovalordanota,deacordocom
critriosdefinidospeloprofessor.
P:Oquefazeremcasodedvidasnoentendimentodotrabalho?
R:Procureoprofessoroquantoantes:pessoalmenteouenviandomensagem
eletrnicacomsubject:"Dvidas:Trabalho1CompiladoresI".Nesseltimocaso,
procurediscorrersucintamenteasuadvida.Almdisso,aproveitebemos
encontrosdecheckpointeoshorriosdeatendimentodadisciplinapararetirarsuas
dvidasejustificarsuasescolhas.Issocontarnasuaparticipaoededicaodo
trabalho.
P:Oqueapresentareinodia12/06?
R:Nodia12/06osgruposapresentaroaoprofessoroquefoiimplementado,oque
nofoiimplementadoefaroumademonstraoprticadaimplementao.O
professorpoderpedirparaogrupoexplicarpartesdocdigofonteeexecutara
implementaoparaumconjuntodeentradasfornecidaporele.
P:Possoimplementarmeuanalisadorlxico/sintticoutilizandoumaferramenta
parageraoautomticodeanalisadoreslxico/sintticoemJavacomoJlexou
JFlex?
R:No.Ogrupofortementemotivadoautilizargeradoresautomticosde
analisadoreslxico/sintticoduranteocursoe/ouodesenvolvimentodotrabalho.
Noentanto,aimplementaodeveserfeitabaseandoseunicamentenosconceitos
vistosemsaladeaulaenosrecursosdalinguagemJava.
P:Seobternotamximaemtodosositensdaavaliaoficareicom11?
R:No.Anotamxima10!Almdisso,essespontosnosocumulativos.Isto,
noserousadosemArq.deComputadoresII.