TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Compiladores Questões Avaliação

Por:   •  6/1/2021  •  Exam  •  881 Palavras (4 Páginas)  •  127 Visualizações

Página 1 de 4

1) De acordo com às variações de especificação semântica das linguagens de programação, jugue os itens abaixo em V ou F sobre a análise semântica:

  1. (V) Não é tão bem formalizada.
  2. (V) Não existe um método ou modelo padrão de representação do conhecimento.
  3. (V) Não existe um mapeamento claro da representação para o algoritmo correspondente.
  4. (F) A análise é artesanal não dependente da linguagem de programação.
  5. (V)Muitas vezes, a semântica de uma linguagem de programação não é claramente especificada o projetista do compilador tem que analisar e extrair a semântica.

2) A tabela de símbolos estrutura essencial para a análise semântica. Permite saber durante a compilação de um programa o tipo e endereço de seus elementos, escopo destes, número e tipo dos parâmetros de um procedimento, etc. Jugue os itens abaixo:

I. (V) Exemplo de atributos para ser usado como identificador de variável. E o nome da variável, tipo (inteira, real, etc.), escopo (global, local, etc.), endereço na memória, etc. Para vetores, ainda seriam necessários atributos como o tamanho do vetor, valor e tipo de seus limites, etc.

II. (V) Um atributo para identificador de procedimento nome do procedimento, lista de argumentos (número, ordem e tipo), escopo, etc.

III. (V) Principais operações na tabela de símbolos são Inserir: armazena na TS informações fornecidas pelas declarações no programa; Busca: recupera da tabela informações de um elemento declarado no programa quando esse elemento é utilizado; & Remover: remove (ou torna inacessível) da tabela informações sobre um elemento declarado que não se mostra mais necessário no programa (p.e., fora de escopo).

IV. (V) A tabela é acessada pelo compilador sempre que um elemento é mencionado no programa é: Verificar ou incluir sua declaração; Verificar seu tipo, seu escopo ou alguma outra informação; Remover um elemento quando este não se faz mais necessário ao programa.

V. (V) Tamanho da tabela: tipicamente, de algumas centenas de mil campos. Dependente da forma de implementação. Na implementação dinâmica, não é necessário se preocupar com isso.

3) A Geração de código recebe uma representação intermediária e produz como saída um programa alvo equivalente. Jugue os itens abaixo:

I. (V) Tarefas a serem executadas são: Gerenciamento de Memória, Seleção de Instruções, Alocação de Registradores, Ordem de Avaliação dos resultados, Gerenciamento de Memória, Seleção de Instruções, Alocação de Registradores e Ordem de Avaliação dos resultados.

II. (V) Assembly ou linguagem de montagem é uma notação legível por humanos para o código de máquina que uma arquitetura de computador específica usa.

III. (V) A linguagem de máquina, que é um mero padrão de bits, torna-se legível pela substituição dos valores em bruto por símbolos chamados mnemônicos.

IV. (F) Cada arquitetura de computador não tem a sua própria linguagem de máquina e, portanto, gera a sua própria linguagem de montagem. Essas linguagens de montagem não diferem no número e tipo de operações que suportam.

V. (V) A fase de geração de código é, ao contrário, dependente principalmente da máquina alvo, a máquina na qual o código gerado deverá ser executado eventualmente.

4) Quais as vantagens da geração de um código intermediário?

R: Otimizar códigos traz diversas vantagens, dentre elas as de economia no tempo de execução dos mesmos e o espaço ocupado pelos próprios códigos.

...

Baixar como (para membros premium)  txt (5.9 Kb)   pdf (84 Kb)   docx (9.8 Kb)  
Continuar por mais 3 páginas »
Disponível apenas no TrabalhosGratuitos.com