Está en la página 1de 4

Breve Introduo

Programao
No comeo, programar um microprocessador para executar uma determinada tarefa no era uma
das coisas mais fceis que existiam. O programador estava preso a utilizar-se da Linguagem de Mquina,
que era a programao diretamente em binrio ou em hexadecimal. Guardar o que cada cdigo, ou seja,
cada nmero binrio ou seu equivalente em hexadecimal significava para o microprocessador, no era fcil.
Logo foi criada a primeira linguagem de programao, a linguagem Assembly. Na linguagem assembly,
cada cdigo que possui um significado especial para o microprocessador - que chamado de instruo recebe um nome, chamado genericamente de Mnemnico. muito mais fcil de se memorizar um nome do
que um cdigo qualquer, alm de ser muito mais fcil de se programar por nomes. Por exemplo, uma
comparao tpica (voc no precisa ainda saber o que exatamente significa tudo isto, o objetivo aqui a
comparao):
Microprocessador 8086
Ling. de mquina
B0 FF
A2 00 20

Assembly
MOV AL, 0FFh
MOV [2000h], AL

Microprocessador 6800
Ling. de mquina
86 FF
97 00 20

Assembly
LDA A, # FF
STA A, $2000

Microprocessador 6502
Ling. de mquina
A9 FF
8D 00 20

Assembly
LDA # FF
STA $2000

O que significa isto tudo e qual o nosso objetivo com isto ? Todos os trs programas para os trs
microprocessadores apresentados executam a mesma tarefa: colocar o valor 255 na posio de memria
2000h. Voc deve ter reparado duas coisas. A primeira, o assunto que ns estvamos discutindo: muito
mais fcil programar em assembly do que em linguagem de mquina ( muito mais fcil voc guardar MOV
AL do que B0, por exemplo). A segunda, que para cada microprocessador possumos um conjunto de
instrues prprio. Ou seja, no h qualquer correlao entre as instrues dos diversos tipos de
microprocessadores existentes no mercado. O que estipular uma famlia de microprocessadores ser
justamente a existncia de uma similaridade no conjunto de instrues dos microprocessadores que
constituam uma famlia. Por assim dizer, um 8086, um 8088, um 80286, um 80386 etc. constituem uma
famlia de microprocessadores por possurem instrues similares. Quem sabe programar em assembly em
um 8086 saber programar em um 80286, salvo, claro, as instrues adicionais que cada
microprocessador possuir e que no ser muito difcil aprender. Esta famlia de microprocessadores
chamada Intel Iapx86, 80x86 ou simplesmente Intel e a famlia de microprocessadores que est
presente no padro IBM PC de microcomputadores. Outros microprocessadores como o 6800, o 68000,
68020, etc. constituem uma outra famlia de microprocessadores, por possurem instrues similares entre
si, porm completamente diferentes da famlia Intel. Esta outra famlia chamada 680x0 ou simplesmente
Motorola e a famlia de microprocessadores que est presente em microcomputadores como o
MacIntosh, o Amiga e estaes de computao grfica.

Porm devemos lembrar que mesmo sendo o Assembly uma linguagem de baixo nvel, o
microprocessador no a entende - ele entende somente linguagem de mquina. O microprocessador no
sabe o que MOV AL, o mnemnico para a instruo B0. Ele entende somente nmeros, e portanto s
sabe interpretar B0. Esta converso pode ser feita basicamente de duas maneiras: ou na mo mesmo,
utilizando-se a tabela de instrues fornecida pelo fabricante ou utilizando-se de um programa para tal. Este
programa chamado genericamente de Assembler, ou seja, montador. O Assembler l um programa lido
em Assembly e converte-o para linguagem de mquina. Entenda que no h qualquer tipo de traduo
indireta: a linguagem Assembly apenas os opcodes (nmeros que representam instrues especficas)
com um rtulo particular, chamado, como vimos, mnemnico.

LINGUAGENS DE ALTO NVEL

Em um microcomputador voc necessita de recursos muito mais avanados do que a linguagem de


mquina e o assembly - consideradas como linguagem de baixo nvel pois trabalham intimamente com o
microprocessador - podem oferecer. Assim surge um outro grupo de linguagens, as chamadas linguagens
de alto nvel. As linguagens de alto nvel no esto to ntimas do microprocessador, mas em compensao
oferecem comandos, que so conjuntos de uma ou mais instrues, capazes de executar uma tarefa
completa. Como exemplos de linguagens de alto nvel, podemos citar BASIC, FORTRAN, Pascal e C, sendo
esta ltima considerada uma linguagem de mdio nvel, por permitir tanto a programao em baixo nvel
como em alto nvel. Mesmo sendo executadas em computadores - e conseqentemente em
microprocessadores - diferentes, as linguagens permanecem inalteradas. Isto porque voc no estar
programando o microprocessador diretamente: a linguagem ser um programa sendo executado sobre o
microprocessador. Logo, a linguagem de alto nvel se encarregar de traduzir os comandos de seu
programa em alto nvel - que o microprocessador no conhece - para um programa de baixo nvel - que o
seu microprocessador conhece. Assim, temos a mesma linguagem de programao de alto nvel para vrios
computadores diferentes, porm a maneira com que eles iro conversar com o microprocessador ser
diferente. E o mais importante: isto ser transparente para o programador. Assim, um programa escrito em
Turbo Pascal no Apple II ser idntico a um programa escrito em Turbo Pascal no IBM PC, salvo - claro alguns comandos que podero existir ou no em virtude da explorao do mximo da potencialidade do
computador, recursos que podero existir em um computador porm em outro no, permanecendo a
estrutura bsica inalterada.
Dentro das prprias linguagens de alto nvel existem linguagens "melhores" ou "piores" em termos
de recursos e estruturao. Por exemplo o BASIC no to bem estruturado como o Pascal e nem to
rgido em suas declaraes, tambm. Mas j vimos que o BASIC era uma linguagem que foi adotada como
"padro" nos primrdios da micro-informtica, pois os fabricantes colocavam esta linguagem em forma
residente em seus microcomputadores. Assim a linguagem BASIC tornou-se a linguagem de programao
mais popular existente at hoje.
Mas mesmo sendo popular, o prprio BASIC difere-se de um microcomputador para o outro,
dependendo, principalmente, do fabricante da linguagem (j que a linguagem ser um programa sendo
executado, como vimos) e do microprocessador que estava sendo utilizado. Por exemplo o AppleSoft Basic
(Apple II) difere-se totalmente do GWBasic (CP/M, MSX e IBM PC). Apesar da estrutura ser basicamente
igual, certos comandos so simplesmente criados ou ento excludos em virtude das capacidades
principalmente de Hardware e do prprio microprocessador do microcomputador.
Voltando questo de existirem linguagens de alto nvel com "maior nvel" do que outras,
peguemos o exemplo do BASIC vs. Pascal vs. C. Se quisssemos limpar a tela do computador e escrever
no canto superior esquerdo da tela a frase "Oi, tudo bem ?". Teramos:

GWBasic

AppleSoft Basic

10 CLS
20 PRINT "Oi, tudo bem ?"

10 HOME
20 PRINT "Oi, tudo bem ?"

Comentrios: CLS / HOME - Limpam a tela


PRINT - Imprime a mensagem entre aspas
Turbo Pascal

PROGRAM ESCREVE;
USES
CRT;
BEGIN
CLRSCR;
WRITE ('Oi, tudo bem ?');
END.
Comentrios:

USES CRT - Torna a tela disponvel para uso


CLRSCR - Limpa a tela
WRITE - Imprime a mensagem entre apstrofes

C
# include stdio.h
# include conio.h
void main ()
{
clrscr();
printf(Oi, tudo bem ?);
}
Comentrios:

INCLUDE - Incluem mdulos, neste caso para utilizao da tela


CLRSCR - Limpa a tela
PRINTF - Imprime a mensagem entre aspas

Nota-se claramente que tanto o Pascal quanto o C possuem uma estrutura muito mais rgida do que
o BASIC, tornando o programa final muito melhor de ser lido por pessoas que no fizeram parte do
processo de criao do mesmo - no BASIC, que no possui uma estrutura to rgida, geralmente demora-se
muito mais tempo at entendermos o funcionamento de um programa escrito por outra pessoa. Linguagens
como Pascal e C so consideradas, portanto, linguagens estruturadas, por necessitarem de uma estrutura
rgida de programao.
Mas como o computador entende os comandos programados ? Isto vai depender da forma que o
microcomputador vai "encarar" a linguagem. Quando, por exemplo, a linguagem vem residente, como no
caso do BASIC dos microcomputadores mais antigos, o microcomputador passa a dispor de um
interpretador sendo esta linguagem considerada uma linguagem interpretada. Nas linguagens
interpretadas, o interpretador faz com que o microprocessador "entenda" a linguagem como se fosse uma
coisa "normal", ou seja, algo que j fizesse parte do microcomputador como um todo. Neste caso, a cada
comando entrado, a linguagem (que um programa, como j vimos) ir pegar o comando de alto nvel,
interpret-lo e, caso tenha sido entrado com a sintaxe correta, ser executado convertendo-o em um
conjunto de instrues equivalentes em linguagem de mquina para que o microprocessador possa
executar o que o programador deseje. Mas caso ns no tenhamos um interpretador, devemos nos utilizar
de um compilador e neste caso a linguagem passa a ser considerada linguagem compilada. Nas
linguagens compiladas, o compilador "converte" a linguagem de alto nvel - que o microprocessador no
entende - em linguagem de baixo nvel. Um programa executado em linguagem compilada muito mais
rpido, pois est na verdade sendo executado integralmente em baixo nvel, o que no acontece na
linguagem interpretada. Em compensao durante o processo de criao e edio do programa toda vez
que quisermos testar o programa deveremos compil-lo antes, o que pode demorar um pouco - o que no
acontece com as linguagens interpretadas, aonde o programa executado na hora.
Texto gentilmente cedido por Flvio Toledo (flaviot@sti.com.br)

www.sti.com.br

También podría gustarte