·
Ciência da Computação ·
Compiladores
Send your question to AI and receive an answer instantly
Recommended for you
6
Análise Léxica e Sintática para uma Linguagem Baseado em C
Compiladores
MACKENZIE
4
Compilador-Portugol-Analise-Lexica-Sintatica
Compiladores
MACKENZIE
1
Algoritmo para Encontrar o Maior de Dois Números Inteiros
Compiladores
MACKENZIE
4
Compilador Portugol Analise Lexica e Sintatica Trabalho Academico
Compiladores
MACKENZIE
2
Orientações Éticas para Desenvolvimento de Trabalhos Práticos em Programação
Compiladores
MACKENZIE
4
Compilador-Analise-Semantica-e-Geracao-de-Codigo-Intermediario
Compiladores
MACKENZIE
4
Análise Léxica e Sintática para uma Linguagem Baseada em C
Compiladores
MACKENZIE
4
Análise Semântica e Geração de Código
Compiladores
MACKENZIE
4
Análise Léxica e Sintática
Compiladores
MACKENZIE
1
Algoritmo para Encontrar o Maior de Dois Numeros Inteiros - Exemplo
Compiladores
MACKENZIE
Preview text
UNIVERSIDADE PRESBITERIANA MACKENZIE Faculdade de Computação e Informática Ciência da Computação PROJETO Rascunho inicial Compiladores 1 A proposta desta atividade é a implementação das etapas frontend do projeto de uma linguagem de programação ou seja as primeiras etapas da construção do compilador de uma linguagem específica Você construirá o frontend de uma linguagem simplificada aqui chamada de AdapC que se trata de uma adaptação simplificada da linguagem C e que será descrita na sequência deste texto A implementação do seu compilador deverá ser feita na linguagem C padrão ANSI descrita no livro C A Lingugem de Programação de autoria de Kernighan e Ritchie 2a edição para a implementação do compilador Seu programa será testado no DevC no ambiente Windows Eventuais problemas de execução do seu programa neste ambiente resultará em descontos na nota atribuída Não é permitido o uso de nenhuma biblioteca externa que não esteja disponível na instalação básica do DEV C O projeto é dividido em 4 Etapas correspondentes a 4 entregas feitas durante o semestre 1 Autômato finito 2 Analisador léxico 3 Analisador sintático 4 Analisador semântico Os detalhes específicos de cada etapa serão publicados no Moodle CRITÉRIO DE AVALIAÇÃO Etapa1 20 da nota do 1º bimestre Etapa2 20 da nota do 1º bimestre Etapa3 20 da nota do 2º bimestre Etapa4 20 da nota do 2º bimestre Cada ETAPA deve ser devidamente documentada e caso necessário exemplificada Documentação interna comentários claros úteis e objetivos incluídos no código fonte do programa Documentação externa caso necessário incluir junto ao projeto um texto complementar detalhando particularidades relativas à implementação feita DATAS IMPORTANTES datas para entrega das etapas Etapa1 10MAR2023 Etapa2 31MAR2023 Etapa3 05MAI2023 Etapa4 26MAI2023 Todas as entregas deverão ser feitas través do Moodle e até as 1800 horas do dia indicado GRUPOS de no máximo 4 alunos Cada entrega deverá ser feita por um único aluno do grupo Todos os artefatos entregues deverão apresentar a identificação completa de todos os integrantes do grupo UNIVERSIDADE PRESBITERIANA MACKENZIE Faculdade de Computação e Informática Ciência da Computação PROJETO Rascunho inicial Compiladores 2 SemiC SemiC descreve um subconjunto básico de uma linguagem estruturada genérica adaptada da linguagem C Por ser um subconjunto básico todo programa SemiC pode ser facilmente compreendido bastando que o aluno tenha conhecimentos básicos de linguagens de programação SemiC trata apenas de valores inteiros e booleanos Os comandos permitidos são aqueles que podem ser usados com os tipos de dados mencionados SemiC é uma linguagem case sensitive Exemplo de código correto void umProc int a1 int a a 1 if a 1 a 12 semic correto int a b c bool d e f comentario a 2 b 10 c 11 a b c d true e false f true print b outro comentario if d a 20 b 10 c c a b proc umProc 10 do if b 10 b 2 a a 1 else a a 1 while a 1 UNIVERSIDADE PRESBITERIANA MACKENZIE Faculdade de Computação e Informática Ciência da Computação PROJETO Rascunho inicial Compiladores 3 Um programa em SemiC deverá estar codificado em um único arquivo fonte sem fazer referências a detalhes externos a ele ESPECIFICAÇÃO LÉXICA Comentários Aparecem delimitados por e Tudo que segue os símbolos é ignorado pelo SemiC até que se encontre comentário Identificadores variáveis Podem ser criados somente com letras de a até z maiúsculas ou minúsculas e devem obrigatoriamente começar com o caractere underline Value companyNumber 12Val inválido Val12 inválido Ex inválido companyname inválido companyname inválido OBS Todos os identificadores devem ser declarados antes de serem utilizados Tipos de dados Numerais Inteiros tipo int Booleano false true tipo bool Operadores Delimitadores Palavras Reservadas semic if else void true false int bool while print do proc UNIVERSIDADE PRESBITERIANA MACKENZIE Faculdade de Computação e Informática Ciência da Computação PROJETO Rascunho inicial Compiladores 4 SINTAXE Os símbolos terminais correspondentes aos tokens estão destacados em amarelo 1 programa declarações de funções semic identificador bloco 2 bloco parte declarações de variáveis comando composto Declarações 3 parte declarações de variáveis declaração de variáveis declaração de variáveis 4 declaração de variáveis int bool lista de identificadores 5 lista de identificadores identificador identificador 6 declarações de funções declara função 7 declara função void identificador parâmetro formal bloco 8 parâmetro formal int bool identificador Comandos 9 comando composto comando comando 10 comando atribuição chamada de procedimento comando condicional comando repetitivo print identificador 11 atribuição variável expressão 12 chamada de procedimento proc identificador parâmetro 13 parâmetro identificador número bool 14 comando condicional if expressão comando composto else comando composto 15 comando repetitivo do comando composto while expressão UNIVERSIDADE PRESBITERIANA MACKENZIE Faculdade de Computação e Informática Ciência da Computação PROJETO Rascunho inicial Compiladores 5 Expressões 16 expressão expressão simples relação expressão simples 17 relação 18 expressão simples termo termo 19 termo fator fator 20 fator variavel número bool expressão simples 21 variável identificador Números e Identificadores 22 bool true false 23 número num token obtido pelo analisador léxico 24 identificador id token obtido pelo analisador léxico EBNF α repetição da cadeia a zero ou mais vezes α cadeia α é opcional α β α ou β deve ser escolhido Não terminais aparecem entre e
Send your question to AI and receive an answer instantly
Recommended for you
6
Análise Léxica e Sintática para uma Linguagem Baseado em C
Compiladores
MACKENZIE
4
Compilador-Portugol-Analise-Lexica-Sintatica
Compiladores
MACKENZIE
1
Algoritmo para Encontrar o Maior de Dois Números Inteiros
Compiladores
MACKENZIE
4
Compilador Portugol Analise Lexica e Sintatica Trabalho Academico
Compiladores
MACKENZIE
2
Orientações Éticas para Desenvolvimento de Trabalhos Práticos em Programação
Compiladores
MACKENZIE
4
Compilador-Analise-Semantica-e-Geracao-de-Codigo-Intermediario
Compiladores
MACKENZIE
4
Análise Léxica e Sintática para uma Linguagem Baseada em C
Compiladores
MACKENZIE
4
Análise Semântica e Geração de Código
Compiladores
MACKENZIE
4
Análise Léxica e Sintática
Compiladores
MACKENZIE
1
Algoritmo para Encontrar o Maior de Dois Numeros Inteiros - Exemplo
Compiladores
MACKENZIE
Preview text
UNIVERSIDADE PRESBITERIANA MACKENZIE Faculdade de Computação e Informática Ciência da Computação PROJETO Rascunho inicial Compiladores 1 A proposta desta atividade é a implementação das etapas frontend do projeto de uma linguagem de programação ou seja as primeiras etapas da construção do compilador de uma linguagem específica Você construirá o frontend de uma linguagem simplificada aqui chamada de AdapC que se trata de uma adaptação simplificada da linguagem C e que será descrita na sequência deste texto A implementação do seu compilador deverá ser feita na linguagem C padrão ANSI descrita no livro C A Lingugem de Programação de autoria de Kernighan e Ritchie 2a edição para a implementação do compilador Seu programa será testado no DevC no ambiente Windows Eventuais problemas de execução do seu programa neste ambiente resultará em descontos na nota atribuída Não é permitido o uso de nenhuma biblioteca externa que não esteja disponível na instalação básica do DEV C O projeto é dividido em 4 Etapas correspondentes a 4 entregas feitas durante o semestre 1 Autômato finito 2 Analisador léxico 3 Analisador sintático 4 Analisador semântico Os detalhes específicos de cada etapa serão publicados no Moodle CRITÉRIO DE AVALIAÇÃO Etapa1 20 da nota do 1º bimestre Etapa2 20 da nota do 1º bimestre Etapa3 20 da nota do 2º bimestre Etapa4 20 da nota do 2º bimestre Cada ETAPA deve ser devidamente documentada e caso necessário exemplificada Documentação interna comentários claros úteis e objetivos incluídos no código fonte do programa Documentação externa caso necessário incluir junto ao projeto um texto complementar detalhando particularidades relativas à implementação feita DATAS IMPORTANTES datas para entrega das etapas Etapa1 10MAR2023 Etapa2 31MAR2023 Etapa3 05MAI2023 Etapa4 26MAI2023 Todas as entregas deverão ser feitas través do Moodle e até as 1800 horas do dia indicado GRUPOS de no máximo 4 alunos Cada entrega deverá ser feita por um único aluno do grupo Todos os artefatos entregues deverão apresentar a identificação completa de todos os integrantes do grupo UNIVERSIDADE PRESBITERIANA MACKENZIE Faculdade de Computação e Informática Ciência da Computação PROJETO Rascunho inicial Compiladores 2 SemiC SemiC descreve um subconjunto básico de uma linguagem estruturada genérica adaptada da linguagem C Por ser um subconjunto básico todo programa SemiC pode ser facilmente compreendido bastando que o aluno tenha conhecimentos básicos de linguagens de programação SemiC trata apenas de valores inteiros e booleanos Os comandos permitidos são aqueles que podem ser usados com os tipos de dados mencionados SemiC é uma linguagem case sensitive Exemplo de código correto void umProc int a1 int a a 1 if a 1 a 12 semic correto int a b c bool d e f comentario a 2 b 10 c 11 a b c d true e false f true print b outro comentario if d a 20 b 10 c c a b proc umProc 10 do if b 10 b 2 a a 1 else a a 1 while a 1 UNIVERSIDADE PRESBITERIANA MACKENZIE Faculdade de Computação e Informática Ciência da Computação PROJETO Rascunho inicial Compiladores 3 Um programa em SemiC deverá estar codificado em um único arquivo fonte sem fazer referências a detalhes externos a ele ESPECIFICAÇÃO LÉXICA Comentários Aparecem delimitados por e Tudo que segue os símbolos é ignorado pelo SemiC até que se encontre comentário Identificadores variáveis Podem ser criados somente com letras de a até z maiúsculas ou minúsculas e devem obrigatoriamente começar com o caractere underline Value companyNumber 12Val inválido Val12 inválido Ex inválido companyname inválido companyname inválido OBS Todos os identificadores devem ser declarados antes de serem utilizados Tipos de dados Numerais Inteiros tipo int Booleano false true tipo bool Operadores Delimitadores Palavras Reservadas semic if else void true false int bool while print do proc UNIVERSIDADE PRESBITERIANA MACKENZIE Faculdade de Computação e Informática Ciência da Computação PROJETO Rascunho inicial Compiladores 4 SINTAXE Os símbolos terminais correspondentes aos tokens estão destacados em amarelo 1 programa declarações de funções semic identificador bloco 2 bloco parte declarações de variáveis comando composto Declarações 3 parte declarações de variáveis declaração de variáveis declaração de variáveis 4 declaração de variáveis int bool lista de identificadores 5 lista de identificadores identificador identificador 6 declarações de funções declara função 7 declara função void identificador parâmetro formal bloco 8 parâmetro formal int bool identificador Comandos 9 comando composto comando comando 10 comando atribuição chamada de procedimento comando condicional comando repetitivo print identificador 11 atribuição variável expressão 12 chamada de procedimento proc identificador parâmetro 13 parâmetro identificador número bool 14 comando condicional if expressão comando composto else comando composto 15 comando repetitivo do comando composto while expressão UNIVERSIDADE PRESBITERIANA MACKENZIE Faculdade de Computação e Informática Ciência da Computação PROJETO Rascunho inicial Compiladores 5 Expressões 16 expressão expressão simples relação expressão simples 17 relação 18 expressão simples termo termo 19 termo fator fator 20 fator variavel número bool expressão simples 21 variável identificador Números e Identificadores 22 bool true false 23 número num token obtido pelo analisador léxico 24 identificador id token obtido pelo analisador léxico EBNF α repetição da cadeia a zero ou mais vezes α cadeia α é opcional α β α ou β deve ser escolhido Não terminais aparecem entre e