Você está na página 1de 13

Linguagens de Programao

Nveis de Linguagens de Programao

Nveis de Linguagens de Programao


Uma linguagem de programao pode ser definida como sendo um conjunto limitado de instrues (vocabulrio), associado a um conjunto de regras (sintaxe) que define como as instrues podem ser associadas, ou seja, como se pode compor os programas para a resoluo de um determinado problema. As linguagens de programao podem ser classificadas em nveis de linguagens, sendo que as linguagens de nvel mais baixo esto mais prximas da linguagem interpretada pela processador e mais distante das linguagens naturais.

Linguagem de Mquina

Na linguagem de mquina, a representao dos dados e das operaes (instrues) que constituem um programa, baseada no sistema binrio, que a forma compreendida e executada pelo hardware do sistema. Torna-se invivel escrever ou ler um programa codificado na forma de uma string de bits.
Linguagem Hexadecimal

Para simplificar a compreenso e a programao de computadores, foi adotado (num primeiro momento) a notao hexadecimal para representar programas em linguagens de mquina. Mas a programao e leitura usando a linguagem hexadecimal continuou impraticvel.

Linguagem Assembly
A linguagem de mquina de cada processador acompanhada de uma verso legvel da linguagem de mquina que a chamada linguagem simblica Assembly. Simblica pois esta linguagem no composta de nmeros binrios ou hexadecimais, como nas duas linguagens anteriores.

A linguagem Assembly na realidade uma verso legvel da linguagem de mquina. Ela utiliza palavras abreviadas, chamadas mnemnicos, indicando a operao a ser realizada pelo processador.

Linguagem Assembly
Exemplos de instrues Assembly: MOV R1, R2 mnemnico MOV (abreviao de MOVE) e dois registradores como parmetro: R1 e R2. Quando o processador executa essa instruo, ele comanda o movimento do contedo de R2 para R1. ADD R1, R2 Mnemnico ADD (abreviao de ADDITION) e dois registradores como parmetro: R1 e R2. Quando o processador executa essa instruo ele comanda a adio do contedo de R1 ao contedo de R2 e o resultado armazenado em R1

Linguagem Assembly
linguagem Assembly facilitou significativamente a leitura de sequncias de instrues de mquina.

A linguagem Assembly apenas uma verso legvel da linguagem de mquina, a passagem de um programa escrito em Assembly para a linguagem de mquina quase sempre direta, no envolvendo muito processamento.
Essa passagem chamada de Montagem, e o programa que realiza esta operao chamado de montador (Assembler). A linguagem Assembly orientada para a mquina (ou melhor, para processador), necessrio conhecer a estrutura do processador para poder programar em Assembly.

Linguagem Assembly
Essa linguagem utiliza instrues de baixo nvel que operam diretamente com registros e memrias, ou seja, as instrues so diretamente executadas pelo processador. Seguindo a evoluo das linguagens de programao, procurou-se aproximar mais a linguagem de programao linguagem natural que utilizamos no dia-a-dia. Surgiram ento, as linguagens de alto nvel, com o Pascal, C, C++, etc.

Linguagem Assembly
Vantagens e Desvantagens da Linguagem Assembly (com relao as linguagens de alto nvel)

Desvantagens:
A linguagem apresenta um nmero muito reduzido de instrues; O programador deve conhecer muito bem a mquina; O programa Assembly no muito legvel, precisa ser bem documentado; O programa Assembly no portvel (pode ser usado apenas em um tipo de computador). portvel apenas dentro de uma famlia de processadores; A programao Assembly tem um custo de desenvolvimento maior;

Linguagem Assembly
Vantagens: Permite acesso direto ao programa de mquina. Utilizando uma linguagem de alto nvel, no se tem o controle de cdigo de mquina gerado pelo compilador. Um programa escrito em linguagem Assembly pode ser de 0 a 300% menor e mais rpido que um programa compilado;

Essa linguagem permite o controle total do hardware

Aplicaes da Linguagem Assembly


Controle de processos com resposta em tempo real Nesse tipo de aplicao, o processador deve executar um conjunto de instrues em um tempo limitado; Comunicao e transferncia de dados Nesse tipo de aplicao utilizada a linguagem Assembly, devido a possibilidade de acessar diretamente o hardware; Otimizao de sub-tarefas da programao de alto nvel Um programa no precisa somente ser escrito em linguagem Assembly ou linguagem de alto nvel. Podemos ter programas de alto nvel com sub-tarefas escritas em Assembly, para o caso de tarefas tempo-real ou para a programao do hardware do computador.

Linguagem de Alto Nvel


As linguagens de alto nvel so assim denominadas por apresentarem um sintaxe mais prxima da linguagem natural, fazendo uso de palavras reservadas extradas do vocabulrio corrente (com READ, WRITE, TYPE, etc.) e permitem a manipulao dos dados nas mais diversas formas (nmeros inteiros, reais, vetores, etc.), enquanto a linguagem Assembly trabalha com bits, bytes, palavras, armazenadas em memria. A passagem de um programa escrito em linguagem de alto nvel para o programa em linguagem de mquina bem mais complexa comparado com a linguagem Assembly. Essa passagem feita utilizando compiladores e linkadores.

Linguagem de Alto Nvel


Um programa escrito em linguagem de alto nvel pode, teoricamente, ser usado em qualquer mquina, bastando escolher o compilador correspondente. O que no acontece com um programa escrito em Assembly. Para que um programa possa ser executado, preciso que seja transferido para a memria principal. A maioria dos programas ficam armazenados em disco, mas a CPU no pode executar nenhum programa diretamente a partir do disco.

O programa precisa ser antes lido do disco e carregado na memria principal.

Fonte
http://algol.dcc.ufla.br/~monserrat/icc/Capitulo3.html