DOMÍNIOS DE PROGRAMAÇÃO
Computadores têm sido aplicados a uma infinidade de áreas, desde controlar usinas nucleares até disponibilizar jogos eletrônicos em telefones celulares. Por causa dessa diversidade de uso, linguagens de programação com objetivos muito diferentes têm sido desenvolvidas. Nesta seção, discutimos brevemente algumas das áreas de aplicação dos computadores e de suas linguagens associadas.
Aplicações científicas
Os primeiros computadores digitais, que apareceram nos anos 1940, foram inventados e usados para aplicações científicas. Normalmente, aplicações científicas têm estruturas de dados relativamente simples, mas requerem diversas computações de aritmética de ponto flutuante. As estruturas de dados mais comuns são os vetores e matrizes; as estruturas de controle mais comuns são os laços de contagem e as seleções. As primeiras linguagens de programação de alto nível inventadas para aplicações científicas foram projetadas para suprir tais necessidades. Sua competidora era a linguagem assembly – logo, a eficiência era uma preocupação primordial. A primeira linguagem para aplicações científicas foi o Fortran. O ALGOL 60 e a maioria de seus descendentes também tinham a intenção de serem usados nessa área, apesar de terem sido projetados também para outras áreas relacionadas. Para aplicações científicas nas quais a eficiência é a principal preocupação, como as que eram comuns nos anos 1950 e 1960, nenhuma linguagem subsequente é significativamente melhor do que o Fortran, o que explica por que o Fortran ainda é usado.
Aplicações empresariais
O uso de computadores para aplicações comerciais começou nos anos 1950. Computadores especiais foram desenvolvidos para esse propósito, com linguagens especiais. A primeira linguagem de alto nível para negócios a ser bem-sucedida foi o COBOL (ISO/IEC, 2002), com sua primeira versão aparecendo em 1960. O COBOL ainda é a linguagem mais utilizada para tais aplicações. Linguagens de negócios são caracterizadas por facilidades para a produção de relatórios elaborados, maneiras precisas de descrever e armazenar números decimais e caracteres, e a habilidade de especificar operações aritméticas decimais. Poucos avanços ocorreram nas linguagens para aplicações empresariais fora do desenvolvimento e evolução do COBOL. Logo, este livro inclui apenas discussões limitadas das estruturas em COBOL.
Inteligência Artificial
Inteligência Artificial (IA) é uma ampla área de aplicações computacionais caracterizada pelo uso de computações simbólicas em vez de numéricas. Computações simbólicas são aquelas nas quais símbolos, compostos de nomes em vez de números, são manipulados. Além disso, a computação simbólica é feita de modo mais fácil por meio de listas ligadas de dados do que por meio de vetores. Esse tipo de programação algumas vezes requer mais flexibilidade do que outros domínios de programação. Por exemplo, em algumas aplicações de IA, a habilidade de criar e de executar segmentos de código durante a execução é conveniente. A primeira linguagem de programação amplamente utilizada desenvolvida para aplicações de IA foi a linguagem funcional LISP (McCarthy et al., 1965), que apareceu em 1959. A maioria das aplicações de IA desenvolvidas antes de 1990 foi escrita em LISP ou em uma de suas parentes próximas. No início dos anos 1970, entretanto, uma abordagem alternativa a algumas dessas aplicações apareceu – programação lógica usando a linguagem Prolog (Clocksin e Mellish, 2003). Mais recentemente, algumas aplicações de IA têm sido escritas em linguagens de sistemas como C. Scheme (Dybvig, 2003), um dialeto de LISP, e Prolog são introduzidas nos Capítulos 15 e 16, respectivamente.
Programação de sistemas
O sistema operacional e todas as ferramentas de suporte à programação de um sistema de computação são coletivamente conhecidos como seu software de sistema. Software de sistema são aplicativos usados quase continuamente e, dessa forma, devem ser eficientes. Além disso, tais aplicativos devem ter recursos de baixo nível que permitam aos aplicativos de software se comunicarem com dispositivos externos a serem escritos.
Nos anos 1960 e 1970, alguns fabricantes de computadores, como a IBM, a Digital e a Burroughs (agora UNISYS), desenvolveram linguagens especiais de alto nível orientadas à máquina para software de sistema que rodassem em suas máquinas. Para os computadores mainframes da IBM, a linguagem era PL/S, um dialeto de PL/I; para a Digital, era BLISS, uma linguagem apenas um nível acima da assembly; para a Burroughs, era o ALGOL Estendido.
O sistema operacional UNIX é escrito quase todo em C (ISO, 1999), o que o fez relativamente fácil de ser portado, ou movido, para diferentes máquinas. Algumas das características de C fazem que ele seja uma boa escolha para a programação de sistemas. C é uma linguagem de baixo nível, têm uma execução eficiente e não sobrecarrega o usuário com muitas restrições de segurança. Os programadores de sistemas são excelentes e não acreditam que precisam de tais restrições. Alguns programadores que não trabalham com a programação de sistemas, no entanto, acham C muito perigoso para ser usado em sistemas de software grandes e importantes.
Software para a Web
A World Wide Web é mantida por uma eclética coleção de linguagens, que vão desde linguagens de marcação, como XHTML, que não é de programação, até linguagens de programação de propósito geral, como Java. Dada a necessidade universal por conteúdo dinâmico na Web, alguma capacidade de computação geralmente é incluída na tecnologia de apresentação de conteúdo. Essa funcionalidade pode ser fornecida por código de programação embarcado em um documento XHTML. Tal código é normalmente escrito com uma linguagem de scripting, como JavaScript ou PHP. Existem também algumas linguagens similares às de marcação que têm sido estendidas para incluir construções que controlam o processamento de documentos.
Clique no link abaixo para responder as perguntas da atividade de fixação: