You are on page 1of 18

FACULDADE DE TAQUARITINGA GRUPO EDUCACIONAL UNIESP UNIO DAS INSTITUIES EDUCACIONAIS DO ESTADO DE SO PAULO

SISTEMAS DE INFORMAO

Alex Fernando Finoti Anderson P. Cavalcanti Carlos Henrique Silva Saulo Drabzinski Sidnei G. Prata

ARQUITETURA DE COMPUTADORES COMPILADORES VS INTERPRETADORES

Taquaritinga/SP 2012

Sumrio
1. 2. INTRODUO ........................................................................................ 3 EXECUO DE PROGRAMAS ............................................................. 4 2.1. Linguagem de Mquina ........................................................................ 4 2.2. 2.3. 2.4. 2.5. 3. Linguagem de Montagem .................................................................... 5 Linguagens de Programao ................................................................ 6 Traduo............................................................................................... 8 Montagem ............................................................................................ 8

COMPILAO ...................................................................................... 10 3.1. Bibliotecas .......................................................................................... 10 3.2. Ligao ............................................................................................... 11

4. 5.

INTERPRETAO ................................................................................ 12 COMPILAO E INTERPRETAO ................................................. 13 5.1. 5.2. 5.3. 5.4. Tempo de execuo ............................................................................ 13 Consumo de memria ........................................................................ 13 Repetio de interpretao ................................................................. 13 Desenvolvimento de programas e depurao de erros ....................... 14

6. 7.

EXECUO DE PROGRAMAS ........................................................... 15 CONCLUSO ........................................................................................ 17

REFERENCIAS BIBLIOGRFICAS.............................................................. 18

1. INTRODUO

O tema abordado vem mostrando as primeiras linguagens, como linguagem de maquina e como elas so representadas e entendida pelos computadores vem tambm falando um pouco sobre Linguagem de Montagem, Linguagem de Programao e falando sobre o tema Compilao e Interpretao as comparaes entres essa linguagens e suas respectivas velocidades, desenvolvimento de programas e depurao de erros, Emuladores e Maquinam Virtuais dentro destas linguagens.

2. EXECUO DE PROGRAMAS

2.1.

Linguagem de Mquina

Para executar uma tarefa qualquer, um computador precisa receber instrues precisas sobre o que fazer. Uma seqncia adequada de instrues de computador, para a realizao de uma determinada tarefa, se constitui num PROGRAMA de computador. Uma linguagem de programao um conjunto de ferramentas, regras de sintaxe e smbolos ou cdigos que nos permitem escrever programas de computador, destinados a instruir o computador para a realizao de suas tarefas. A primeira e mais primitiva linguagem de computador a prpria linguagem de mquina, aquela que o computador entende diretamente e pode ser diretamente executada pelos circuitos do processador (pelo hardware). No incio da era da computao, os programas eram escritos em linguagem de mquina, isto , as instrues eram escritas diretamente na linguagem do computador (formada apenas com 1's e 0's). Um programa em linguagem de mquina uma longa srie de 0's e 1's, ordenados de forma que alguns representam cdigos de instrues e outros representam os dados que sero processados (ou indicam onde esses dados esto armazenados). Em um programa escrito em linguagem de mquina, cada instruo escrita pelo programador ser individualmente executada, isto , a cada instruo do programa corresponder uma ao do computador. A relao portanto 1 para 1 - uma instruo do programa corresponde a uma operao do computador. Imagine ento um programa extenso escrito apenas usando 1's e 0's; imagine que para cada diferente marca ou modelo de computador, as regras para entender esses cdigos sero totalmente diferentes; e finalmente imagine que voc teria que escrever uma a uma as instrues e os dados adequadamente codificados e ordenados, perfurar todos o programa em cartes e submeter toda a massa de cartes ao computador, para finalmente receber algumas horas depois o seu programa de volta com uma mensagem de erro tipo "erro no carto X" e mais nada! Um programa escrito nessa linguagem era difcil de ser escrito sem que se cometessem muitos erros, processo esse longo, difcil, entediante e principalmente caro. Um programa em linguagem de mquina era tambm extremamente difcil de ser entendido por outros programadores que futuramente viessem a trabalhar na manuteno do programa. Essa complexidade levou necessidade de se desenvolverem tcnicas e

ferramentas para tornar a escrita e manuteno de programas mais fcil, mais rpida e principalmente mais barata. Cada famlia de computadores possui sua prpria linguagem de mquina. Um programa em linguagem de mquina dependente do computador, ou seja, tendo sido escrito para um determinado computador, somente poder ser executado em computadores da mesma famlia, que lhe sejam 100% compatveis. Obs.: Um programa em linguagem de mquina pode ser apresentado em binrio (0's e 1's) ou em hexadecimal (usando de 0 a F, ou seja, transformando cada 4 bits em um dgito hexadecimal). A apresentao em hexadecimal torna mais enxuta a representao (mas no mais simples...), mas serve somente para visualizao, pois um programa somente pode ser submetido ao computador em binrio.

2.2.

Linguagem de Montagem

A primeira tentativa bem-sucedida para resolver o problema acima descrito foi criao de uma linguagem em que os cdigos numricos foram substitudos por mnemnicos (palavras ou smbolos como, por exemplo, LOAD = carregar e ADD = somar, que se aproximam de palavras comuns da lngua inglesa). As localizaes dos dados foram substitudas por referncias simblicas e foram tambm definidas regras de sintaxe de fcil memorizao, de forma a tornar a escrita de programas e sua posterior manuteno uma tcnica de complexidade relativamente menor. Essa linguagem simblica recebeu o nome de Assembly Language ( Linguagem de Montagem). Assim, o programador no mais precisava decorar os cdigos numricos que representavam as diferentes instrues e os endereos reais de armazenamento, bastando decorar mnemnicos para as instrues e definir nomes para as referncias dos endereos (por exemplo, NOME para o local onde seriam armazenados os nomes e SALARIO para o local onde seriam armazenados os salrios, etc), o que sem dvida facilita enormemente o trabalho. importante lembrar que um computador sempre monoglota, isto , ele entende nica e exclusivamente a sua prpria linguagem de mquina. Portanto, para escrever um programa em outra linguagem e ele ser entendido e processado no computador, preciso

haver algum outro programa que leia o programa escrito nessa linguagem alternativa e o traduza para a linguagem nativa do computador (isto , a linguagem de mquina entendida pelo computador). O processo de traduo da linguagem de montagem para a linguagem de mquina (chamado de montagem) realizado por um programa chamado Assembler (Montador). O programa Assembler l cada instruo escrita em linguagem Assembly e a converte em uma instruo equivalente em linguagem de mquina; e tambm converte cada uma das referncias simblicas de memria em endereos reais (resolve as referncias de memria). A criao de programas Montadores facilitou muito o trabalho dos programadores. Uma outra vantagem menos bvia foi possibilitar o desenvolvimento de programas de crtica de sintaxe (os debuggers), facilitando o processo de depurao de erros de programao. No entanto, o processo continuava lento e complexo, exigindo do programador uma grande compreenso do processo e profundo conhecimento da mquina que ele estava programando. Um programa de computador ainda era difcil de ser escrito, caro, e dependente do computador para o qual foi escrito, j que um programa escrito em linguagem de mquina para um determinado computador s poder ser processado em computadores 100% compatveis com ele.

2.3.

Linguagens de Programao

Esses problemas levaram a uma busca por linguagens que fossem mais simples de programar e entender, mais rpidas e eficientes, (levando a programas mais enxutos, com menos instrues), menos dependente do computador-alvo, mas que processassem com boa eficincia (no acarretando processamento lento no computador). Foram desenvolvidas diversas linguagens de programao, buscando afastar-se do modelo centrado no computador. Essas linguagens foram estruturadas buscando refletir melhor os processos humanos de soluo de problemas. Essas linguagens orientadas a

problema so tambm chamadas linguagens de alto nvel, por serem afastadas do nvel de mquina. As primeiras linguagens foram FORTRAN (1957), usada basicamente para manipulao de frmulas; ALGOL (1958), para manipulao de algoritmos; COBOL (1959), para processamento comercial e ainda hoje bastante usada, especialmente em computadores de grande porte (mainframes) em bancos. Nas dcadas de 60 e 70, podemos citar Pascal, a primeira linguagem de alto nvel estruturada; BASIC, linguagem criada para facilitar a programao por noprofissionais; e ADA, linguagem para processamento em tempo real criada sob encomenda do DoD (Department of Defense norte-americano) e ainda hoje a nica linguagem aceita para programas escritos sob encomenda do DoD. Na dcada de 80, surgiu o C e depois o C++ (com suporte a objetos), que esto entre as linguagens mais utilizadas hoje. Cada nova linguagem criada visa atingir nveis de abstrao mais altos, isto , afastam cada vez mais o programador do nvel de mquina. Se por um lado essas novas linguagens facilitam muito o trabalho dos programadores (e reduzem sua necessidade de conhecer o hardware da mquina), elas cobram um alto preo em termos de desempenho (isto , so cada vez mais lentas, ao consumir cada vez mais ciclos de mquina e espao em memria). Esse aumento de exigncia ao poder de processamento dos computadores compensado (e desta forma se faz menos notado) pelo aumento acelerado do poder de processamento dos novos chips (exemplificado pela chamada Lei de Moore, que afirma que o poder de processamento dos chips dobra a cada 18 meses) e pelos avanos na arquitetura dos computadores. Dentre as importantes tendncias atuais, citamos as linguagens de manipulao de bancos de dados (como dBase, Clipper, FoxPro, Paradox, Access, etc) e as linguagens visuais, como o Visual Basic, Visual C e Delphi. Tal como na linguagem humana, as linguagens de computadores proliferam e sempre h problemas que ainda persistem, continuando a busca por uma linguagem ideal - a soluo "definitiva". A linguagem Java a mais importante tendncia atual e mais recente avano na busca pela linguagem universal - o "esperanto" dos computadores. Java eleva a abstrao ainda mais um nvel e se prope a ser independente da mquina onde ser

executado. Porm, na realidade, quando no est sendo processado em um processador Java nativo, o cdigo Java interpretado por uma camada de software chamada mquina virtual Java (JVM - Java Virtual Machine), ou seja, um emulador. Esse assunto ser discutido no item dos Emuladores e Mquinas Virtuais, ainda nesta seo.

2.4.

Traduo

Um programa escrito por um programador (chamado cdigo fonte) em uma linguagem de alto nvel um conjunto de instrues que clara para programadores, mas no para computadores. Ou seja, os computadores entendem nica e exclusivamente suas linguagens nativas, as linguagens de mquina. Programas em linguagem de alto nvel, a exemplo dos programas escritos em linguagem de Montagem, tambm precisam ser traduzidos para linguagem de mquina para poderem ser submetidos ao computador e processados. O processo de traduo do programa escrito em uma linguagem simblica pelo programador, chamado cdigo fonte (source code) para a linguagem de mquina do computador chamada cdigo objeto (object code), chamado compilao e realizado por um programa chamado Compilador (Compiler).

2.5.

Montagem

Citamos anteriormente uma forma de traduo rpida e simples: a executada pelo programa Montador. O processo de montagem traduz um programa escrito em linguagem Assembly em um programa equivalente em linguagem de mquina, possvel de ser executado pelo computador. A seguir, apresentado o fluxo que representa o processo de montagem.

Figura1.1-Processo de Montagem. No processo de montagem, o cdigo fonte (programa em linguagem simblica escrito pelo programador) examinado, instruo por instruo e feita a traduo, gerando o cdigo que ser executado (cdigo objeto). Os passos executados pelo programa Montador so: I. Verificar a correo do cdigo de instruo (se o mnemnico

corresponde a uma instruo vlida para o computador, se os campos definidos na estrutura da linguagem e a sintaxe esto corretos) e substituir os mnemnicos pelos cdigos numricos binrios equivalentes. Qualquer erro no cdigo acarreta a interrupo do processo e a emisso de mensagem de erro. II. Resolver as referncias de memria: os nomes simblicos adotados pelo

programador so convertidos para endereos reais de memria (valores numricos binrios de endereos). III. dados. IV. Converter valores de constantes em binrio. Reservar espao em memria para o armazenamento das instrues e

10

3. COMPILAO

Compilao o processo de traduo de um programa escrito em linguagem de alto nvel para cdigo em linguagem de mquina. Compilao um processo anlogo ao da montagem (verificao / anlise do cdigo fonte, resoluo das referncias de memria, reserva de espao em memria e converso para cdigo de mquina binrio). O que diferencia a compilao do processo de montagem sua maior complexidade. No processo de montagem, h uma relao de 1:1, ou seja, cada instruo do cdigo fonte resulta em uma instruo de mquina, enquanto na compilao a relao mltipla, cada instruo do cdigo

fonte gerando vrias instrues de mquina. Veja a figura abaixo. Figura: 1.2 - Processo de Traduo Durante a compilao, o cdigo fonte analisado (anlise lxica, sinttica e semntica), gerado um cdigo intermedirio e so construdas tabelas de smbolos, alocamse as reas de memria para variveis e atribui-se os registradores a serem utilizados, e finalmente gerado o cdigo objeto em linguagem binria de mquina. Em alguns compiladores, gerado um cdigo intermedirio em Assembly (que pode ser visualizado pelo programador) e que em seguida passa pelo montador para gerar finalmente o cdigo objeto em linguagem de mquina. O cdigo objeto pode ser absoluto (os endereos constantes so endereos reais de memria) ou realocvel (os endereos so relativos, tendo como referncia o incio do programa, e os endereos reais de memria so definidos apenas em tempo de execuo).

3.1.

Bibliotecas

O desenvolvimento de um programa certamente utilizar diversas operaes que so comuns a muitos outros programas. Por exemplo, a execuo de uma instruo de

11

entrada e sada, a classificao dos dados de um arquivo, o clculo de funes matemticas, etc. Uma linguagem de alto nvel geralmente incorpora diversas rotinas prontas (que fazem parte da linguagem) e que compem bibliotecas (librarys) de funes pr-programadas que podero ser utilizadas pelo programador, poupando tempo, aumentando a eficincia e evitando erros. Dessa forma, um programa em alto nvel possivelmente conter diversas chamadas de biblioteca (library calls). Essas funes no devem ser confundidas com as instrues da linguagem - na realidade, so pequenos programas externos que so chamados atravs de instrues especiais de chamada de biblioteca. Para serem executadas, essas rotinas precisam ser incorporadas ao cdigo do programador, isto , a chamada de biblioteca precisa ser substituda pelo cdigo propriamente dito, incluindo os parmetros necessrios.

3.2.

Ligao

Assim, o cdigo objeto preparado pelo compilador em geral no imediatamente executvel, pois ainda existe cdigo (as rotinas de biblioteca) a ser incorporado ao programa. A cada chamada de biblioteca encontrada no cdigo fonte, o compilador precisar incluir uma chamada para a rotina e o endereo dos dados que devam ser passados para a rotina. A tarefa de examinar o cdigo objeto, procurar as referncias a rotinas de biblioteca (que constituem referncias externas no resolvidas), buscar a rotina da biblioteca, substituir a chamada pelo cdigo ("resolver as referncias externas") e obter os parmetros para inclu-los no cdigo objeto executada por um programa chamado Ligador (LinkEditor). O resultado da execuo do Ligador o cdigo final pronto para ser executado pelo computador, chamado mdulo de carga ou cdigo executvel. O mdulo de carga, depois de testado e depurado (isto , depois de resolvidos todos os erros, tambm chamados "bugs") armazenado em memria de massa para ser executado quando necessrio. O processo de compilao e ligao executado apenas pelo programador na fase de desenvolvimento e no mais precisar ser executado pelo usurio, quando da execuo do programa.Veja a Imagem:

12

Figura 1.3 Processo de Compilao e Ligao 4. INTERPRETAO

Com o processo de execuo de um programa em fases distintas (compilao / ligao / execuo) apresentado, um programa para ser executado precisa primeiro ter sido convertido para cdigo objeto pelo compilador e depois ter passado pelo ligador. Esse processo o mais largamente utilizado, porm no o nico. O mtodo alternativo chama-se de interpretao e, a partir do programa fonte, realiza as trs fases (compilao, ligao e execuo), comando por comando, em tempo de execuo. No existem fases distintas nem se produzem cdigos intermedirios. Todo o processo de converso efetuado em tempo de execuo e imediatamente executado. Ou seja, cada comando lido, verificado, convertido em cdigo executvel e imediatamente executado, antes que o comando seguinte seja sequer lido. Linguagens como C, Pascal, COBOL, etc., so linguagens tipicamente compiladas, enquanto o BASIC foi desenvolvido como linguagem interpretada (hoje tambm existem linguagens BASIC compiladas e o programador pode optar). As linguagens de programao tipicamente de usurio, tais como das planilhas Excel, o Word Basic (linguagem de construo de Macros do Word), o Access, etc, so todas linguagens interpretadas.

Veja a figura Processo de Interpretao: Figura 1.4 Processo de Interpretao.

13

5. COMPILAO E INTERPRETAO

5.1.

Tempo de execuo

No mtodo de interpretao, cada vez que o programa for executado, haver compilao, ligao e execuo de cada um dos comandos. No mtodo de Compilao, o tempo de execuo do programa reduzido, porque todos os passos preliminares (compilao e ligao) foram previamente cumpridos.

5.2.

Consumo de memria

No mtodo de interpretao, o interpretador um programa geralmente grande e que precisa permanecer na memria durante todo o tempo que durar a execuo do programa, pois um programa necessita do interpretador para ter traduzidos cada um dos seus comandos, um a um, at o trmino de sua execuo (o interpretador somente descarregado depois do trmino da execuo do programa). No mtodo de compilao, o compilador carregado e fica na memria apenas durante o tempo de compilao, depois descarregado; o ligador carregado e fica na memria apenas durante o tempo de ligao, depois descarregado. Essas so funes realizadas pelo programador e executadas apenas durante o desenvolvimento do programa. Quando o usurio for executar o programa, apenas o mdulo de carga (cdigo executvel) carregado e fica na memria durante a execuo. Desta forma, vemos que o mtodo de interpretao acarreta um consumo de memria muito mais elevado durante a execuo do programa.

5.3.

Repetio de interpretao

14

No mtodo de compilao, um programa compilado e ligado apenas uma vez, e na hora da execuo carregado apenas o mdulo de carga, que diretamente executvel. No mtodo de interpretao, cada programa ter que ser interpretado toda vez que for ser executado. Outro aspecto que, em programas contendo loops, no mtodo de interpretao as partes de cdigo pertencentes ao loop sero vrias vezes repetidas e tero que ser interpretadas tantas vezes quantas o loop tiver que ser percorrido. No mtodo de compilao, a traduo do cdigo do loop se faz uma nica vez, em tempo de compilao e ligao. Estas caractersticas levam a um maior consumo de tempo no mtodo de interpretao, que , portanto mais lento.

5.4.

Desenvolvimento de programas e depurao de erros

No mtodo de compilao, a identificao de erros durante a fase de execuo fica sempre difcil, pois no h mais relao entre comandos do cdigo fonte e instrues do executvel. No mtodo de interpretao, cada comando interpretado e executado individualmente, a relao entre cdigo fonte e executvel mais direta e o efeito da execuo (certa ou errada) direta e imediatamente sentido. Quando a execuo de um comando acarreta erro, quase sempre o erro pode ser encontrado no comando que acabou de ser executado. Assim, o interpretador pode informar o erro, indicando o comando ou varivel causadora do problema. Essa caracterstica, que a rigor a maior vantagem do mtodo de interpretao sob o ponto de vista do usurio, faz com que esse mtodo seja escolhido sempre que se pretende adotar uma linguagem que v ser usada por no-profissionais ou para a programao mais expedita. Por exemplo, o mtodo de interpretao usado pela maioria dos Basic (uma linguagem projetada para ser usada por iniciantes), e por todas as linguagens tpicas de usurio como dBase, Access, Excel, etc.

15

6. EXECUO DE PROGRAMAS

Uma aplicao interessante dos interpretadores a gerao de cdigo universal e mquinas virtuais. Sabemos que um computador somente capaz de executar programas que tenham sido desenvolvidos para ele. Assim, um programa desenvolvido para rodar em PC's rodando Windows no funciona em PC's com UNIX ou em Macintosh. Se voc concorda com essa afirmao, imagine ento uma pgina na Internet, com textos, imagens e programas que podem ser visualizados e processados por quase qualquer computador. Como isso pode ser feito? Como computadores de marcas e modelos diferentes estaro lendo, interpretando e executando corretamente comandos que podem ter sido desenvolvidos usando um outro computador? O segredo a utilizao de linguagens padronizadas (tais como HTML - para a escrita das pginas - e PERL, CGI, Java, Java Script, etc., para programas) que so suportadas por diversas plataformas. Assim, cada uma das plataformas (atravs dos programas visualizadores de pginas Internet, conhecidos como browsers ou mesmo atravs de seus respectivos sistemas operacionais) pode interpretar corretamente qualquer pgina feita e hospedada em qualquer computador. Uma situao semelhante ocorre quando algum desenvolve um programa que "interpreta" o cdigo executvel produzido para um determinado computador e o converte para ser executado em outro computador incompatvel com o primeiro. Imagine pegar um jogo desenvolvido para os consoles originais Atari (por exemplo, o Space Invaders, Asteroids ou PacMan) e poder execut-lo num moderno PC. Ou pegar um programa que voc tenha escrito (por exemplo, uma planilha) para um dos Apple II originais e rod-lo num PC. Esse processo, em que um computador opera como se fosse o outro, conhecido como emulao. Levando esse conceito um pouco mais adiante, imagine desenvolver um programa conversor que pegasse qualquer programa escrito para uma determinada mquina e interpretasse seu cdigo executvel traduzindo-o em tempo de execuo para instrues de um outro computador. Esse programa criaria uma camada de emulao em que uma mquina se comportaria como outra mquina. Poderamos ter um PC "virtual" emulado em um Macintosh, que estaria assim apto a rodar qualquer programa escrito para PC. Esse programa

16

emulador criaria um ambiente que chamamos de mquina virtual, isto , uma mquina que se comporta como outra mquina diferente, no compatvel. Algo parecido foi desenvolvido pela Sun Microsystems na linguagem Java. Java uma linguagem que em princpio permite que programas escritos nela rodem em qualquer mquina. Na realidade, a Sun desenvolveu uma plataforma Java (JVM - Java Virtual Machine), com caractersticas de ambiente necessrias para que os programas escritos em Java rodem adequadamente. A JVM suporta uma representao em software de uma UCP completa, com sua arquitetura perfeitamente definida incluindo seu prprio conjunto de instrues. Os programadores Java escrevem cdigo usando o conjunto de instrues definido pela linguagem Java. Essa fonte ser ento compilada gerando cdigo de mquina virtual Java. Como o cdigo Java universal, os cdigos fonte Java e os cdigos objeto gerados so independentes da mquina em que o software ser depois processado. Assim, os programadores Java no precisam se preocupar em qual computador ou sistema operacional o programa vai ser executado: desenvolver para Java independente da mquina! Mas como possvel que isso funcione, sem desmentir tudo o que antes dissemos sobre o cdigo de mquina ser dependente do ambiente? Tudo bem que o cdigo Java rode bem em um processador Java. Mas, e em outras plataformas? Bom, em outras plataformas, programas escritos em Java rodariam... em mquinas virtuais que emulariam o ambiente Java. Isso significa que as empresas desenvolvedoras de software construram uma camada de software que, em tempo de execuo, lem o cdigo Java e o interpretam, traduzindo-o para o cdigo nativo daquele ambiente. Esses programas interpretadores permitem que um programa Java seja traduzido, em tempo de execuo, para o cdigo nativo e seja executado no computador do usurio, com maior ou menor eficincia, porm sempre mais lentos que na mquina Java ideal. Assim, a linguagem Java, que foi inicialmente recebida com grande interesse, apresenta resultados algumas vezes decepcionantes (especialmente quanto ao desempenho) e sua aplicabilidade atualmente tem sido restrita a sistemas com requisitos de desempenho no-crticos.

17

Figura 1.5 Processando Cdigo Java. 7. CONCLUSO Com todo o avano da tecnologia com programas e aplicativos cada vez mais sofisticados no tem como dizer qual linguagem melhor ou pior e sim onde ser mais conveniente us-las, essas linguagem so usadas de forma que uma ajuda a outra, pois usamos sempre uma ou outra. Analisando as respectivas linguagens de programao podemos concluir que essas linguagens no se opem e sim se completam. Com isso podemos dizer que mesmo que no seja uma das melhores e interessantes das matrias para estudarmos, ela de suma importncia na rea da computao.

18

REFERENCIAS BIBLIOGRFICAS

Wikipdia. A enciclopdia livre: Interpretador. <http://pt.wikipedia.org/wiki/Interpretador> Acesso em 10 de Mar. 2012.

Disponvel

em:

Wikipdia. A enciclopdia livre: Compilador. em:<http://pt.wikipedia.org/wiki/Compilador> Acesso em 13 de Mar. 2012.

Disponvel

Rangel. Jos Lucas Mouro. Departamento de Informtica - PUC-RIO. Compiladores. Disponvel em: <http://www-di.inf.puc-rio.br/~rangel/comp.html> acesso em: 10 de mar. 2012. Oficina da net. Diferenas entre compiladores e interpretadores. Disponvel em:<http://www.oficinadanet.com.br/artigo/1527/diferencas_entre_compiladores_e_interpret a dores.> acesso em: 10 de mar. 2012. Dominguez. Antonio Leslie Bajuelos. Universidade de Aveiro. Linguagens e Ambientes de Programao. Introduo s Linguagens de Programao. Disponvel em: <http://www2.mat.ua.pt/lap/General/A0708/Acetatos/ACETLP01.pdf> acesso em 10 de Mar 2012.

You might also like