Você está na página 1de 22

Linguagens de Alto Nvel

Fundamentos

14/3/2005

Prof. Dr. Paulo Srgio da Silva

Introduo
Uma Linguagem de Programao um vocabulrio e
um conjunto de regras gramaticais usadas para
escrever programas de computador.
Esses programas instruem o computador a realizar
determinadas tarefas especficas.
Cada linguagem possui um conjunto nico de
palavras-chave (palavras que ela reconhece) e uma
sintaxe (regras) especfica para organizar as
instrues (instrues mesmo) dos programas.

14/3/2005

Prof. Dr. Paulo Srgio da Silva

Linguagens Programao
Classificao
As linguagens de programao podem ser

classificadas, em uma escala relativa sua


semelhana com a linguagem humana, em:

14/3/2005

Linguagem
Linguagem
Linguagem
Linguagem

de Mquina
Assembly
de Alto Nvel
de Quarta Gerao

Prof. Dr. Paulo Srgio da Silva

Linguagem de Mquina
a linguagem de mais baixo nvel de entendimento

pelo ser humano e a nica, na verdade, entendida


pelo processador (CPU).
constituda inteiramente de nmeros, o que torna
praticamente impossvel entend-la diretamente.
Cada CPU tem seu conjunto nico de linguagem de
mquina, definido pelo fabricante do chip.
Uma instruo tpica em linguagem de mquina seria
algo como:
0100 1111 1010 0110
14/3/2005

Prof. Dr. Paulo Srgio da Silva

Linguagem de Mquina
As instrues presentes na linguagem de mquina

so as mesmas da linguagem do nvel mais acima


(linguagem assembly).
Os programas escritos nas linguagens de mais alto
nvel so convertidos (compilados ou montados) para
a linguagem de mquina especfica, para que possam
ser executados pelo computador.

14/3/2005

Prof. Dr. Paulo Srgio da Silva

Linguagem de Mquina
Um programa em linguagem de alto nvel que foi

compilado para executar em determinada CPU


precisa ser recompilado (e muitas vezes reescrito),
para que possa ser executado em outra CPU que no
tenha o mesmo conjunto de instrues.
Essa linguagem tambm classificada como
linguagem de primeira gerao

14/3/2005

Prof. Dr. Paulo Srgio da Silva

Linguagem Assembly
a linguagem de nvel imediatamente acima da

linguagem de mquina.
Ela possui a mesma estrutura e conjunto de
instrues que a linguagem de mquina, porm
permite que o programador utilize nomes (chamados
mnemnicos) e smbolos em lugar dos nmeros.
A linguagem assembly tambm nica para cada
tipo de CPU, de forma que um programa escrito em
linguagem assembly para uma CPU poder no ser
executado em outra CPU de uma famlia diferente.
14/3/2005

Prof. Dr. Paulo Srgio da Silva

Linguagem Assembly
Nos primrdios da programao todos os programas

eram escritos nessa linguagem. Hoje, a linguagem


assembly, utilizada quando a velocidade de
execuo ou o tamanho do programa executvel
gerado so essenciais.
Atualmente a maioria dos programas escrita em
linguagens de alto nvel, tal como C, Pascal , Delphi,
Kylix, Visual Basic, etc. devido facilidade de criao
e manuteno dos programas. Todos os programas
escritos nessas linguagens so convertidos para a
linguagem de mquina para serem executados pelo
processador.
14/3/2005

Prof. Dr. Paulo Srgio da Silva

Linguagem Assembly
A converso da linguagem assembly para a

linguagem de mquina se chama montagem, e


feita por um programa chamado montador (ou
assembler).
Uma tpica instruo em assembly seria :
ORG 100
LDAA # $10
END
Essa linguagem tambm classificada como
linguagem de segunda gerao, e, assim como a
linguagem de mquina, considerada uma
linguagem de baixo nvel.
14/3/2005

Prof. Dr. Paulo Srgio da Silva

Linguagem de Alto Nvel


So as linguagens de programao que possuem

uma estrutura e palavras-chave que so mais


prximas da linguagem humana, tornando os
programas mais fceis de serem lidos e escritos.
Esta a sua principal vantagem sobre as linguagens
de nvel mais baixo.
Os programas escritos nessas linguagens so
convertidos para a linguagem de mquina atravs de
um programa compilador ou de um interpretador.
Exemplos: FORTRAN, Prolog, Basic, COBOL, C,
Pascal, Delphi, C++, Java, etc.
14/3/2005

Prof. Dr. Paulo Srgio da Silva

10

Linguagem de Quarta Gerao


Usualmente abreviada por 4GL.
So linguagens de programao com estrutura mais

prxima da linguagem humana do que as linguagens


de programao de alto nvel.
A maioria delas usada para acessar bancos de
dados, a SQL (Structured Query Language) um
bom exemplo dessa gerao.
Por exemplo, um comando tpico seria:
SELECT NOME,MATRICULA FROM ALUNOS WHERE
NOME = "Carlos" AND ESTADO IN (RJ,SP,MG)
14/3/2005

Prof. Dr. Paulo Srgio da Silva

11

Paradigmas de Programao
Paradigmas de programao refere-se s diferentes
formas e estilos de se organizar a lgica de um
programa de computador.

14/3/2005

Os principais paradigmas so:


Programao procedural (Imperativa)
Programao Funcional
Programao Orientada a Objetos
Programao Lgica
Programao Concorrente

Prof. Dr. Paulo Srgio da Silva

12

Programao Procedural
As linguagens procedurais so orientadas a aes;

isto e, as instrues da programao so


visualizadas como uma seqncia de aes.
Por exemplo, comandos de atribuio, comparao,
etc.
Exemplos: Pascal e C
Aplicaes:

14/3/2005

Computao Cientfica
Desenvolvimento de Aplicativos

Prof. Dr. Paulo Srgio da Silva

13

Programao Funcional
As linguagens funcionais se caracterizam pela

presena de estruturas que permitem a recursividade


(valor de uma expresso depende apenas dos valores
de suas sub-expresses), coleta de lixo automtica e
gerenciamento automtico das alocaes de valores.
Exemplos: Lisp, Haskell, Sloth e Scheme
Aplicaes:

14/3/2005

Inteligncia Artificial
Sistemas Especialistas

Prof. Dr. Paulo Srgio da Silva

14

Programao Orientada a Objetos


As linguagens orientadas a objetos tratam todas as

fases de um programa como uma coleo de objetos


que interagem entre si.
Os objetos, geralmente, so organizados em uma
hierarquia de classes.
Exemplos: C++, Smalltalk, Java e Eiffel
Aplicaes:

14/3/2005

Desenvolvimento de Sistemas Complexos

Prof. Dr. Paulo Srgio da Silva

15

Programao Lgica
As linguagens lgicas lidam com relaes que

constitudas por fatos e regras.


A partir desses elementos, possvel deduzir as
respostas de um determinado sistema.
Exemplos: Prolog
Aplicaes:

14/3/2005

Processamento em linguagem natural


Sistemas especialistas

Prof. Dr. Paulo Srgio da Silva

16

Programao Concorrente
As linguagens concorrentes so aquelas cujas

operaes podem ser executadas em paralelo.


Exemplos: ADA
Aplicaes:

14/3/2005

Sistemas de tempo real

Prof. Dr. Paulo Srgio da Silva

17

Linguagens Estruturadas e NoEstruturadas


Na programao estruturada no se utiliza os

comandos de desvio incondicional (GOTO <label>)


A execuo de um programa estruturado feita
sempre para adiante, sem desvios e sem retornos,
pois a seqncia lgica das instrues coincide com a
ordem fsica em que elas so escritas
Caractersticas de um programa estruturado:

14/3/2005

Utilizao massiva de sub-rotinas (procedimentos e funes)


Facilidade de manuteno
Fcil entendimento

Prof. Dr. Paulo Srgio da Silva

18

Interpretadores e Compiladores
Interpretadores e Compiladores so programas que operam

sobre programas escritos pelo programador (programa fonte).


Interpretador: programa que l o programa fonte e executa as
suas instrues linha aps linha.

Dessa forma, o interpretador deve sempre estar presente e ativo


durante a execuo de um programa;
No h gerao de cdigo-objeto (executvel)

Compilador: programa que l todo o programa fonte e o

converte para um cdigo-objeto, que uma traduo do cdigo


fonte em uma forma que pode ser diretamente executada pelo
processador.

14/3/2005

H gerao de cdigo-objeto
Aps a gerao do cdigo no h mais a necessidade do
compilador;
Desvantagem: tempo de compilao do programa
Prof. Dr. Paulo Srgio da Silva

19

Mquinas Multinveis
Contemporneas
As linguagens de programao atuais so utilizadas,

normalmente, em mquinas consideradas multinveis.


A maioria dos computadores modernos possuem 6 nveis.

Nvel 0: o nvel de lgica digital. o hardware verdadeiro da

mquina (portas lgicas). Seus circuitos executam os programas


em linguagens de mquina.
Nvel 1: o nvel de microprogramao. Ao contrrio do nvel 0,
onde no existe o conceito de programa como uma seqncia
de instrues a serem executadas, nesse nvel h
definitivamente um programa denominado microprograma cuja
funo interpretar as instrues de nvel 2.

14/3/2005

Microprograma: programa que controla os registradores, os


barramentos, ALUs, as memrias da muina, etc.
Prof. Dr. Paulo Srgio da Silva

20

Mquinas Multinveis
Contemporneas
Nvel 2: o nvel convencional de mquina. Nesse nvel a

mquina tem uma memria orientada por bytes ou palavras e


instrues como MOV, JUMP e ADD.
Nvel 3: o nvel de Sistema Operacional. O Sistema
operacional pode ser considerado como um interpretador para
certas caractersticas no encontradas no nvel 2. As mais
importantes delas so as instrues de E/S, as facilidades para
o processamento compartilhado e a memria virtual.
Nvel 4: o nvel de linguagem de montagem. implementado
por traduo e corresponde a uma representao simblica de
algum programa em linguagem de mquina.
Nvel 5: o nvel de linguagem orientada a problemas.

14/3/2005

Prof. Dr. Paulo Srgio da Silva

21

Portabilidade de Programas
Um programa que pode ser transferido de um computador para
outro, com relativamente pouco esforo dito ser portvel.
Algumas das dificuldades para a portabilidade de programas
so:

14/3/2005

O comprimento das palavras variam de mquina para mquina;


O nmero e tipos de dispositivos de E/S diferem de mquina para
mquina;
Algumas instrues podem depender do sistema operacional;
O programa pode ser grande demais para a memria da nova
mquina;
Os conjuntos de caracteres podem ser incompatveis (um certo
padro de bits pode representar um caractere imprimvel em um
computador e ser ilegal ou uma marca de fim de registro em outro)

Prof. Dr. Paulo Srgio da Silva

22

Você também pode gostar