ADA. O maior esforço de projeto da História



A linguagem Ada é o resultado do mais extensivo e dispendioso esforço de projeto de uma linguagem já realizado. Ela foi desenvolvida para o Departamento de Defesa dos EUA, de modo que a situação de seu ambiente de computação foi fundamental para determinar sua forma.

Em 1974, mais da metade das aplicações de computadores no Departamento de Defesa era composta de siste­mas incorporados (que são aqueles cujo hardware é incorporado no dispositivo que ele controla ou para o qual fornece serviços). Os custos de software elevavam-se rapidamente; primeiro, por causa da crescente complexidade dos sistemas. Mais de 450 diferentes lin­guagens de programação estavam em uso para projetos do Departamento de Defesa, e nenhuma delas era pa­dronizada. Todo contratante de defesa podia definir uma linguagem nova e dife­rente para cada contrato. Por causa dessa proliferação de linguagens, os softwares de aplicação raramente eram reusados. Além disso, nenhuma ferramenta de desenvolvimento de software era criada (porque, usualmente, eles eram dependentes da linguagem). Um número enorme de linguagens estava em uso, mas nenhuma era, de fato, adequada para aplicações de sistemas incorporados. Por essas razões, o Exército, a Marinha e a Força Aérea propuseram, cada um independentemente, o desenvolvimento de uma linguagem de alto nível para sistemas incorporados.

Percebendo esse interesse generalizado, Malcolm Currie, Diretor de Pesquisas e Engenharia de Defesa, em janeiro de 1975, formou o High-Order Language Working Group (HOLWG), ini­cialmente chefiado pelo Tenente-coronel William Whitaker, da Força Aérea. O HOLWG ti­nha representantes de todos os serviços militares e contatos com a Inglaterra, com a França e com a Alemanha Ocidental. A incumbência deles era:

>> Identificar os requisitos para uma nova linguagem de alto nível para o Departamento de Defesa.
>> Avaliar as linguagens existentes para determinar se havia uma candidata viável.
>> Recomendar a adoção ou a implementação de um conjunto mínimo de lingua­gens de programação.

Em abril de 1975, o HOLWG produziu o documento de requisitos Strawman (Homem de Palha) para a nova linguagem (Departamento de Defesa, 1975a), distribuído às unida­des militares, às agências federais, aos representantes industriais e universitários seleciona­dos e a partes interessadas na Europa.

Ao documento Strawman seguiu-se Woodenman (Homem de Madeira) (Depanamen­to de Defesa, 1975b) em agosto de 1975 e pelo Tinman (Homem de Lata) (Depanamento de Defesa, 1976) em janeiro de 1976. O documento Tinman foi considerado um conjunto de requisitos completo para uma linguagem com as características desejadas. O autor prin­cipal desses documentos foi David Fisher, do Instituto para Análise de Defesa. O grupo de participantes no esforço foi grande, chegando a mais de 200, com representantes de mais de 40 organizações fora do Departamento de Defesa. Em janeiro de 1977, o documento Tinman foi substituído pelo documento de requisitos lronman (Homem de Ferro) (Depanamento de Defesa, 1977), que é quase equivalente, em termos de conteúdo, mas tinha um formato bastante diferen­te.

Em abril de 1977, o documento lronman foi usado como base para um pedido irres­trito de propostas, o qual, depois, tornou-se público, transformando, então, a Ada na pri­meira linguagem a ser projetada pelo contrato competitivo. Em julho de 1977, quatro das contratantes proponentes - a Softech, a SRl lnternational, a Cii HoneywelVBull e a lntermetrics - foram escolhidas para produzir, independentemente e em paralelo, a Fase I do projeto da linguagem. Todas as quatro propostas de projeto resultantes basearam-se no Pascal.

Quando a Fase I de seis meses encerrou-se em fevereiro de 1978, houve uma avalia­ção de dois meses por 400 voluntários em 80 equipes de revisão espalhadas pelo mundo todo. Duas finalistas acabaram escolhidas para continuar a Fase 2 do desenvolvimento - a lntermetrics e a Cii HoneywelVBull.

Em junho de 1978, a iteração seguinte do documento de requisitos, lançou-se Steelman (Homem de Aço) (Depanamento de Defesa, 1978).

Ao final da Fase 2, organizou-se outra avaliação de dois meses, e, em maio de 1979, o projeto de linguagem da Cii Honeeywell foi escolhido como vencedor. Curiosamente, a vencedora era a única concorrente estrangeira entre as quatro finalistas. A equipe de proje­to da Cii HoneywelVBull, da França, era chefiada por Jean Ichbiah.

Na primavera de 1979, Jack Cooper, do Controle de Materiais da Marinha (Navy Materiel Command)recomendou o nome para a nova linguagem, Ada, adotado desde en­tão. Augusta Ada Byron (1815-1851), a Condessa de Lovelace, matemática e filha do poeta Lord Byron, geralmente é reconhecida como sendo a primeira programadora do mundo. Ela trabalhou com Charles Babbage em seus computadores mecânicos, os Difference and Analytical Engines, escrevendo programas para diversos processos numéricos.

A Fase 3 do projeto de design da Ada iniciou-se com a escolha do vencedor. O projeto e o fundamento lógico para ele foram publicados pela ACM em seu SIGPLAN Notices (ACM, 1979) e distribuídos para um universo de leitores de mais de 10.000 pessoas. Uma confe­rência de teste e de avaliação públicos realizou-se em outubro de 1979 em Boston, com representantes de mais de 100 organizações dos Estados Unidos e da Europa. Em novem­bro, recebeu-se mais de 500 relatórios sobre a linguagem oriundos de 15 diferentes países. A maioria dos relatórios sugeria pequenas modificações em vez de mudanças drásticas e de rejeições definitivas. Baseando-se nos relatórios sobre a linguagem, a versão seguinte da especificação dos requisitos, o documento Stoneman (Homem de Pedra) (Departamento de Defesa, 1980a), foi lançado em fevereiro de 1980.

Uma versão revisada do projeto da linguagem concluiu-se em julho de 1980 e aceita como MIL-STD 1815, o Ada Language Reference Manual padrão. O número 1815 foi escolhi­do porque trata-se o ano de nascimento de Augusta Ada Lovelace. Outra versão revisada do Ada Language Reference Manual foi lançada em julho de 1982. Em 1983, o American Natio­nal Standards lnstitute padronizou a Ada. Essa versão oficial "final" é descrita em Goos e Hartmanis (1983). O design da linguagem Ada permaneceu, então, congelado durante pelo menos cinco anos.

ADA 95

Um esforço de revisão da Ada iniciou-se em 1988 com o estabelecimento do projeto Ada 9X pelo Ada Joint Program Office. O projeto Ada 9X teve três fases: a determinação dos requi­sitos para a linguagem revista; o desenvolvimento real da definição da linguagem revisada e a transição para o uso da linguagem revisada. Os requisitos foram publicados no Departa­mento de Defesa (1990).

Os requisitos concentraram-se em quatro áreas da linguagem: capacidades de inter­face (especialmente para interfaces gráficas), suporte para programação orientada a obje­to, bibliotecas mais flexíveis e melhores mecanismos de controle para dados compartilhados.

O tipo de mecanismo de derivação da Ada 83 é estendido para permitir a adição de novos componentes àqueles derivados de um tipo-pai marcado. Isso resulta na herança, um ingrediente-chave nas linguagens de programação orientadas a objeto. A vinculação dinâ­mica de chamadas de subprogramas a definições de subprogramas é realizada através do dispatching de subprograma, que se baseia no valor do tag de tipos derivados por meio de tipos da classe ampla. Esse recurso proporciona o polimorfismo, outro recurso principal da programação orientada a objeto.

O mecanismo de rendezvous da Ada 83 oferecia somente meios desajeitados de com­partilhar dados entre processos concorrentes. Necessitou-se introduzir uma nova tarefa para controlar o acesso a dados compartilhados. Os objetos protegidos da Ada 95 oferecem uma alternativa atraente para isso. Os dados compartilhados são encapsulados em uma estrutura sintática que controla todo o acesso aos dados, por rendezvous, ou por chamada de subprograma.

Acredita-se amplamente que a popularidade da Ada 95 caia, porque o Departamento de Defesa não mais exige seu uso em sistemas militares.

PROJETO ADA 2005

Como parte de um contínuo processo de otimização, a linguagem Ada é revista periodicamente para garantir que as correções e os novos recursos são realmente válidos. Esse processo é patrocinado pela International Organization for Standardization (ISO), mais especificamente pelo Ada Rapporteur Group (ARG) um comitê técnico do Working Group for Ada WG9. O ARG inclui os implementadores do compilador Ada, usuários e programadores. O ARG está trabalhando atualmente num conjunto de propostas para melhoramentos chamado Ada 2005.

O processo de desenvolvimento do Ada 2005 tem muitos objetivos. Uma das metas e remover limitações e aumentar a usabilidade dos recursos existentes. Outros objetivos são de aumentar a capacidade da orientação à objetos e de se adequar as necessidades das comunidades de programação real-time e high-integrity. Existe também uma avidez de padronizar certas extensões de implementação comum e de expandir um conjunto de bibliotecas pré-definidas. Aumentar a compatibilidade certamente é uma importante necessidade.