Após analisar diversas literaturas distribuídas na rede mundial de computadores e de participar de alguns cursos relacionados à linguagem de programação C/C++, resolvi escrever esse artigo para tentar a classificar a linguagem C/C++ como uma linguagem de nível intermediário.
Histórico da linguagem C/C++
A linguagem C foi criada por Dennis Ritchie, em 1972, no centro de Pesquisas da Bell Laboratories. Sua primeira utilização importante foi a reescrita do Sistema Operacional UNIX, que até então era escrito em assembly.
Em meados de 1970 o UNIX saiu do laboratório para ser liberado para as universidades. Foi o suficiente para que o sucesso da linguagem atingisse proporções tais que, por volta de 1980, já existiam várias versões de compiladores C oferecidas por várias empresas, não sendo mais restritas apenas ao ambiente UNIX, porém compatíveis com vários outros sistemas operacionais.
O que é linguagem de baixo e alto nível
Linguagem de baixo nível é o código que o computador executa diretamente. É composta de 0´s e 1´s e conhecida como linguagem binária.
Uma segunda classificação, também muito utilizada, é a que se relaciona com o nível de abstração que o usuário utiliza para escrever programas na linguagem. Baseando-nos neste critério as linguagens podem ser procedimentais ou não-procedimentais.
Linguagem de alto nível é uma linguagem que se aproxima mais da linguagem utilizada pelo ser humano. Exemplos típicos são Pascal, COBOL, C e SQL.
É importante lembrar que o Delphi e o Visual Basic são ambientes de programação e não linguagens no sentido estrito da definição. O Delphi tem por linguagem base um extensão do Pascal chamada Pascal Orientado a Objetos ou Object-Pascal e o Visual Basic tem por base uma linguagem que é um extensão do Basic de nome Visual Basic.
Afinal, o que é C/C++?
Segundo Herbert Schildt (2004 / p-04), C é freqüentemente chamada de linguagem de médio nível porque combina elementos de linguagem de alto nível com a funcionalidade da linguagem assembly.
Como uma linguagem de nível médio, C permite a manipulação de bits, bytes e endereços - os elementos básicos com os quais o computador funciona. Um código escrito em C é muito portável. Portabilidade significa que é possível adaptar um software escrito para um tipo de computador para outro. Por exemplo, você pode facilmente converter um programa escrito em DOS de tal forma a executar sob Windows, então esse programa é portável.
Já Dennis M. Ritchie (1986/ p-03) considera a sua língua como uma linguagem de relativo "baixo nível".
Conclusão
Diante do exposto e das considerações de grandes estudiosos como Herbert Schildt do criador Dennis M. Ritchie dessa linguagem de programação, que na minha humilde opinião pode ser chamada de a linguagem de programação, devemos ter cuidados em classificá-la.
Assim C/C++ é uma linguagem de nível médio.
Bibliografia
Schildt, Herbert - C: the complete reference - 2004 - 3ªED - 2004 - Person;
Brian W. Kernighan, Dennis M. Ritchie - C a linguagem de programação - 1986 - editora campus.
[2] Comentário enviado por joukim em 24/10/2006 - 14:48h
Em processadores de texto, flipe.
Calma, não estou zoando não. Estou esclarecendo. Por linguagem, entende-se sua descrição, a forma como funciona. Nesse caso, C e C++ são descritos em normas ISO que os padronizaram. Além disso tem os textos dos criadores dessas linguagens. Ou seja, qualquer linguagem é escrita usando um sistema de processamento de textos, seja lá qual for ele.
A sua pergunta na verdade deveria ser: "em qual linguagem os compiladores das linguagens C e C++ são escritos?".
Nesse caso, depende de qual compilador! Tem vários, e a grande maioria dos compiladores (inclusive de outras linguagens) é feito diretamente em C. Para isso, utilizam ferramentas auxiliares, como Lex, YACC e Bison. Uma certa parte é feita em C++. Não conheço nenhum compilador que seja feito inteiramente em linguagem de montagem (Assembly).
[3] Comentário enviado por poleto em 24/10/2006 - 18:57h
dgpinheiro,
Só uma observação. C é uma linguagem e C++ é outra. C é uma linguagem estruturada, enquando C++ é uma linguagem orientada a objetos. C++ foi desenvolvida por Bjarne Stroustrup em 1983. Apesar de a maioria dos compiladores C compilarem tanto C como C++, associar as duas como sendo uma coisa só é errado.
[4] Comentário enviado por dgpinheiro em 26/10/2006 - 17:47h
Poleto,
Cara!! Obrigado, concordo com vc, esta é uma dúvida muito freqüente e encontramos em vários livros C/C++. O seu comentário meu deu motivação para outra dica.
[5] Comentário enviado por mrclag em 08/04/2007 - 16:00h
Desconheço o livro C: the complete reference - 2004 - 3ªED - 2004 - Person da bibliografia. Provavel data errada:
C: the complete reference - 3ªED - 1995 Original Ingles
C: the complete reference - 3ªED - 1996
Tradução Portugues C Completo e Total
C: the complete reference - 4ªED - 2000 Original Ingles
ainda nao traduzido
--------------------------------------------------------------
O atual Assembler FASM é totalmente desenvolvido em Assembly, tanto que vc pode alterar algo no fonte e compilar com ele mesmo. Facilimo de aprender, sem aquele monte de besteiras do MASM.
--------------------------------------------------------------
C++ é uma linguagem com mais robustez e direcionada´à Orientação a Objetos. Discordo que seja outra linguagem à parte de C.
C++ é um conjunto de C com mais opções e mais poderosa.
Outra linguagem seria por exemplo o Pascal. O que acontece se pegarmos um pedaço de codigo pascal e tentarmos compilar em C ou C++? Nao funciona ..... O que acontece se pegarmos um pedaço de codigo C/C++ e tentarmos compilar em pascal? Nao funciona...
O que acontece se tentarmos compilar qualquer coisa de C com compilador C++? FUNCIONA !!!!!!! Entao C e C++ não sao duas linguagens, apenas alguma delas tem algo a mais do que a outra.
Claro que essa é a minha opinião.
Marcelo/Curitiba
slave0145@bol.com.br