CMS-2 (linguagem de programação) - CMS-2 (programming language)
Manual do CMS-2Y referência de programadores
| |
Paradigma | Imperativo |
---|---|
Projetado por | RAND , Intermetrics |
Desenvolvedor | Computer Sciences Corporation |
Apareceu pela primeira vez | 1968 |
Influenciado por | |
CS-1 , Fortran , JOVIAL e PL / I |
CMS-2 é uma sistemas embarcados linguagem de programação utilizada pela Marinha dos Estados Unidos . Foi uma primeira tentativa de desenvolver um alto nível de linguagem de programação padronizada destina a melhorar a portabilidade de código e reutilização. CMS-2 foi desenvolvido principalmente para sistemas de dados táticos da Marinha os EUA ( NTDS ).
CMS-2 foi desenvolvido pela RAND Corporation, no início de 1970 e significa "System Monitor Compiler". O nome "CMS-2" é seguido na literatura por uma letra que designa o tipo de sistema alvo. Por exemplo, CMS-2M alvo processadores de 16 bits da marinha, tais como o AN / AYK-14 .
Conteúdo
História
CMS-2 foi desenvolvido para FCPCPAC (Fleet Center Programação de Computadores - Pacific) em San Diego, CA. Ele foi implementado pela Computer Sciences Corporation em 1968 com o auxílio do projeto de Intermetrics . O idioma continuaram a ser desenvolvidas, eventualmente, suportando uma série de computadores, incluindo os AN / UYK-7 e AN / UYK-43 computadores e UYK-20 e UYK-44.
Características da linguagem
CMS-2 foi projetado para incentivar programa modularização, permitindo a compilação independente de partes de um sistema total. A linguagem é orientada comunicado. A fonte é de forma livre e pode ser providenciado por conveniência de programação. tipos de dados incluem de ponto fixo, de ponto flutuante, booleano, caráter e status. referência direta a, e manipulação de caracteres e bit cordas é permitido. código de máquina simbólica pode ser incluído, como conhecido código directa.
estrutura do programa
Um programa CMS-2 é composto de declarações. Demonstrações são feitos de símbolos separadas por delimitadores. As categorias de símbolos incluem operadores, identificadores e constantes. Os operadores são primitivos idioma atribuído pelo compilador para operações ou definições específicas em um programa. Os identificadores são nomes exclusivos atribuídos pelo programador para unidades de dados, elementos do programa e rótulos de instrução. As constantes são valores que podem ser, cordas Hollerith, valores numéricos de status booleano ou conhecido.
CMS-2 afirmações são forma livre e terminada por um sinal de dólar. Um rótulo declaração pode ser colocado no início de uma declaração para fins de referência.
Um programa de fonte CMS-2 é composto por dois tipos básicos de declaração. instruções declarativas proporcionar informação de controlo de base para o compilador e definir a estrutura dos dados associados com um programa especial. instruções dinâmicas causar o compilador para gerar instruções de máquina executáveis (código objeto).
instruções declarativas que definem os dados para um programa são agrupados em unidades chamadas designs de dados. designs de dados consistem em definições precisas para as áreas de armazenamento de dados temporária e permanente, áreas de entrada, áreas de saída e unidades de dados especiais. As instruções dinâmicas que actuam sobre os dados ou efectuar os cálculos são agrupados em procedimentos. modelos de dados e procedimentos são ainda agrupados para formar os elementos do sistema de um programa CMS-2. O compilador combina elementos do sistema em um sistema de tempo de compilação. Um sistema de tempo de compilação pode ficar sozinho ou ser parte de um programa maior.
instruções declarativas de dados
instruções declarativas de dados fornecem o compilador com informações sobre definições de elementos de dados. Elas definem o formato, a estrutura e a ordem de elementos de dados num sistema de tempo de compilação. Os três principais tipos de dados são interruptores, variáveis e agregados.
Comuta
Switches prever a transferência de controle do programa para um local específico em um sistema em tempo de compilação. Eles contêm um conjunto de identificadores ou pontos de comutação para facilitar transferências de programas e ramos. O switch representa um endereço de programa de um rótulo de declaração ou nome do procedimento.
variáveis
Uma variável é um único pedaço de dados. Pode ser constituída por um bit, múltiplos bits ou palavras. Um valor pode ser atribuído na definição variável. Variáveis podem conter um valor constante ou mudando. tipos de dados incluem inteiros, corrigir ponto, ponto flutuante, cadeias de caracteres Hollerith, status ou Booleanos.
agregados
Tabelas contêm conjuntos de informações de forma idêntica estruturado ordenada. A unidade comum de dados de uma tabela é um item. Os itens podem ser subdivididos em campos, a menor subdivisão de uma mesa. tipos de dados permitidos contidos em campos incluem inteiro, ponto fixo, ponto flutuante, strings de Hollerith, status ou booleano. Uma matriz é uma extensão do conceito de mesa. A unidade estrutural básica de uma matriz é um item. itens de matriz conter campos como definida pelo programador.
instruções dinâmicas
instruções dinâmicas especificar as operações de processamento e resultar em geração de código executável pelo compilador. Uma instrução dinâmica consiste de um operador seguido por uma lista de operandos e operadores adicionais. Um operando pode ser um nome único, uma constante, um elemento de dados de referência, ou uma expressão.
operadores de instrução
Principais operadores CMS-2 encontram-se resumidos abaixo.
Operador | Função |
---|---|
CONJUNTO | Realizar cálculos ou atribuir um valor |
TROCA | Trocar o conteúdo de duas unidades de dados |
VAMOS PARA | Alterar o fluxo do programa ou ligar um interruptor declaração |
E SE | Expressa uma comparação ou expressão booleana para execução condicional |
VARIAR | Estabelecer um loop de programa |
ENCONTRAR | Procura uma tabela de dados |
operadores especiais
operadores especiais facilitar referências a estruturas de dados e operações sobre eles.
Operador | Função |
---|---|
POUCO | Referência a uma seqüência de bits em um elemento de dados |
CARACTERES | Faz referência a uma cadeia de caracteres |
Corad | Faz referência a um endereço de núcleo |
ABS | Obtém-se o valor absoluto de uma expressão |
COMP | Complementa uma expressão booleana |
declarações estrutura programa
As demonstrações dinâmicas que descrevem as operações de processamento de um programa são agrupados em blocos de declarações chamados procedimentos.
começando delimitador | delimitador End | propósito |
---|---|---|
SISTEMA | FIM-SYSTEM | Delimita um sistema de tempo de compilação |
SYS-DD | END-SYS-DD | Delimita um design de dados do sistema em um sistema compilado |
SYS-PROC | FIM-SYS-PROC | Delimita um procedimento de sistema em um sistema em tempo de compilação |
COL-DD | END-LOC-DD | Delimita um design de dados local em um procedimento do sistema |
PROCEDIMENTO | FIM-PROC | Delimita um procedimento em um procedimento do sistema |
EXEC-PROC | FIM-PROC | Delimita um procedimento de tarefa de estado em um procedimento do sistema (XCMS-2 somente, chamado apenas de um procedimento executivo-estado) |
FUNÇÃO | FIM-DE FUNÇÕES | Delimita uma função em um procedimento sistema |
SYS-PROC-REN | FIM-SYS-PROC | Delimita um procedimento sistema reentrante num sistema de tempo de compilação (XCMS-2) |
AUTO-DD | END-AUTO-DD | Delimita a área de dados dinâmicos em um procedimento do sistema de reentrada que devem ser alocados cada vez que o procedimento do sistema de reentrada é iniciado para execução (XCMS-2) |
CABEÇA | FIM-HEAD | Delimita um pacote de cabeçalho em um sistema em tempo de compilação |
declarações de entrada / saída de alto nível
Input / instruções de saída fornecem a comunicação com dispositivos de hardware durante a execução em um ambiente de não-tempo real sob um sistema de monitor.
Operador | Função |
---|---|
ARQUIVO | Define o ambiente e outras informações para entrada e saída |
ABRIR | Inicializa rotinas de I / O |
PERTO | Desativa um arquivo e escreve e EOF marca |
ENTRADA | Dirige uma operação de entrada de um dispositivo externo para uma zona tampão de arquivo |
SAÍDA | Dirige uma operação de saída a partir de uma área tampão ficheiro para um dispositivo externo |
FORMATO | Define a conversão desejada entre os blocos de dados externos e dados internos definições |
CODIFICAR | Dirige a transformação de elementos de dados para uma área comum, com a conversão, de acordo com um formato especificado |
DECODIFICAR | Dirige a descompactação de um espaço comum e encaminhamento à unidades de dados, conforme especificado por uma declaração formato |
ENDFILE | Coloca uma marca de fim-de-arquivo em meios de gravação apropriados |
POS | operador especial para posicionar um arquivo de fita magnética |
COMPRIMENTO | Especial operador para obter um comprimento de entrada / saída de ficha |
Compiler System Monitor 2 (CMS-2)
A Compiler System Monitor 2 (CMS-2) foi um sistema que correu na UNIVAC CP-642B ( AN / USQ-20 ). O software do sistema incluído o monitor de , compilador, bibliotecário, CP-642 do carregador, a utilidade de fita e carta de fluxo.
MS-2 do monitor
Um sistema operacional de processamento em lote que controla a execução de CMS-2 componentes e tarefas do usuário executado no computador CP-642. Ele fornece entrada / saída, instalações de biblioteca de software e ferramentas de depuração. A contabilidade de trabalho também é fornecido.
compilador CMS-2
Um compilador para as línguas CS-1 e CMS-2 que gera o código de objecto para o CP-642 , L-304, AN / UYK-7 , 1830A e 1218 /1219 computadores. Durante os anos 1970, havia diferentes versões do compilador CMS-2, dependendo de qual computador foi usado para compilar o código. Alguns código fonte teve que ser reescrito para contornar algumas funções. E as diferentes versões do CMS-2 teve problemas com as ferramentas de depuração.
compilador XCMS-2
Um extenso compilador CMS-2, adicionando recursos de linguagem para o computador / AN UYK-7. Ele só gera AN / UYK-7 código de objeto.
CMS-2 bibliotecário
Um sistema de gerenciamento de arquivos que fornece armazenamento e acesso a fonte e código objeto.
CP-642 carregadoras código objecto
Dois carregadores de código de objecto para o carregamento de código de objecto absoluta ou posição regulável.
utility tape
Um conjunto de utilitários para gerenciar dados em fita magnética.
CMS-2 FlowCharter
O software FlowCharter processa declarações FlowCharter no código fonte CMS-2 e gera um fluxograma para uma impressora de alta velocidade.
Veja também
- Ada
- AN / AYK-14
- AN / UYK-7
- AN / UYK-20
- AN / UYK-43
- AN / UYK-44
- AN / USQ-17
- AN / USQ-20
- JOVIAL
- Sistema Naval Tactical Dados
- TACPOL