·
Ciência da Computação ·
Compiladores
Send your question to AI and receive an answer instantly
Recommended for you
Preview text
Autarquia Educacional do Vale do São Francisco AEVSF Faculdade de Petrolina FACAPE Ciência da Computação Compiladores Prof Sérgio F Ribeiro PROJETO 04 Especificação Léxica de um Subconjunto da Linguagem Pascal Especificação dos Tokens da Linguagem Pascal Palavraschave ARRAY array BEGIN begin BOOLEAN boolean DO do ELSE else END end FUNCTION function IF if INTEGER integer OF of PROCEDURE procedure PROGRAM program REAL real STRING string THEN then VAR var WHILE while Demais Tokens identificador AZaz AZaz 09 pontoevirgula pontoponto ponto abreparenteses fechaparenteses virgula atribuicao doispontos abrecolchete fechacolchete Digitalizado com CamScanner num 09 09 0909 ε conststring newline constbooleana true false operadorrelacional adicao subtracao not not or or operadormultiplicativo and mod Observações Esta linguagem não é casesensitive Isto quer dizer que não há diferenças entre letras maiúsculas e letras minúsculas Por exemplo if e IF representam a mesma palavrachave Os identificadores soma e Soma representam o mesmo identificador é um conjunto que representa todos os possíveis caracteres ASCII A palavra newline representa uma quebra de linha enter no programafonte Digitalizado com CamScanner num 09 09 0909 ε conststring newline constbooleana true false operadorrelacional adicao subtracao not not or or operadormultiplicativo and mod Observações Esta linguagem não é casesensitive Isto quer dizer que não há diferenças entre letras maiúsculas e letras minúsculas Por exemplo if e IF representam a mesma palavrachave Os identificadores soma e Soma representam o mesmo identificador é um conjunto que representa todos os possíveis caracteres ASCII A palavra newline representa uma quebra de linha enter no programafonte Digitalizado com CamScanner Autarquia Educacional do Vale do São Francisco AEVSF Faculdade de Petrolina FACAPE Ciência da Computação Compiladores Prof Sérgio F Ribeiro PROJETO 04 Especificação Sintática de um Subconjunto da Linguagem Pascal Gramática programapascal program identificador cabeçalhoprograma pontoevirgula bloco ponto cabeçalhoprograma abreparenteses listaidentificadores fechaparenteses listaidentificadores listaidentificadores virgula identificador identificador bloco blocodeclaracaoprocfunc declaracaovariavel blocodeclaracaoprocfunc blocodeclaracaoprocfunc blocodeclaracaoprocfunc pontoevirgula blococomandos blococomandos begin listacomandos end procandfuncdeclaration declaracaovariavel declaracaovariavel listaidentificadores doispontos tipo pontoevirgula var listaidentificadores doispontos tipo pontoevirgula tipo tiposimples tipoestruturado tiposimples integer real string boolean tipoestruturado array abrecolchete listaindices fechacolchete of tipo listaindices listaindices virgula num pontoponto num num pontoponto num constante num conststring constbooleana procandfuncdeclaration procandfuncdeclaration pontoevirgula procorfunc procorfunc procorfunc procedure identificador parâmetros pontoevirgula bloco function identificador parâmetros doispontos tiposimples pontoevirgula bloco parâmetros abreparenteses listaparametrosformais fechaparenteses listaparametrosformais listaparametrosformais pontoevirgula parametroformal parametroformal parametroformal listaidentificadores doispontos tiposimples var listaidentificadores doispontos tipo listacomandos listacomandos pontoevirgula comando comando comando variavel atribuicao expressao begin listacomandos end if expressao then comando if expressao then comando else comando while expressao do comando identificador identificador abreparenteses listaexpressoes fechaparenteses variavel variavel abrecolchete listaexpressoes fechacolchete variavel ponto identificador identificador listaexpressoes listaexpressoes virgula expressao expressao expressao expressao operadorrelacional expressaoaditiva expressaoaditiva expressaoaditiva operadoraditivo expressaomultiplicativa expressaomultiplicativa operadoraditivo adicao subtracao or expressaomultiplicativa expressaomultiplicativa operadormultiplicativo expressaounaria expressaounaria operadorunario expressaounaria expressaoprimaria operadorunario adicao subtracao not expressaoprimaria variavel constante identificador abreparenteses listaexpressoes fechaparenteses abrecolchete listaexpressoes fechacolchete abreparenteses expressao fechaparenteses ProgramaExemplo Teste a funcionalidade do analisador sintático para o programaexemplo abaixo Nenhum erro deverá ser relatado pelo analisador Uma vez funcionando corretamente retire um e outro elemento do programaexemplo e verifique que tipo de erro o analisador relata program prmax var x y z integer function maxi integer j integer integer begin if i j then max i else max j end begin x 1 y 2 z maxx y end
Send your question to AI and receive an answer instantly
Recommended for you
Preview text
Autarquia Educacional do Vale do São Francisco AEVSF Faculdade de Petrolina FACAPE Ciência da Computação Compiladores Prof Sérgio F Ribeiro PROJETO 04 Especificação Léxica de um Subconjunto da Linguagem Pascal Especificação dos Tokens da Linguagem Pascal Palavraschave ARRAY array BEGIN begin BOOLEAN boolean DO do ELSE else END end FUNCTION function IF if INTEGER integer OF of PROCEDURE procedure PROGRAM program REAL real STRING string THEN then VAR var WHILE while Demais Tokens identificador AZaz AZaz 09 pontoevirgula pontoponto ponto abreparenteses fechaparenteses virgula atribuicao doispontos abrecolchete fechacolchete Digitalizado com CamScanner num 09 09 0909 ε conststring newline constbooleana true false operadorrelacional adicao subtracao not not or or operadormultiplicativo and mod Observações Esta linguagem não é casesensitive Isto quer dizer que não há diferenças entre letras maiúsculas e letras minúsculas Por exemplo if e IF representam a mesma palavrachave Os identificadores soma e Soma representam o mesmo identificador é um conjunto que representa todos os possíveis caracteres ASCII A palavra newline representa uma quebra de linha enter no programafonte Digitalizado com CamScanner num 09 09 0909 ε conststring newline constbooleana true false operadorrelacional adicao subtracao not not or or operadormultiplicativo and mod Observações Esta linguagem não é casesensitive Isto quer dizer que não há diferenças entre letras maiúsculas e letras minúsculas Por exemplo if e IF representam a mesma palavrachave Os identificadores soma e Soma representam o mesmo identificador é um conjunto que representa todos os possíveis caracteres ASCII A palavra newline representa uma quebra de linha enter no programafonte Digitalizado com CamScanner Autarquia Educacional do Vale do São Francisco AEVSF Faculdade de Petrolina FACAPE Ciência da Computação Compiladores Prof Sérgio F Ribeiro PROJETO 04 Especificação Sintática de um Subconjunto da Linguagem Pascal Gramática programapascal program identificador cabeçalhoprograma pontoevirgula bloco ponto cabeçalhoprograma abreparenteses listaidentificadores fechaparenteses listaidentificadores listaidentificadores virgula identificador identificador bloco blocodeclaracaoprocfunc declaracaovariavel blocodeclaracaoprocfunc blocodeclaracaoprocfunc blocodeclaracaoprocfunc pontoevirgula blococomandos blococomandos begin listacomandos end procandfuncdeclaration declaracaovariavel declaracaovariavel listaidentificadores doispontos tipo pontoevirgula var listaidentificadores doispontos tipo pontoevirgula tipo tiposimples tipoestruturado tiposimples integer real string boolean tipoestruturado array abrecolchete listaindices fechacolchete of tipo listaindices listaindices virgula num pontoponto num num pontoponto num constante num conststring constbooleana procandfuncdeclaration procandfuncdeclaration pontoevirgula procorfunc procorfunc procorfunc procedure identificador parâmetros pontoevirgula bloco function identificador parâmetros doispontos tiposimples pontoevirgula bloco parâmetros abreparenteses listaparametrosformais fechaparenteses listaparametrosformais listaparametrosformais pontoevirgula parametroformal parametroformal parametroformal listaidentificadores doispontos tiposimples var listaidentificadores doispontos tipo listacomandos listacomandos pontoevirgula comando comando comando variavel atribuicao expressao begin listacomandos end if expressao then comando if expressao then comando else comando while expressao do comando identificador identificador abreparenteses listaexpressoes fechaparenteses variavel variavel abrecolchete listaexpressoes fechacolchete variavel ponto identificador identificador listaexpressoes listaexpressoes virgula expressao expressao expressao expressao operadorrelacional expressaoaditiva expressaoaditiva expressaoaditiva operadoraditivo expressaomultiplicativa expressaomultiplicativa operadoraditivo adicao subtracao or expressaomultiplicativa expressaomultiplicativa operadormultiplicativo expressaounaria expressaounaria operadorunario expressaounaria expressaoprimaria operadorunario adicao subtracao not expressaoprimaria variavel constante identificador abreparenteses listaexpressoes fechaparenteses abrecolchete listaexpressoes fechacolchete abreparenteses expressao fechaparenteses ProgramaExemplo Teste a funcionalidade do analisador sintático para o programaexemplo abaixo Nenhum erro deverá ser relatado pelo analisador Uma vez funcionando corretamente retire um e outro elemento do programaexemplo e verifique que tipo de erro o analisador relata program prmax var x y z integer function maxi integer j integer integer begin if i j then max i else max j end begin x 1 y 2 z maxx y end