Você está na página 1de 9

Mdulo 4 Programao de microprocessadores

Linguagens de Programao
Sistemas Digitais e Arquitetura de Computadores
Curso Profissional de Tcnico de Gesto de Equipamentos Informticos

pac [Escrever o nome da empresa] 11 Ano

ndice
Contedo
Programao de Computadores....................................................................................... 3 Nveis de Linguagens de Programao ............................................................................. 3
Linguagem de Mquina ............................................................................................................. 4 Linguagem Hexadecimal ........................................................................................................... 4 Linguagem Assembly ................................................................................................................. 4 Vantagens e Desvantagens da Linguagem Assembly (com relao as linguagens de alto nvel) ...................................................................................................................................... 5 Aplicaes da Linguagem Assembly ...................................................................................... 6 Linguagem de Alto Nvel ........................................................................................................... 6 Linguagem Estruturada ............................................................................................................. 7

Desenvolvimento de Programas ...................................................................................... 7


Gerao do cdigo fonte (codificao) ..................................................................................... 8 Traduo do cdigo-fonte (cdigo-objeto) ............................................................................... 8 Editores de ligao .................................................................................................................... 8 Depuradores ou debuggers ....................................................................................................... 9 Execuo de programas ............................................................................................................ 9

Pgina 2 de 9

Programao de Computadores
Um sistema computacional pode ser visto como uma associao entre dois conceitos utilizados na terminologia de informtica:

O hardware, que est associado parte fsica do sistema (os circuitos e dispositivos) que suporta o processamento da informao;

O software, que corresponde ao conjunto de programas responsveis pela execuo das tarefas.

Software de sistema (ou sistema operacional) : facilita o acesso aos recursos do computador, atravs de comandos ou servios especiais ativados a nvel de programa. O sistema operacional administra os arquivos, controla os perifricos e executa utilitrios;

Software utilitrio : so programas desenvolvidos para facilitar a realizao de certas atividades como deteco de virus, programas de comunicao em redes, compresso de arquivos, etc...)

Software aplicativo : so programas desenvolvidos ou adquiridos pelos usurios para algum fim especfico (de natureza profissional, educacional ou de lazer jogos).

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.

Pgina 3 de 9

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. 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. No Pascal : R1: = R2.

Pgina 4 de 9

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 No Pascal : R1 : = R1 + R2.

A 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. 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. 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;
Pgina 5 de 9

A programao Assembly tem um custo de desenvolvimento maior;

Vantagens:

Permite acesso direto ao programa de mquina. Utilizando uma linguagem de lato 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 subtarefas 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

Pgina 6 de 9

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. 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.

Linguagem Estruturada
Nessa classe esto as linguagens de programao de alto nvel, criadas pela necessidade da produo de cdigo de programa de forma clara, aparecendo o conceito de estruturao do cdigo (endentao, utilizao de letras maisculas ou minsculas nos identificadores, eliminao de instrues com go to, etc.). Nas dcadas de 60 a 80 surgiram diversas linguagens que podem ser organizadas da seguinte forma:

Linguagens de uso geral: Pascal, Modula-2 eC; Linguagens especializadas: Prolog, Lisp e Forth; Linguagens orientadas a objetos: Smalltalk, Eiffel, C++ e Delphi.

Desenvolvimento de Programas
O desenvolvimento de programas est associado ao uso de ferramentas ou ambiente de desenvolvimento que acompanham o programador desde a etapa de codificao at a gerao e teste do cdigo executvel. A seguir, ser apresentado as principais etapas de gerao de um programa, alm das ferramentas utilizadas.

Pgina 7 de 9

Gerao do cdigo fonte (codificao)


A codificao escrita, utilizando uma linguagem de programao, das instrues que o computador deve realizar para alcanar um resultado. Para realizao dessa tarefa so utilizados os chamados editores. O editor a primeira ferramenta que o programador utiliza na etapa de codificao, pois atravs dela que ser gerado o arquivo (ou o conjunto de arquivos) que vai conter o cdigo-fonte do programa. possvel utilizar qualquer editor de linha (como o EDIT do DOS) para gerar o arquivo de programa. Mas ambientes mais recentes oferecem ferramentas de edio mais poderosas.

Traduo do cdigo-fonte (cdigo-objeto)


Independente da linguagem de programao utilizada e da arquitetura do sistema computacional, o cdigo-fonte no executvel diretamente pelo processador. O cdigo-fonte permite apenas que o programador consiga definir o programa em uma forma legvel aos humanos. Para que o programador consiga definir o programa executvel, necessrio que o cdigo-fonte seja traduzido para o cdigo de mquina do processador que compe a arquitetura da sistema. A traduo feita de forma automtica graas a existncia de ferramentas como os Montadores (ou Assembler, para programas escritos em Assembly) e os Compiladores, construdos para gerar o cdigo de programas escritos em linguagens de alto nvel. O cdigo gerado por essas ferramentas representado segundo o sistema de numerao binria e denominado cdigo-objeto. O cdigo-objeto o cdigo produzido pelo compilador, uma forma intermediria similar a linguagem de mquina do computador. Apesar de estar representado em binrio, no executvel diretamente pelo processador, pois normalmente, o cdigoobjeto referencia partes de programa que no esto necessariamente definidas no mesmo arquivo que o gerou, por exemplo, arquivos de bibliotecas de sub-rotinas.

Editores de ligao
A tarefa do editor de ligao ou linker rearranjar o cdigo do programa, incorporando a ele todas as partes referenciadas no cdigo original, resultando num
Pgina 8 de 9

cdigo executvel pelo processador. Essa tarefa pode ser realizada tambm pelos chamados carregadores.

Depuradores ou debuggers
Os debuggers possuem uma funo essencial que auxiliar o programador a eliminar (ou reduzir) a quantidade de erros (bugs) de execuo no programa. Possibilita um anlise efetiva do cdigo devido :

Execuo passo-a-passo (instruo por instruo) de partes do programa; Visualizao dos valores das variveis e dos contedos dos registros internos do processador;

Alterao em tempo de execuo de contedos de memria, de variveis ou de instrues; etc.

Execuo de programas
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.

Pgina 9 de 9