Вы находитесь на странице: 1из 7

DEFINIÇÃO

Uma linguagem de programação é um método padronizado para expressar


instruções para um computador. É um conjunto de regras sintáticas e
semânticas usadas para definir um programa de computador. Uma linguagem
permite que um programador especifique precisamente sobre quais dados um
computador vai atuar, como estes dados serão armazenados ou transmitidos e
quais ações devem ser tomadas sob várias circunstâncias.
O conjunto de palavras (tokens), compostos de acordo com essas regras,
constituem o código fonte de um software. Esse código fonte é depois
traduzido para código de máquina, que é executado pelo processador.
Uma das principais metas das linguagens de programação é permitir que
programadores tenham uma maior produtividade, permitindo expressar suas
intenções mais facilmente do que quando comparado com a linguagem que um
computador entende nativamente (código de máquina). Assim, linguagens de
programação são projetadas para adotar uma sintaxe de nível mais alto, que
pode ser mais facilmente entendida por programadores humanos. Linguagens
de programação são ferramentas importantes para que programadores e
engenheiros de software possam escrever programas mais organizados e com
maior rapidez.
Linguagens de programação também tornam os programas menos
dependentes de computadores ou ambientes computacionais específicos
(propriedade chamada de portabilidade). Isto acontece porque programas
escritos em linguagens de programação são traduzidos para o código de
máquina do computador no qual será executado em vez de ser diretamente
executado. Uma meta ambiciosa do Fortran, uma das primeiras linguagens de
programação, era esta independência da máquina onde seria executada
A primeira linguagem de programação para computadores foi provavelmente
Plankalkül, criada por Konrad Zuse na Alemanha Nazista, mas que teve pouco
ou nenhum impacto no futuro das linguagens de programação.
A primeira linguagem de programação de alto nível amplamente usada foi
Fortran, criada em 1954.
Em 1957 foi criada B-0, que daria origem a Flow-Matic (1958), antecessor
imediato de COBOL, de 1959. Lisp e ALGOL foram criadas em 1958.

Classificação
As linguagens de programação podem ser classificadas e sub-classificadas de
várias formas.

Quanto ao grau de abstração


• Linguagem de programação de baixo nível, binária, composta de zeros e
uns {0,1}, ininteligível pelo ser humano e executada diretamente pela
máquina. As linguagens de baixo nível são divididas em duas categorias:
primeira geração e segunda geração.
• Linguagem de programação de médio nível, composta de símbolos muito
simples, num meio caminho entre a compreensão humana e a execução
direta pela máquina, como Assembly
• Linguagem de programação de alto nível, composta de símbolos mais
complexos, inteligível pelo ser humano e não-executável diretamente
pela máquina, no nível da especificação de algoritmos, como Pascal,
Fortran e SQL

[editar] Quanto à geração


• Primeira geração, linguagens de baixo nível. Possuem menor capacidade
de abstração. Linguagem de máquina , programas escritos em
linguagem binária ou programados diretamente em painéis

• Segunda geração: Linguagens de baixo nível . A segunda geração é


representada pela linguagem de montagem ou assembly, que é
uma notação legível por humanos para o código de máquina que
uma arquitetura de computador específica usa. A linguagem de
máquina, que é um mero padrão de bit, torna-se legível pela
substituição dos valores em bruto por símbolos chamados
mnemônicos, ou seja, enquanto um computador sabe o que a
instrução-máquina IA-21 (10110000 01100001) faz, para os
programadores é mais fácil recordar a representação equivalente
em instruções mnemônicas (MOV AL, 61h), por exemplo.

• Terceira geração, Linguagens de alto nível, procedurais e estruturadas. é


uma linguagem de programação projetada para ser facilmente entendida
pelo ser humano, incluindo coisas como variáveis com nomes. Fortran,
Pascal, e COBOL são algumas das primeiras linguagens desse tipo. A
maioria das linguagens "modernas" (BASIC, C, C++) são de terceira
geração e suportam programação estruturada.
A principal diferença entre as linguagens de terceira e quarta geração, é
que estas primeiras são linguagens procedurais que descrevem como
fazer algo, enquanto a 4GL descreve o que você quer que seja feito.
.
• Quarta geração,Linguagens de alto nível que geram programas em
outras linguagens (Java, C++), e linguagens de
consulta (SQL). São linguagens capazes de gerar código por si só, são os
chamados RAD, com o qual pode-se realizar aplicações na linguagem.
Aqui também se encontram as linguagens orientadas a objetos, tornando
possível a reutilização de partes do código para outros programas. Ex:
Visual, Natural Adabes…

• Quinta geração, linguagens lógicas (Prolog). inteligência artificial


• – são criadas bases de conhecimentos, obtidas a partir de especialistas,
e as linguagens
• fazem deduções, inferências e tiram conclusões baseadas nas bases de
conhecimento (LISP GOLDWORKS, ART, VISUAL AGE)
Interpretação e compilação
Uma linguagem de programação pode ser convertida, ou traduzida, em código
de máquina por compilação ou interpretação, que juntas podem ser chamadas
de tradução.
Se o método utilizado traduz todo o texto do programa (também chamado de
código), para só depois executar (ou rodar, como se diz no jargão da
computação) o programa, então diz-se que o programa foi compilado e que o
mecanismo utilizado para a tradução é um compilador (que por sua vez nada
mais é do que um programa). A versão compilada do programa tipicamente é
armazenada, de forma que o programa pode ser executado um número
indefinido de vezes sem que seja necessária nova compilação, o que compensa
o tempo gasto na compilação. Isso acontece com linguagens como Pascal e C.
Se o texto do programa é traduzido à medida em que vai sendo executado,
como em Javascript, Python ou Perl, num processo de tradução de trechos
seguidos de sua execução imediata, então diz-se que o programa foi
interpretado e que o mecanismo utilizado para a tradução é um interpretador.
Programas interpretados são geralmente mais lentos do que os compilados,
mas são também geralmente mais flexíveis, já que podem interagir com o
ambiente mais facilmente.
Embora haja essa distinção entre linguagens interpretadas e compiladas, as
coisas nem sempre são tão simples. Há linguagens compiladas para um código
de máquina de uma máquina virtual (sendo esta máquina virtual apenas mais
um software, que emula a máquina virtual sendo executado em uma máquina
real), como o Java e o Parrot. E também há outras formas de interpretar em
que os códigos-fontes, ao invés de serem interpretados linha-a-linha, têm
blocos "compilados" para a memória, de acordo com as necessidades, o que
aumenta a performance dos programas quando os mesmos módulos são
chamados várias vezes, técnica esta conhecida como JIT.
Como exemplo, podemos citar a linguagem Java. Nela, um compilador traduz o
código java para o código intermediário (e portável) da JVM. As JVMs originais
interpretavam esse código, de acordo com o código de máquina do
computador hospedeiro, porém atualmente elas compilam, segundo a técnica
JIT o código JVM para código hospedeiro.
A tradução é tipicamente feita em várias fases, sendo as mais comuns a
Análise léxica, a Análise sintática ou Parsing, a Geração de código e a
Otimização. Em compiladores também é comum a Geração de código
intermediário. Veja também Compilador.
EVOLUÇAO DA LINGUAGEM C++

DEFINIÇÃO
O C++ (em português lê-se "cê mais mais" ou /sê/ /máys/ /máys/) é uma
linguagem de programação de alto nível com facilidades para o uso em baixo
nível, multiparadigma e de uso geral. Desde os anos 1990 é uma das
linguagens comerciais mais populares, sendo bastante usada também por seu
grande desempenho e base de utilizadores.

História
[editar] A evolução da linguagem
O C++ foi inicialmente desenvolvido por Bjarne Stroustrup dos Bell Labs,
durante a década de 1980 com o objectivo implementar uma versão distribuída
do kernel Unix[1]. Como o Unix era escrito em C, deveria-se manter a
compatibilidade, ainda que adicionando novos recursos. Alguns dos desafios
incluíam simular a infraestrutura da comunicação entre processos num sistema
distribuído ou de memória compartilhada e escrever drivers para tal sistema.
Stroustrup percebeu que a linguagem Simula possuía características bastante
úteis para o desenvolvimento de software, mas que era muito lenta para uso
prático. Por outro lado, a linguagem BCPL era rápida, mas possuía demasiado
baixo nível, dificultando sua utilização no desenvolvimento de aplicações. A
partir de sua experiência de doutorado, começou a acrescentar elementos do
Simula no C. O C foi escolhido como base de desenvolvimento da nova
linguagem pois possuía uma proposta de uso genérico, era rápido e também
portável para diversas plataformas. Algumas outras linguagens que também
serviram de inspiração para o cientista da computação foram ALGOL 68, Ada,
CLU e ML.

Bjarne Stroustrup, idealizador da linguagem C++


Ainda em 1983 o nome da linguagem foi alterado de C with Classes para C++.
Antes implementada usando um pré-processador, a linguagem passou a exigir
um compilador próprio, escrito pelo próprio Stroustrup.[1] Novas características
foram adicionadas, como funções virtuais[1], sobrecarga de operadores e
funções[1], referências, constantes, gerenciamento manual de memória,
melhorias na verificação de tipo de dado e estilo de comentário de código de
uma linha (//). Em 1985 foi lançada a primeira edição do livro The C++
Programming Language, contendo referências para a utilização da linguagem,
já que ainda não era uma norma oficial. A primeira versão comercial foi
lançada em outubro do mesmo ano[4]. Em 1989 a segunda versão foi lançada,
contendo novas características como herança múltipla, classes abstratas,
métodos estáticos, métodos constantes e membros protegidos, incrementando
o suporte a orientação a objeto. Em 1990 foi lançado o livro The Annotated
C++ Reference Manual, que tornou-se base para o futuro padrão. Outras
adições na linguagem incluem gabaritos, tratamento de exceções, espaço de
nomes, conversão segura de tipo de dado e o tipo booleano.
Assim como a linguagem, sua biblioteca padrão também sofreu melhorias ao
longo do tempo. Sua primeira adição foi a biblioteca de E/S (I/O), e
posteriormente a Standard Template Library (STL); ambas tornaram-se
algumas das principais funcionalidades que distanciaram a linguagem em
relação a C. Criada primordialmente na HP por Alexander Stepanov[5] no início
da década de 1990 para explorar os potenciais da programação genérica, a
STL foi apresentada a um comitê unificado ANSI e ISO em 1993 à convite de
Andrew Koenig. Após uma proposta formal na reunião do ano seguinte, a
biblioteca recebe o aval do comitê.
Depois de anos de trabalho, o mesmo comitê ANSI/ISO padronizou o C++ em
1998 (ISO/IEC 14882:1998). Após alguns anos foram reportados defeitos e
imprecisões no documento, e uma correção foi lançada em 2003[6].
Por muito tempo, o C++ foi encarado como um superconjunto do C. Entretanto,
em 1999 o novo padrão ISO para a linguagem C tornou as duas linguagens
ainda mais diferentes entre si. Devido a essas incompatibilidades, muitas
empresas que desenvolvem compiladores não oferecem suporte à versão mais
recente da linguagem C.

C99
Após o processo da padronização ANSI, as especificações da linguagem C
permaneceram relativamente estáticas por algum tempo, enquanto que a
linguagem C++ continuou a evoluir. (em 1995, a Normative Amendment 1
criou uma versão nova da linguagem C mas esta versão raramente é tida em
conta.) Contudo, o padrão foi submetido a uma revisão nos finais da década de
1990, levando à publicação da norma ISO 9899:1999 em 1999. Este padrão é
geralmente referido como “C99”. O padrão foi adoptado como um padrão ANSI
em Março de 2000. As novas características do C99 incluem:
• funções em linha
• remoção de restrições sobre a localização da declaração de variáveis
(como em C++)
• adição de vários tipos de dados novos, incluindo o long long int (para
minimizar problemas na transição de 32-bits para 64-bits), um tipo de
dados boolean explicito (chamado _Bool) e um tipo complex que
representa números complexos
• vetores de dados de comprimento variável (o vetor pode ter um tamanho
diferente a cada execução de uma função, mas não cresce depois de
criado)
• suporte oficial para comentários de uma linha iniciados por //,
emprestados da linguagem C++
• várias funções de biblioteca novas, tais como snprintf()
• vários ficheiros-cabeçalho novos, tais como stdint.h
O interesse em suportar as características novas de C99 parece depender
muito das entidades. Apesar do GCC e vários outros compiladores suportarem
grande parte das novas características do C99, os compiladores mantidos pela
Microsoft e pela Borland suportam pouquíssimos recursos do C99, e estas duas
companhias não parecem estar muito interessadas em adicionar tais
funcionalidades, ignorando por completo as normas internacionais. A Microsoft
parece preferir dar mais ênfase ao C++ [1]

Relações com C
A linguagem de programação C++ foi originalmente derivada do C para
suportar programação orientada a objetos. À medida que as linguagens C e
C++ foram evoluindo independentemente, a divisão entre as duas veio a
aumentar. O padrão C99 criou um número de características que entram em
conflito. Hoje, as principais diferenças entre as duas linguagens são:
• inline - em C++, funções em linha encontram-se no espaço global
enquanto que em C encontram-se no espaço local. Por outras palavras,
isso significa que, em C++, qualquer definição de qualquer função em
linha (sem ser a respeito da sobrecarga de funções de C++) tem de estar
em conformidade com a “regra de uma definição” da linguagem C++.
Mas em C, a mesma função em linha pode ser definida de maneira
diferente em diferentes arquivos (ou ficheiros).
• A palavra-chave bool, igual à usada em C++, em C99 necessita que se
inclua o ficheiro-cabeçalho <stdbool.h> (_Bool está sempre disponível).
Padrões anteriores de C não definiam um tipo booleano e vários (e
incompatíveis) métodos foram usados para simular um tipo booleano.
Algumas características originalmente desenvolvidas em C++ também
apareceram em C. Entre elas encontram-se:
• protótipos de função (com declaração de tipos de parâmetros) e remoção
do “int” implícito.
• comentários de linha, indicados por //; comentários de linha terminam
com um carácter de nova-linha
• a palavra-chave inline
• tipagem mais forte.
Pode-se dizer que C++ foi a única linguagem entre tantas outras que obteve
sucesso como uma sucessora à linguagem C, inclusive servindo de inspiração
para outras linguagens como Java, a IDL de CORBA e C#.

REFERÊNCIAS BIBLIOGRÁFICAS:

ZENILTON, kleber G. Do Patrocńio, Linguagens de Programação. PUC Minas


Instituto de Informática. Minas Gerais. Disponível em:
<http://www.inf.pucminas.br/professores/zenilton/iac/sw.pdf >

LANGA, Sara Alvarez. Tipos de Linguagens de programação. Disponível em:


http://www.criarweb.com/artigos/685.php
Linguagens de programação. Disponível em:
<http://pt.wikipedia.org/wiki/Linguagem_de_programação> Acesso em 22 fev
2009

Linguagem C. Disponível em:


<http://pt.wikipedia.org/wiki/C_(linguagem_de_programação)> Acesso em 22
fev 2009

Linguagem C++. Disponível em:


<http://pt.wikipedia.org/wiki/Linguagem_C++> Acesso em 22 fev 2009