Académique Documents
Professionnel Documents
Culture Documents
COORDENAODECINCIASDACOMPUTAO
Disciplina:Construode
CompiladoresI
Professor:OdilonNelsonGrisiDantas
Perodo:6
Turma:
Data:
SegundaListadeExerccios
1)DefinaAnalisadorSinttico,relacionandooaosconceitosdegramticaservores.
2)Quevantagensexistememsedefinirasregrassintticasdeumalinguagemdeprogramaoatravs
deumaGramticaLivredeContexto?
3)ExpliqueadiferenaentreAnalisadoresSintticosDescendenteseAscendentes.
4)Disserteem,nomximo,15linhas,sobreosAnalisadoresDescendentes,apresentandosua
classificao,vantagensedesvantagensdecadaum.
5)Quaissoosproblemasquepodemhavernaanlisesintticadescendenterecursivapreditivaou
LL(1)?Quetransformaesnagramticasonecessriasparaevitlos?Exemplifique.
6)Considereasseguintesgramticas:
6.1)
ListaCmd
ListaCmdCmd|Cmd
Cmd
id:=Expr
Expr
Expr+Termo|ExprTermo|Termo
Termo
Termo*Fator|Termo/Fator|Fator
Fator
num_int|id|(Expr)
Prog ListaCmd.
6.2)
ListaCmd
ListaCmdCmd|Cmd
Cmd
CmdDecl|CmdAtrib
Prog ListaCmd.
CmdAtrib
id:=Expr
Tipo
int|real
Expr
Expr+Termo|ExprTermo|Termo
Termo
Termo*Fator|Termo/Fator|Fator
Fator
num_int|num_real|id|(Expr)
CmdDecl Tipoid
6.3)
ListaCmd
ListaCmdCmd|Cmd
Cmd
CmdDecl|CmdAtrib|CmdIO
CmdDecl
Tipoid|constid=Expr
CmdAtrib
id:=Expr
CmdIO
writeExpr|readid
Tipo
int|real
Expr
Expr+Termo|ExprTermo|Termo
Termo
Termo*Fator|Termo/Fator|Fator
Fator
num_int|num_real|id|(Expr)
Prog ListaCmd.
6.4)
ListaCmd
ListaCmdCmd|Cmd
Cmd
CmdDecl|CmdAtrib|CmdIO
CmdDecl
TipoListaId|constid=Expr
ListaId
ListaId,id|id
CmdAtrib
Var:=Expr
CmdIO
writeListaExpr|readListaId
ListaExpr
Expr,Expr|Expr
Tipo
int|real
Expr
Expr+Termo|ExprTermo|Termo
Termo
Termo*Fator|Termo/Fator|Fator
Fator
Primario|Primario|(Expr)
Primario
num_int|num_real|Var
Var
id|id[Expr]
Prog ListaCmd.
6a)ReescrevaasnaformaLL(1)enaformaestendida(EBNF)
6b)ConsiderandoaformaLL(1)decadagramtica,apresenteseusrespectivosconjuntosFIRSTe
FOLLOWesuasTabelasdeAnliseSinttica(TAS)
7)ConsidereaformaLL(1)dagramtica6.1ConstruaaADS(rvoredeDerivaoSinttica)para
asseguintesentradas:
7.1)x:=x+1.
7.2)x:=x+1y:=2*x1.
7.3)delta:=b*b4*a*c.
7.4)a:=(b+5)/10c:=3*a1.
8)Elaboregramticasformaisparaasseguinteslinguagens,informalmentedescritasaseguir:
a)Oarquivodeentrada(programa)compostodelistasseparadasporpontoevrgula.Uma
listaumacoleodeelementosseparadosporvrgulasoselementospodemseridentificadoresou
nmeros(inteirosoureais).Listaspodemserunitriasouvazias.Oprogramaterminaobrigatoriamente
comumpontofinal.
b)Oarquivodeentrada(programa)compostodeumadefiniodeentidade,iniciandopela
palavra"entity"seguidadeumidentificadoreumbloco(abre/fechachaves)oblococompostode
umalistadepropriedades,ondecadapropriedadedefinidapelapalavra"property"seguidadeum
tipo("number","text","boolean"ou"date")edonomedapropriedade(identificador).Devehaverpelo
menosumapropriedadedefinidanaentidade.
9)ApresenteaformaLL(1)eaformaEBNFdasgramticasdaquestoanterior.ParaaformaLL(1),
escrevaseusrespectivosconjuntosFIRSTeFOLLOWesuasTabelasdeAnliseSinttica(TAS).
<EOF>