Você está na página 1de 4

Linguagem de programao

Trecho de programa na linguagem de programao C

Uma linguagem de programao um mtodo padronizado para comunicar instrues para um computador. um conjunto deregras sintticas e semnticas usadas para definir um programa de computador. Permite que um programador especifique precisamente sobre quais dados um computador vai atuar, como estes dados sero armazenados ou transmitidos e quais aes devem ser tomadas sob vrias circunstncias. Linguagens de programao podem ser usadas para expressar algoritmos com preciso. O conjunto de palavras (lexemas classificados em tokens), compostos de acordo com essas regras, constitui o cdigo fonte de um software. Esse cdigo fonte depois traduzido para cdigo de mquina, que executado pelo processador. Uma das principais metas das linguagens de programao permitir que programadores tenham uma maior produtividade, permitindo expressar suas intenes mais facilmente do que quando comparado com a linguagem que um computador entende nativamente (cdigo de mquina). Assim, linguagens de programao so projetadas para adotar uma sintaxe de nvel mais alto, que pode ser mais facilmente entendida por programadores humanos. Linguagens de programao so ferramentas importantes para que programadores eengenheiros de software possam escrever programas mais organizados e com maior rapidez. Linguagens de programao tambm tornam os programas menos dependentes de computadores ou ambientes computacionais especficos (propriedade chamada de portabilidade). Isto acontece porque programas escritos em linguagens de programao so traduzidos para o cdigo de mquina do computador no qual ser executado em vez de ser diretamente executado. Uma meta ambiciosa do Fortran, uma das primeiras linguagens de programao, era esta independncia da mquina onde seria executada.

Histria

Grace Hopper em 1984

O primeiro trabalho de linguagem de programao foi criado para um computador que existia, criado por Ada Lovelace, grande amiga de Charles Babbage. O projeto da primeira calculadora mecnica programvel foi idealizado por Charles Babbage que, aps gastar fortunas e um longo tempo, no conseguiu concretizar o projeto. A linguagem de programao ADA foi batizada em homenagem a esta primeira programadora Uma das primeiras linguagens de programao para computadores foi provavelmente Plankalkl, criada por Konrad Zuse na Alemanha Nazista,[12] mas que teve pouco ou nenhum impacto no futuro das linguagens de programao.

Interpretao e compilao

O processo da compilao

Uma linguagem de programao pode ser convertida, ou traduzida, em cdigo de mquina por compilao ou interpretada por um processo denominado interpretao. Em ambas ocorre a traduo do cdigo fonte para cdigo de mquina. Se o mtodo utilizado traduz todo o texto do programa (tambm chamado de cdigo), para s depois executar o programa, ento se diz que o programa foi compilado e que o mecanismo utilizado para a traduo um compilador (que por sua vez nada mais do que um programa). A verso compilada do programa tipicamente armazenada, de forma que o programa pode ser executado um nmero indefinido de vezes sem que seja necessria nova compilao, o que compensa o tempo gasto na compilao. Isso acontece com linguagens como Pascal e C. Se o texto do programa executado medida que vai sendo traduzido, como em Java Script, BASIC, Python ou Perl, num processo de traduo de trechos seguidos de sua execuo imediata, ento se diz que o programa foi interpretado e que o mecanismo utilizado para a traduo um interpretador. Programas interpretados so geralmente mais lentos do que os compilados, mas so tambm geralmente mais flexveis, j que podem interagir com o ambiente mais facilmente. Embora haja essa distino entre linguagens interpretadas e compiladas, as coisas nem sempre so to simples. H linguagens compiladas para um cdigo de mquina de uma mquina virtual (sendo esta mquina virtual apenas mais um software, que emula a mquina virtual sendo executado em uma mquina real), como Java(compila para a plataforma Java) e C (compila para a plataforma CLI). E tambm h outras formas de interpretar em que os cdigos fontes, ao invs de serem interpretados linha-a-linha, tm blocos "compilados" para a memria, de acordo com as necessidades, o que aumenta a performance dos programas quando os mesmos mdulos so chamados vrias vezes, tcnica esta conhecida como JIT. Como exemplo, podemos citar a linguagem Java. Nela, um compilador traduz o cdigo Java para o cdigo intermedirio (e portvel) da JVM. As JVMs originais interpretavam esse cdigo, de acordo com o cdigo de mquina do computador hospedeiro, porm atualmente elas compilam segundo a tcnica JIT o cdigo JVM para cdigo hospedeiro. A traduo tipicamente feita em vrias fases, sendo as mais comuns a anlise lxica, a anlise sinttica (ou parsing), a gerao de cdigo e a otimizao. Em compiladores tambm comum a gerao de cdigo intermedirio.

Linkeditor (Linker, Ligador)


Ligador (Vinculador no Brasil) ou Linker ou Linkeditor, em informtica, um programa que liga objectos gerados por um compilador, formando assim o ficheiro executvel final. O trabalho de um Ligador bastante simples: Estabelece a amarrao ou vinculao entre referncias mais abstratas para referncias mais concretas. Por exemplo, pega uma referncia escrita por um programador como obtenhaImposto e estabelece a vinculao para a "localizao de 726 bytes aps o incio do mdulo executvel no mdulo iosys".

Esquema de um Ligador

O processo de linkedio, em geral, um processo de dois passos. O ligador recebe como entrada um conjunto de arquivos objeto, bibliotecas e parmetros na linha de controle e produz como resultado um arquivo objeto de sada. Neste passo so criadas umas tabelas de segmentos listando todos os segmentos definidos nos arquivos-fonte e uma tabela de smbolos com todos os smbolos importados ou exportados. O ligador atribui localizaes numricas para cada smbolo, determina o tamanho e a localizao dos segmentos no espao de endereos de sada. O segundo passo usa a informao coletada no primeiro passo para controlar a realizao da linkedio de fato. Neste passo se ajustam os endereos de memria no cdigo, refletindo os endereos de segmentos realocados, e se escreve o cdigo realocado no arquivo de sada.