CORAL - CORAL
Paradigmas | procedimental , imperativo , estruturado |
---|---|
Família | ALGOL |
Projetado por | Philip Woodward , IF Currie, M. Griffiths |
Desenvolvedor | Estabelecimento do Royal Radar |
Apareceu pela primeira vez | 1964 |
Disciplina de digitação | Estático , forte |
Escopo | Lexical |
Linguagem de implementação | BCPL |
Plataforma | CTL Modular-1 , DEC Alpha , GEC , Ferranti , Honeywell , HPE Integrity Servers , Interdata 8/32, PDP-11 , SPARC , VAX , x86 |
SO | VAX / VMS ; BSD Unix , Linux , Solaris |
Influenciado por | |
ALGOL , JOVIAL , Fortran |
CORAL , abreviação de Computer On-line Real-time Applications Language, é uma linguagem de programação desenvolvida originalmente em 1964 no Royal Radar Establishment (RRE), Malvern, Worcestershire , no Reino Unido. OR era originalmente para "radar", não "tempo real". Foi influenciado principalmente por JOVIAL e, portanto , ALGOL , mas não é um subconjunto de nenhum deles.
A versão mais conhecida, CORAL 66 , foi subsequentemente desenvolvida por IF Currie e M. Griffiths sob os auspícios do Inter-Establishment Committee for Computer Applications (IECCA). Sua definição oficial, editada por Woodward , Wetherall e Gorman, foi publicada pela primeira vez em 1970.
Em 1971, o CORAL foi selecionado pelo Ministério da Defesa como a linguagem para futuras aplicações militares e, para dar suporte a isso, um programa de padronização foi introduzido para garantir que os compiladores CORAL atendessem às especificações. Este processo foi posteriormente adotado pelo Departamento de Defesa dos Estados Unidos durante a definição de Ada .
Visão geral
Coral 66 é uma linguagem de programação de propósito geral baseada no ALGOL 60 , com alguns recursos do Coral 64, JOVIAL e Fortran . Inclui tipos de registro estruturados (como em Pascal ) e suporta o empacotamento de dados em armazenamento limitado (também como em Pascal). Como Edinburgh IMP permite Inline (embutido) linguagem de montagem , e também oferece um bom tempo de execução verificação e diagnósticos. Ele é projetado para computação em tempo real e aplicativos de sistema embarcado , e para uso em computadores com capacidade de processamento limitada, incluindo aqueles limitados a aritmética de ponto fixo e aqueles sem suporte para alocação dinâmica de armazenamento.
A linguagem era um padrão entre serviços para a programação militar britânica e também foi amplamente adotada para fins civis na indústria britânica de controle e automação. Foi usado para escrever software para computadores da Ferranti e da General Electric Company (GEC) de 1971 em diante. Também existem implementações para as plataformas Interdata 8/32, PDP-11 , VAX e Alpha e HPE Integrity Servers ; para a Honeywell e para a Computer Technology Limited (CTL, posteriormente ITL) Modular-1 ; e para SPARC executando Solaris e Intel executando Linux .
A Rainha Elizabeth II enviou o primeiro e-mail de um chefe de estado do Estabelecimento Real de Sinais e Radar da ARPANET em 26 de março de 1976. A mensagem dizia "Esta mensagem para todos os usuários da ARPANET anuncia a disponibilidade na ARPANET do compilador Coral 66 fornecido por o computador GEC 4080 no Royal Signals and Radar Establishment, Malvern, Inglaterra, ... Coral 66 é a linguagem padrão de alto nível em tempo real adotada pelo Ministério da Defesa . "
Como o Coral era voltado para uma variedade de trabalhos em tempo real, ao invés do processamento geral de dados de escritório, não havia um equivalente padronizado para uma biblioteca stdio . A IECCA recomendou um pacote de entrada / saída (I / O) primitivo para acompanhar qualquer compilador (em um documento intitulado Input / Output of Character data em Coral 66 Utility Programs ). A maioria dos implementadores evitou isso produzindo interfaces Coral para as bibliotecas Fortran e, mais tarde, C existentes .
A contribuição mais significativa da CORAL para a computação pode ter sido a aplicação do controle de qualidade em compiladores comerciais . Para ter um compilador CORAL aprovado pela IECCA, e assim permitir que um compilador fosse comercializado como um compilador CORAL 66, o compilador candidato tinha que compilar e executar um conjunto padrão de 25 programas de teste e 6 programas de benchmark. O processo fazia parte do processo de aprovação do British Standard (BS) 5905. Esta metodologia foi observada e adaptada posteriormente pelo Departamento de Defesa dos Estados Unidos para a certificação de compiladores Ada .
O código-fonte de um compilador Coral 66 (escrito em BCPL ) foi recuperado e o documento Official Definition of Coral 66 do Her Majesty's Stationery Office (HMSO) foi escaneado; o escritório de patentes do Ministério da Defesa emitiu uma licença para o projeto Edinburgh Computer History para permitir que eles coloquem o código e a referência de idioma online para uso não comercial.
Variantes
Uma variante do Coral 66 chamada PO-CORAL foi desenvolvida durante o final dos anos 1970 até o início dos anos 1980 pelo British General Post Office (GPO), juntamente com GEC , STC e Plessey , para uso nos computadores de controle de central telefônica digital System X. Posteriormente, foi renomeado para BT-CORAL quando a British Telecom foi separada dos Correios. Os recursos exclusivos dessa linguagem são o foco na execução em tempo real, processamento de mensagens, limites na execução de instruções entre a espera pela entrada e a proibição de recursão para remover a necessidade de uma pilha .
Referências
links externos
- Programa de teste CORAL 66 extraído do relatório Test Responder
- Benchmarks CORAL 66
- Compilador OpenVMS CORAL 66 para servidores HPE Integrity, máquinas Alpha (AXP) e VAX (sistema CORAL 66 comercial)
- BS5905 CORAL 66 Padrão
- DEF STAN 05-47
- Biblioteca de interface PDP-11 CORAL / ASM
- Script do editor ECCE para traduzir CORAL 66 para Edinburgh IMP