2. Linguagem
de
Programação
(LP)
§ Linguagem
criada
para
instruir
um
computador
a
realizar
suas
tarefas;
§ Programa
completo
escrito
em
LP:
código;
§ Codificar
algoritmo:
converter
para
instrução
específica
de
uma
LP;
§ Tipo
mais
primitivo
de
LP:
linguagem
de
máquina;
segunda-feira, 30 de maio de 2011 2
3. Linguagem
de
máquina
§ Para
criar
um
código
é
necessário:
ú Conhecer
todas
as
instruções
(códigos
de
operação
e
formato);
ú Registradores;
ú Endereços
das
células
de
memória
de
instruções
e
de
dados;
segunda-feira, 30 de maio de 2011 3
4. Linguagem
de
Montagem
§ Para
tentar
minimizar
a
dificuldade
de
entendimento
da
Ling.
Máquina;
§ Para
usar
precisa
ter
um
conversor
de
símbolos
alfabéticos
para
código
de
máquina;
§ O
processo
de
conversão
(montagem):
montador
(assembler);
§ Montador
lê
cada
instrução
em
ling.
de
montagem
e
cria
uma
instrução
equivalente
em
ling.
de
máquina.
segunda-feira, 30 de maio de 2011 4
5. Linguagens
de
Alto
Nível
§ Nível
afastado
da
máquina;
§ Não
se
preocupa
com
o
tipo
de
CPU
ou
de
memória;
§ Linguagem
orientada
ao
problema,
permite
que
o
programador
especifique
de
ações
com
menos
instruções.
Exemplos:
FORTRAN; PASCAL;
ALGOL; C;
COBOL; ADA;
LISP; DELPHI
BASIC; JAVA.
segunda-feira, 30 de maio de 2011 5
6. Montagem
§ Tradução
mais
rápida
e
simples
que
existe;
§ Traduz
de
linguagem
de
montagem
para
linguagem
de
binária
(máquina),
executável;
segunda-feira, 30 de maio de 2011 6
7. Funções
de
um
Montador
§ Substituir
códigos
de
operações
por
valores
numéricos;
§ Substituir
nomes
simbólicos
de
endereços
por
valores
numéricos
dos
endereços;
§ Reservar
espaço
de
memória
para
dados
e
instruções;
§ Converter
constantes
em
binário;
§ Examinar
a
correção
de
cada
instrução.
segunda-feira, 30 de maio de 2011 7
8. Exemplo
de
um
programa
em
linguagem
de
montagem
§ NOTA:
;
‚
usado
para
fazer
comentários
em
programas
assembly
§ .MODEL
SMALL
;modelo
de
memória
§ .STACK
;espaço
de
memória
para
instruções
do
programa
na
pilha
§ .CODE
;as
linhas
seguintes
são
instruções
do
programa
mov
ah,
01h
;move
o
valor
01h
para
o
registrador
ah
§ mov
cx,07h
;move
o
valor
07h
para
o
registrador
cx
§ int
10h
;interrupção
10h
§ mov
ah,4ch
;move
o
valor
4ch
para
o
registrador
ah
§ int
21h
;interrupção
21h
§ END
;finaliza
o
código
do
programa
segunda-feira, 30 de maio de 2011 8
9. Compilação
§ Processo
de
análise
de
um
programa
escrito
em
linguagem
de
alto
nível
(código-‐fonte)
e
sua
conversão
em
um
programa
equivalente
em
linguagem
binária
de
máquina
(programa-‐
objeto);
§ Usa-‐se
o
compilador;
§ É
semelhante
ao
de
montagem,
porém
mais
complexo
e
demorado;
segunda-feira, 30 de maio de 2011 9
11. Processo
§ 1º
análise
do
código-‐fonte
(pelo
front-‐end);
ú Análise
Léxica:
ú Análise
Sintática:
ú Análise
Semântica:
§ 2º
Gera-‐se
um
código
intermediário
de
constrói-‐se
vária
tabelas
(ex.
tabela
de
símbolos);
§ 3º
Aloca
memória
para
variáveis,
atribuição
dos
registradores
e
geração
do
código-‐objeto
final.
segunda-feira, 30 de maio de 2011 11
12. Análise
Léxica
§ Decompõe
o
programa-‐fonte
em:
comandos,
operadores,
variáveis
etc.
§ Verifica
de
acordo
com
as
regras
da
linguagem;
§ Gera
mensagem
de
erro
se
encontrar
erro;
§ Ex.:
Sinal
de
atribuição
em
pascal
“:=”
e
não
só
“=”.
segunda-feira, 30 de maio de 2011 12
13. Análise
Sintática
§ Criação
da
estrutura
de
cada
comando;
§ A
partir
de
cada
elemento
obtido
da
análise
léxica,
monta
uma
estrutura
apropriada
de
acordo
com
as
regras
gramaticais
da
linguagem;
segunda-feira, 30 de maio de 2011 13
14. Análise
Semântica
§ Verifica
as
regras
semânticas
estáticas
da
linguagem;
§ São
a
necessidade
de
integridade
de
um
tipo
de
dado
em
uma
expressão
;
segunda-feira, 30 de maio de 2011 14
16. Interpretação
§ Realiza
a
compilação,
ligação
e
execução
comando
a
comando,
do
programa-‐fonte;
§ O
programa-‐fonte
é
diretamente
executado
(interpretado)
por
um
outro
programa
(o
interpretador)
e
produz
o
resultado;
§ Cada
comando
é
lido
pelo
interpretador,
convertido
em
código
executável
e
imediatamente
executado,
antes
que
o
próximo
comando
seja
lido.
segunda-feira, 30 de maio de 2011 16