Buscar

Sistemas de Programação Aula 04 Programação em linguagem simbólica 1

Prévia do material em texto

PCS 3216 
Sistemas de Programação 
João José Neto 
 
Aula 4 – Programação em linguagem simbólica 
Código binário 
Codificação simbólica 
Códigos não binários melhoram a legibilidade e 
a documentação 
• Notação numérica, não binária 
• Uso de notação não numérica 
• Utilização de notação simbólica mnemônica 
• Tendem a facilitar a codificação 
• Melhora a legibilidade dos programas 
 
Código hexadecimal 
Mnemônicos 
• Dispensam o programador de conhecer a 
codificação numérica dos programas 
• Até um certo ponto, pode-se dizer que a 
notação fica rudimentarmente auto-
documentada 
Linguagens simbólica e numérica 
Legibilidade 
• Facilita a leitura do programa 
• Simplifica o desenvolvimento do programa 
• Simplifica a depuração do programa 
• Facilita a compreensão do programa por 
terceiros 
• Simplifica a manutenção posterior do 
programa 
 
Tradução de programas simbólicos 
• Para que um programa codificado em 
linguagem simbólica possa ser executado, é 
preciso antes traduzi-lo para linguagem de 
máquina. 
 
Conversão de programas simbólicos 
em numéricos 
• Transcrição manual dos mnemônicos dos códigos 
de operação com a ajuda de tabelas 
• Tabelas de símbolos memorizam os endereços 
numéricos associados aos endereços simbólicos 
• São consultadas para se efetuar a conversão dos 
endereços simbólicos em numéricos 
• Isso é feito compondo o código numérico da 
instrução com o endereço numérico associado 
aos nomes simbólicos das posições de memória 
referenciadas. 
 
Montagem (assembly) 
• O termo “montagem” designa a atividade de 
tradução de programas em código simbólico 
para a forma de código de máquina binário. 
• Para a execução de programas em notação 
simbólica, é preciso portanto executar sua 
montagem 
Tabela de 
Mnemônicos 
Tabela de 
Símbolos 
Montagem de uma instrução 
(da tabela de mnemônicos) 
(da tabela de símbolos) 
Montagem de outra instrução 
Montagem manual é tarefa cansativa 
• Tarefa tediosa e mecânica 
• Pode ser facilmente automatizada 
• Os programas que fazem este trabalho são os 
Montadores (assemblers) 
• Montadores traduzem programas-fonte 
simbólicos nos correspondentes códigos 
numéricos executáveis. 
Linguagens de montagem 
• Montadores não apenas traduzem programas 
simbólicos em programas numéricos 
• Incluem recursos adicionais de programação 
• Complementam a linguagem de máquina com 
outros recursos de programação que facilitam 
a produção e permitem melhorar a 
documentação dos programas 
• Programação em linguagem de máquina 
–Autor = Programador = Operador 
 
• Programação em linguagem simbólica 
–Programadores/Codificadores e Analistas 
Nos sistemas antigos 
• O responsável pelo programa encarregava-se 
– Da eficiência da atividade de programação 
– Da quantidade de memória ocupada 
– Do tempo de resposta do programa 
 
Nos sistemas recentes 
• Barateamento do hardware 
• Software determinante do custo do sistema 
• Mudaram os objetivos: 
– Boa estruturação dos programas 
– Fácil entendimento do programa 
– Bons recursos para testes e implementação 
– Maior facilidade de manutenção 
 
Deficiências da linguagem simbólica 
• Excesso de proximidade com a máquina 
• Cada computador é diferente dos demais 
• Isso exige treinamento profundo e específico 
 
• Dificulta o intercâmbio de programas 
• Dificulta a portabilidade dos programas 
• Os programas e as máquinas ficam vinculados 
 
• Isto sugere que se busque um desacoplamento 
entre máquinas e programas. 
Linguagens de alto nível 
• Exprimem algoritmos de forma independente 
de máquina 
• Uso de diagramas e de pseudo-código 
• Uso de notações mais próximas da linguagem 
humana 
• Criação de linguagens artificiais próprias para 
a programação (linguagens de alto nível) 
Linguagens mais populares (2016) 
A escalada do nível de abstração 
Fórmulas 
• As primeiras linguagens de alto nível 
colocavam seu foco na codificação de 
fórmulas matemáticas 
• A uma das primeiras linguagens de alto nível 
foi dado o nome de 
 
FORTRAN = FORmula TRANslation 
Aspecto de um antigo programa FORTRAN 
 
Outros comandos 
• Simplificações de certas construções sintáticas 
das linguagens naturais: 
– Comandos condicionais – if 
– Comandos iterativos – while, for 
– Comandos de múltipla escolha – case 
– Comandos de entrada e saída – read, print 
– Comandos de chamada de subrotina – call 
Tradução dos programas escritos em 
linguagem de alto nível 
• A obtenção de códigos executáveis a partir das 
linguagens de alto nível é complexa. 
• Apesar de toda a simplificação 
• Apesar do pequeno número de variações 
permitidas 
• Isso exige processos automáticos para a sua 
tradução 
• Compiladores são os programas que executam 
essa tarefa 
 
Esquema (simplificadíssimo) do 
processo de Compilação 
Compiladores 
• Traduzem para código executável programas 
expressos em linguagem de alto nível 
(processo conceitualmente similar ao de 
montagem, embora muito mais complexo) 
• Recebem como entrada o programa-fonte, em 
linguagem de alto nível 
• Geram como saída um programa equivalente 
em linguagem de máquina (em geral relocável) 
Interpretadores 
• Uma alternativa para o processamento de 
programas em linguagem de alto nível é a 
utilização de interpretadores 
• Esses programas de sistema percorrem o 
programa a executar, analisando-o e 
decidindo o que fazer passo a passo. 
• Não geram código de máquina, mas simulam 
a execução direta dos comandos do programa.

Continue navegando