Baixe o app para aproveitar ainda mais
Prévia do material em texto
Exercícios Compiladores 1) O que significa o termo linguagem de programação de alto nível? Linguagem de alto nível é aquela cuja sintaxe é voltada para o entendimento humano. 2) Quais as características das linguagens de programação de baixo nível? As linguagens de baixo nível tem instruções diretas ao processador, sendo assim mais próximas da linguagem da máquina. 3) Quais as características das linguagens de programação de alto nível? É uma linguagem muito mais intuitivo, amigável e mais fácil de aprender, principalmente para iniciantes na área de programação. 4) O que vem a ser sintaxe? Dê um exemplo. Sintaxe refere-se às regras que regem a composição de textos com significado em uma linguagem formal, tal como uma linguagem de programação, isto é, os textos para os quais faz sentido definir a semântica ou significado, ou fornecer uma interpretação. 5) O que vem a ser semântica? Dê um exemplo. A semântica trata da análise do significado das expressões, das instruções e das unidades de programa. A semântica é importante para que os programadores saibam precisamente o que as instruções de uma linguagem fazem. – Descreve o significado de um programa ao executar suas instruções em uma máquina, real ou simulada. 6) O que são as restrições contextuais? Restrições informam o compilador sobre as funcionalidades que um argumento de tipo deve ter. Sem nenhuma restrição, o argumento de tipo poderia ser qualquer tipo. 7) Dada as expressões a seguir, coloque-as no formato da análise léxica, com identificadores e tokens: a) soma = a + b; ‘soma’, ‘a’, ‘b’, ‘;’ b) pot = a * a; ‘pot’, ‘a’, ‘;’ c) x = a + b * c / (2³) ‘a’, ‘b’, ‘c’, ‘2’, ‘³’ 8) O que são símbolos terminais e não terminais? Dê exemplos. São os elementos léxicos usados na especificação das regras de produção que constituem uma gramática formal. Os terminais e não terminais de uma gramática particular são dois conjuntos disjuntos. 9) Quais são os Elementos das gramáticas livres de contexto? As gramáticas livres de contexto são usadas para definir linguagens de programação bem como os seus compiladores. Os elementos básicos que formam as regras da gramática são os símbolos terminais, formados por elementos de um alfabeto Σ, e os símbolos não-terminais, comumente chamados de variáveis. 10) Qual o objetivo da análise léxica? A análise léxica também conhecida como scanner ou leitura é a primeira fase de um processo de compilação e sua função é fazer a leitura do programa fonte, caractere a caractere, agrupar os caracteres em lexemas e produzir uma sequência de símbolos léxicos conhecidos como tokens. 11) Desenvolva as árvores de derivação das expressões a seguir: a) soma = a + b; b) pot = a * a; c) x = a + b * c / (2³) d) a = b² * c² / d³ 12) O que são: a) Gramaticas Ambíguas Em ciência da computação, uma gramática livre de contexto é dita ser uma gramática ambígua se existe uma cadeia que pode ser gerada pela gramática em mais de um caminho (ou seja, a cadeia admite mais de uma árvore sintática ou, equivalentemente, mais de uma derivação mais à esquerda). b) Precedência (apresente exemplos) A precedência de operadores determina a ordem em que os operadores são processados. Operadores com maior precedência são processados primeiro. O operador de multiplicação (" * ") tem maior precedência que o operador de adição (" + ") e por isso será executado primeiro. 13) O que são GLC? Uma GLC é dita uma gramática ambígua se existe uma palavra que possui duas ou mais árvores de derivação. 14) Quem cria as restrições de uma GLC? Explique. As GLC permitem impor restrições adicionais àquelas que se podem construir em gramáticas regulares, podendo assim caracterizar subconjuntos das linguagens regulares que façam o uso da propriedade determinada pelos aninhamentos sintáticos. Dessa forma, as GLC tornam-se muito úteis para a especificação de linguagens de programação, a maioria das quais exige aninhamentos sintáticos. NOME: Gustavo Rangel Almeida Soares RA: 110478 Exercícios Compiladores
Compartilhar