• Matéria: Informática
  • Autor: w9robotica
  • Perguntado 7 anos atrás

No início da computação era necessário programar utilizando instruções próximas ao hardware, com esse tipo de programação não era necessário utilizar um compilador e o programador tinha mais controles de quais comandos eram enviados para o processador do computador. Todavia, a produtividade era baixa e a complexidade era alta. Com a invenção de linguagens mais próximas de uma lógica mais humana e por consequência os compiladores o processo de programação se tornou mais simples e a capacidade de produção de código se tornou maior. Com uma base de linguagens de programação vindas do código de máquina se iniciou o processo de criar novas linguagens baseadas em outras linguagens. Com isso foram desenvolvidos ferramentas para facilitar a criação das ferramentas para a criação de analisadores sintáticos, semânticos e sintáticos. O flex e JFlex são ferramentas para gerar analisadores léxicos, Yet Another Compiler-Compiler (YACC), Bison e Construction of Useful Parsers (CUP) são utilizados para gerar analisadores sintáticos e semânticos. O CUP é uma ferramenta feita para se utilizada junto com Java e o JFlex para criar gramáticas para linguagens de programação. A Tabela-1 apresenta parte das instruções necessárias para se criar uma gramática utilizando CUP.



Tabela-1: Comandos para o CUP criar uma gramatica de linguagem de programação

1.

2.

3.

4.

5.

terminal type_int, type_real, var, inic, start,end;

non_terminal prog, com, coms;

start with prog;

prog ::= inic start coms end;

coms ::= com coms | com;

Fonte: Andrijauskas, 2018.



Considerando o contexto e a Tabela-1, avalie as seguintes afirmações:



I. A utilização do CUP pode ser feita juntamente com o JFlex, todavia, isso se torna opcional pois a analise léxica não precisa ser feita quando a compilação é guiado por sintaxe.

II. Na Tabela-1, os símbolos definidos como “terminal” são declarações que não serão derivadas para outros elementos.

III. Nos itens da Tabela-1 apresentados como “non_terminal” são declarações que serão poderão ser derivadas, até de forma recursiva.

IV. A aplicação da instrução “start with” define qual é o método do java que será utilizado para iniciar a análise sintática.

V. O CUP deve permite que a linguagem de programação utilize elementos recursivos, isso é exemplificado na produção da linha 5 da Tabela-1.

É correto apenas o que se afirma em:

Escolha uma:
a. II, III e V.
b. I, III e V.
c. I, II, III e IV.
d. I, II e IV.
e. IV e V.

Respostas

respondido por: ewertondaniel8
9

a resposta é II, III e V.

Perguntas similares