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:
9
a resposta é II, III e V.
Perguntas similares
6 anos atrás
8 anos atrás
8 anos atrás
8 anos atrás
9 anos atrás
9 anos atrás