• Nenhum resultado encontrado

Conceitos Básicos de Compiladores. Prof. Marcus Ramos Revisado em 20/07/2021

N/A
N/A
Protected

Academic year: 2022

Share "Conceitos Básicos de Compiladores. Prof. Marcus Ramos Revisado em 20/07/2021"

Copied!
20
0
0

Texto

(1)

Conceitos Básicos de

Compiladores

Prof. Marcus Ramos

Revisado em 20/07/2021

(2)

Linguagem de alto-nível

Similaridade com a linguagem natural;

Noções da matemática;

Uso de abstrações;

Legibilidade;

Produtividade;

Portabilidade;

Segurança.

Java C C++

Fortran

Algol

Pascal

etc

(3)

Legibilidade

• Grau de facilidade para ler, entender e modificar um programa;

• Alta nas linguagens de alto-nível e baixa nas linguagens de baixo- nível.

• Garantido pela similaridade com a linguagem natural, proximidade com a matemática e também pelo uso de abstrações.

(4)

Produtividade

• O programador produz a mesma quantidade de linhas por unidade de tempo;

• Quanto mais expressiva a linguagem, maior a produtividade;

• Linguagens de alt~-nível são mais expressivas, linguagens de baixo- nível são menos expressivas

• Exemplo:

a = b * c + d (uma linha)

LOAD b LOAD c MULT

LOAD d ADD

STORE a (seis linhas)

(5)

Portabilidade

• Possibilidade de usar o mesmo programa sem modificações em diversas máquinas e/ou arquiteturas;

• Maior em linguagens de alto-nível e menor em linguagens de baixo-nível;

• Garantida pelo uso de compladores e interpretadores.

(6)

Segurança

• Grau de confiança que o programador tem de que o seu programa não contém erros;

• Compilação sem erros e execução em erros;

• Maior em linguagens de alto-nível, menor em linguagens de baixo- nível;

• Garantida pela quantidade de regras que a linguagem tem;

• Muitas nas de alto-nível;

• Poucas nas de baixo-nível.

(7)

Linguagem de baixo-nível

• Dependência da máquina ou arquitetura;

• Pode ser classificada em:

• Linguagem de montagem (assembly code), que usa mnemônicos; em inglês, assembly code;

• Linguagem de máquina (binário ou hexadecimal); em inglês, machine code;

• Assembler é o montador, que traduz de assembly code para machine code.

(8)

Linguagem fonte

• Linguagem usada para escrever os programas-fonte;

• Entrada do compilador;

• Pode ser alto ou baixo-nível.

(9)

Linguagem objeto

• Linguagem usada para escrever os programas-objeto;

• Saída do compilador;

• Pode ser alto ou baixo-nível.

(10)

Tipos de processadores

• Linguagem-fonte pode ser alto ou baixo-nível;

• Linguagem-objeto pode ser alto ou baixo-nível;

• Quatro tipos de processadores:

Alto-nível Baixo-nível Alto-nível Tradutor ou filtro Compilador Baixo-nível “Descompilador” Montador Fonte

Objeto

(11)

Especificação de linguagens

• Linguagens são onipresentes na computação;

• Seu uso é viabilizado por meio dos processadores;

• É importante especificar as linguagens corretamente.

• Método formal ou informal.

(12)

Especificação de linguagens

• Método formal (desejável)

• Uso da matemática;

• Mais rigor e precisão;

• Menos ambugüidade;

• Possibilidade de automação;

• Método informal (não desejável)

• Uso da linguagem natural;

• Menos rigor e precisão

• Mais ambigüidade

• Impede automação

(13)

Especificação de linguagens

• Sintaxe

• Livre de contexto;

(balancemanento de termos)

• Dependente de contexto;

(declaração e uso de variáveis, funções etc )

• Semântica

(14)

Especificação de linguagens

• Uso do método formal na prática:

• Sintaxe livre de contexto – possível por meio de gramáticas livres de contexto e/ou

autômatos de pilha;

• Sintaxe dependente de contexto – difícil e/ou trabalhoso

• Semântica - difícil e/ou trabalhoso.

(15)

Especificação de linguagens

• Solução:

• Sintaxe livre de contexto – método formal (envolve aproximações e outras soluções);

• Sintaxe dependente de contexto – método informal

• Semântica – método informal.

• Conseqüências práticas.

(16)

Compilador

Programa que efetua uma

transformação sintática preservando o conteúdo semântico.

Compilador

Programa-fonte Programa-objeto

(17)

Compilação

• Envolve a criação de um programa-objeto a partir do programa-fonte;

• Usada quando se deseja mais eficiência na implementação;

• Preserva o código-fonte.

(18)

Interpretação

• Envolve quando se deseja mais interatividade;

• Possui uma eficiência menor na implementação;

• Mais tempo e mais memória;

• Não preserva o código-fonte.

(19)

Tempos de execução

• Programa totalmente compilado: 1

• Programa totalmente interpretado: 100

• Programa inicialmente compilado e depois interpretado (como Java): 10

• Java:

• Protege o código-fonte;

• Garante portabilidade;

• Não prejudica tanto a eficiência da

execução.

(20)

Tempo para construir um compilador

• Extremo inferior:

• Mini-Basic: 6 homens-mês;

• Extremo superior:

• Algol 68: 30 anos-ano;

• Típico:

• Pascal: 2 homens-ano.

Referências

Documentos relacionados

A listagem completa, com todos os equipamentos monitorados nesta análise (Normais, Alarmados e Não Coletados), está exibida no final deste relatório.. Resumo

O desenvolvimento do sistema unificado de inscrição e administração da concessão de bolsas de auxílio estudantil essenciais foi crucial para atender de forma correta e

(2008) encontraram interferência nos ganhos de força e potência muscular em homens que realizaram um treinamento concorrente de 2 x semana, em que o exercício

A partir da implementação do Programa de Apoio a Planos de Reestruturação e Expansão das Universidades Federais, a universidade brasileira abre-se para o acesso de novos e

Você viu que, quando a condição não é satisfeita, a estrutura pode encerrar (estrutura de decisão simples) ou seguir outro caminho (estrutura composta).. Existem

Uma discussão sobre a suposta doutrinação esquerdista que acontece nas escolas públicas incentivou a professora e recém-eleita deputada estadual Ana Caroline

Para avaliar a imagem corporativa de Conselho Profissional, foi utilizado, no presente estudo, o modelo desenvolvido por Cidade (2010) para mensurar a imagem corporativa

retomando o objetivo da tarefa e reforçando o roteiro das informações a serem inseridas nas histórias. Cada cena corresponderia a uma foto ou imagem, acompanhadas por suas