next up previous contents
Next: Organização básica de programas Up: Apêndices Previous: Exercícios   Sumário


Programação C

A linguagem de programação C foi desenvolvida no início dos anos 70 nos Laboratórios AT&T Bell, nos Estados Unidos. A motivação para que o autor de C, Dennis Ritchie, criasse uma nova linguagem de programação foi o desenvolvimento do sistema operacional Unix. C é uma ferramenta tão básica que praticamente todas as ferramentas suportadas por Unix e o próprio sistema operacional foram desenvolvidas em C.

C acompanhou o ritmo da distribuição do sistema operacional Unix, que foi amplamente divulgado e livremente distribuído na década de 70. Apesar de haver compiladores para linguagens mais ``tradicionais'' na distribuição Unix, aos poucos C foi ganhando simpatizantes e adeptos. Atualmente, não há dúvidas de que C é uma das linguagens de programação de maior aceitação para uma ampla classe de aplicações.

Um dos grandes atrativos da linguagem C é o balanço atingido entre características próximas da arquitetura de computadores e características de linguagens de programação com alto nível de abstração. O ascendente mais remoto de C, Algol 60, desenvolvida por um comitê internacional, foi uma linguagem que buscava um alto grau de abstração, com estruturas modulares e sintaxe regular. Por Algol ser ``abstrata demais'', variantes surgiram que buscavam aproximar aquela linguagem um pouco mais da máquina, tais como CPL (Combined Programming Language), desenvolvida na Inglaterra. Esta linguagem era ainda muito complexa, o que dificultava seu aprendizado e a implementação de bons compiladores. BCPL (Basic CPL) buscava capturar apenas as características principais de CPL, e B (desenvolvida por Ken Thompson nos Laboratórios Bell, em 1970) levava este objetivo ainda mais adiante. Entretanto, estas linguagens ficaram tão ``básicas'' que tinham pouca aplicação direta. Ritchie reincorporou algumas características de alto nível à B, tais como suporte a tipos de dados, para criar a linguagem C.

A simplicidade de C não restringe, no entanto, a potencialidade de suas aplicações. Blocos desempenhando tarefas muito complexas podem ser criados a partir da combinação de blocos elementares, e este mecanismo de combinação de partes pode se estender por diversos níveis. Esta habilidade de construir aplicações complexas a partir de elementos simples é um dos principais atrativos da linguagem.

O sucesso de C foi tão grande que diversas implementações de compiladores surgiram, sendo que nem todos apresentavam o memso comportamento em pontos específicos, devido a características distintas arquiteturas de computadores ou a ``extensões'' que se incorporavam à linguagem. Para compatibilizar o desenvolvimento de programas em C, o Instituto Norte-Americano de Padrões (ANSI) criou em 1983 um comitê com o objetivo de padronizar a linguagem. O resultado deste trabalho foi publicado em 1990, e foi prontamente adotado como padrão internacional. Além de padronizar aspectos básicos da linguagem, ANSI-C também define um conjunto de rotinas de suporte que, apesar de não ser parte integrante da linguagem, deve ser sempre fornecido pelo compilador.



Subsections
next up previous contents
Next: Organização básica de programas Up: Apêndices Previous: Exercícios   Sumário
Ivan L. M. Ricarte 2003-02-14