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:
Linguagem Linguagem Linguagem Linguagem de Mquina Assembly de Alto Nvel de Quarta Gerao

14/3/2005

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 4

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 7

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 8

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 9

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.
Os principais paradigmas so: Programao procedural (Imperativa) Programao Funcional Programao Orientada a Objetos Programao Lgica Programao Concorrente

14/3/2005

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:
Computao Cientfica Desenvolvimento de Aplicativos

14/3/2005

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:
Inteligncia Artificial Sistemas Especialistas

14/3/2005

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:
Desenvolvimento de Sistemas Complexos

14/3/2005

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:
Processamento em linguagem natural Sistemas especialistas

14/3/2005

Prof. Dr. Paulo Srgio da Silva

16

Programao Concorrente
As linguagens concorrentes so aquelas cujas operaes podem ser executadas em paralelo. Exemplos: ADA Aplicaes:
Sistemas de tempo real

14/3/2005

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:
Utilizao massiva de sub-rotinas (procedimentos e funes) Facilidade de manuteno Fcil entendimento

14/3/2005

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.
H gerao de cdigo-objeto Aps a gerao do cdigo no h mais a necessidade do compilador; Desvantagem: tempo de compilao do programa
14/3/2005 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.
Microprograma: programa que controla os registradores, os barramentos, ALUs, as memrias da muina, etc.
14/3/2005 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:
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)

14/3/2005

Prof. Dr. Paulo Srgio da Silva

22