Baixe o app para aproveitar ainda mais
Prévia do material em texto
06/05/2020 Estácio: Alunos simulado.estacio.br/alunos/?user_cod=1677831&matr_integracao=201703207301 1/5 Disc.: COMPILADORES Aluno(a): VITOR HUGO BORHER Matríc.: 201703207301 Acertos: 0,1 de 0,5 04/05/2020 (Finaliz.) Acerto: 0,1 / 0,1 Construa um programa em Lex que permita contar todas as ocorrências das palavras aluno e aluna,todas as ocorrncias de aluno e todas as ocorrências de aluna (aplicação do reject). %% alun(a|o) {total++; REJECT;} aluna feminino++; aluno masculino++; %% main() {yylex(); printf(total,feminino,masculino);} yywrap() {return(0);} %{ int total,feminino,masculino; %} %% alun(a|o) {total++; REJECT;} aluna feminino++; aluno masculino++; . ; %% main() {yylex(); printf("Total:%d, Fem=%d, Mas=%d\n",total,feminino,masculino);} yywrap() {return(1);} %% alun(a|o) total++; aluna feminino++; aluno masculino++; . ; %% Questão1 http://simulado.estacio.br/alunos/inicio.asp javascript:voltar(); 06/05/2020 Estácio: Alunos simulado.estacio.br/alunos/?user_cod=1677831&matr_integracao=201703207301 2/5 int total,feminino,masculino; main() {yylex();} printf("Total:%d, Fem=%d, Mas=%d\n",total,feminino,masculino); yywrap() {return(1);} %% int total,feminino,masculino; alun(a|o) {total++; REJECT;} aluna feminino++; aluno masculino++; %% main() {yylex(); printf("Total:%d, Fem=%d, Mas=%d\n",total,feminino,masculino);} yywrap() {return(0);} %{ int total,feminino,masculino; %} %% aluna|aluno {total++; feminino++|masculino++; REJECT;} %% main() {yylex(); printf("Total:%d, Fem=%d, Mas=%d\n",total,feminino,masculino);} yywrap() {return(1);} Respondido em 04/05/2020 18:40:26 Compare com a sua resposta: Acerto: 0,0 / 0,1 Uma das formas de se construir um analisador Léxico é utilizar autômatos finitos. Qual deveria ser a forma correta ? Criar uma transição vazia para cada estádo de um Autômato Finito Determinístico e associar cada estado a um Lexema diferente Combinar Autômatos Finitos Não Determinísticos ligados a um Autômato Determinístico que resolve os conflitos de prefixo Combinar Automatos Finitos Determinísticos para cada prefixo conflitante dos Lexemas Combinar Autômatos Finitos Não Determinísticos através de um estado inicial de transição vazia. Utilizar Autômatos Finitos Determinísticos onde cada estado irá identificar um lexema Respondido em 04/05/2020 18:45:47 Compare com a sua resposta: Acerto: 0,0 / 0,1 Qual das atividades abaixo fazem parte da construção de um gerador de analisador léxico ? Obter uma tabela de transição para os Autômatos Finitos que exclua todos os lexemas com prefixos iguais Indicar uma ação a ser executada para cada conjunto de prefixos iguais Funções que são passadas pelo LEX para a entrada Definir as ações do programa de linguagem intermediária Questão2 Questão3 06/05/2020 Estácio: Alunos simulado.estacio.br/alunos/?user_cod=1677831&matr_integracao=201703207301 3/5 Construir uma combinação de NFAs para cada lexema através de transições vazias. Respondido em 04/05/2020 18:59:40 Compare com a sua resposta: Acerto: 0,0 / 0,1 Para o AFN abaixo faça o mapeamento de forma tabular Qual das opções representa forma tabular do autômanto | 0 | 1 | ------------------------ --> q0 | q1 | q2 | q1 | {qf} | --- | q2 | --- |{q2,qf}| *qf |{q1,qf}| qf | | 0 | 1 | ------------------------ --> q0 | q1 | q1 | q1 | {q2} | qf | q2 | --- | {q1} | *qf | qf | qf | | 1 | 0 | ------------------------ --> q0 | q1 | q2 | q1 | {qf} | --- | Questão4 06/05/2020 Estácio: Alunos simulado.estacio.br/alunos/?user_cod=1677831&matr_integracao=201703207301 4/5 q2 | --- | {qf} | *qf | qf | q1 | | 0 | 1 | ------------------------ --> q0 | q1 | q2 | q1 |{q2,qf}| --- | q2 | --- |{q1,qf}| *qf | qf | qf | ------------------------------------------ vv | 0 | 1 | ------------------------ --> q0 | q1 | q2 | q1 |{q2,qf}| --- | q2 | --- |{q1,qf}| *qf | qf | qf | Respondido em 05/05/2020 16:11:29 Compare com a sua resposta: Acerto: 0,0 / 0,1 Na criação de um analisador léxico utilizamos combinações de NFA para cada lexema a ser identificado e o analizador precisa começar no "LexemeBegin" mas como ele encerra ? Uma variável, em geral chamada de ponteiro "Forward" vai indicando quantos estados ele já passou. Dessa forma ele sabe que achou o prefixo mais longo. A chamada da função que avança os estados retorna o prefixo com o maior tamanho. O Autômato sempre encerra quando encontra o lexema de menor tamanho. O contador de lexemas indica todos os caractéres já foram comparados O ponteiro "Forward" vai indicando quantos lexemas ele já passou. Dessa forma ele sabe que achou o lexema com tamanho mais longo. Respondido em 05/05/2020 16:16:53 Compare com a sua resposta: Questão5 javascript:abre_colabore('34850','190312036','3796409145'); 06/05/2020 Estácio: Alunos simulado.estacio.br/alunos/?user_cod=1677831&matr_integracao=201703207301 5/5
Compartilhar