NATURAL

linguagem de programação

NATURAL é uma linguagem de programação de Quarta Geração, uma geração após o Cobol, desenvolvida e distribuída pela Software AG no Brasil. É considerada Quarta Geração por trazer diversos comandos de controle automático do fluxo do programa, além de editor de tela de fácil uso, programação de eventos, dentre outras funcionalidades. É formado por dois componentes principais: o Sistema e a Linguagem.

O sistema é o veículo central de comunicação entre o usuário e todos os outros componentes do ambiente de processamento. As várias versões existentes permitem sua instalação em diversos equipamentos e sistemas operacionais.

A linguagem é estruturada e menos procedural que as linguagens convencionais.

Os objetos Natural (programas, mapas, áreas de dados, etc.) são armazenados em bibliotecas (“Libraries”), com estrutura parecida com o diretório DOS e podem ter 8 caracteres como nome máximo. Mesmo sendo objetos de diferentes tipos, não podem possuir o mesmo nome. Permite execução on-line e batch e utilitário de testes de programação.

NATURAL possui versões para MVS, UNIX, OS/2 e Windows. Pertence ao Paradigma Imperativo onde é utilizada a Programação imperativa, para saber mais sobre paradigmas de programação visite: Paradigma de programação.

Características editar

Algumas características do Natural são:

  • Linguagem de programação com acesso a diversos bancos de dados: ADABAS (Hierárquico e relacional), Oracle, DB2, etc.;
  • Utiliza diversos editores para criar programas, funções, telas pré-formatadas e áreas de dados;
  • Permite uma programação modular;
  • Utiliza funções e variáveis do sistema;
  • Permite execução on-line e batch;
  • Possui utilitário de testes de programação;
  • Possui utilitário de criação/manutenção de mensagens de erros de aplicação;
  • Qualquer aplicação pode ser facilmente portada para várias outras plataformas.

Os objetos Natural (programas, mapas, áreas de dados, etc.) são armazenados em bibliotecas (“Libraries”), com estrutura parecida com o diretório DOS e podem ter 8 caracteres como nome máximo. Mesmo sendo objetos de diferentes tipos, não podem possuir o mesmo nome.

Principais Vantagens editar

As principais vantagens do NATURAL em relação às linguagens tradicionais são:

  • facilidade de acesso a Banco de Dados (ADABAS, DB2, ORACLE, etc..);
  • velocidade de programação;
  • dinamismo em testes e manutenção de programas; e
  • menor preocupação com os demais recursos da instalação.

Diz-se "linguagem de IV geração" por possuir diversas vantagens de automatização de rotinas em relação às chamadas "III geração" (COBOL, PL/I, etc): editor de telas amigável, muito superior ao CICS; eventos (o que certamente ajudou a inspirar VB, Delphi etc.) e muitas outras inovações para a sua época. A linguagem NATURAL possui diversos controles automáticos que facilitam o controle do programa através de blocos de código acionados automaticamente. Exemplo:

READ EMPLOYEES BY NAME

AT END OF DATA
  ADD TOTAL-PARCIAL TO TOTAL
  WRITE TOTAL
END-ENDDATA

END-READ

Este bloco de código será sempre executado todas as vezes que o ponteiro de leitura alcançar o último registro selecionado, não sendo necessário que o programador se preocupe em que parte do programa este código será escrito (contanto que esteja dentro do LOOP de leitura).

Tal como o bloco no exemplo, o NATURAL possui outros que são ativados em diversas situações: no início da leitura; na quebra de seqüência da classificação da chave; antes da quebra; depois da quebra etc. Além destas características, a linguagem possui diversas outras que fizeram e fazem do NATURAL uma grande linguagem de programação.

Componentes editar

O Natural tem os seguintes componentes principais:

  • Núcleo - executa os comandos e instruções e gerência os demais componentes;
  • Compilador - de execução interativa;
  • System File - arquivo ADABAS de suporte ao Natural.
  • Módulos de interface:
    • Com o Sistema Operacional - executa todos os comandos de entrada/saída e demais comunicações;
    • Com o monitor de TP - gerência todos os recursos necessários à aplicação;
    • Com o ADABAS - executa todos os comandos ADABAS e controla vários processos de acessos/atualizações.

Tipos editar

Tem tipagem Forte, Estática e Explicita.

Formato Código Tamanho Máximo Observação
Alfanumérico A 253
Numérico N 27 Máximo de 7 decimais
Compactado P 27 Máximo de 7 decimais
Inteiro I 1, 2 ou 4 I1 – valores de -128 até 127
I2 – valores de -32768 até 32767
I4 – valores de -2147483648 até +2147483647
Data D
Hora T
Lógico L TRUE ou FALSE
Binário B 126
Controle C Atributo de controle de mapas
Ponto Flutuante F 4, 8

System File editar

O System File é um arquivo ADABAS reservado para uso do Natural, que contém:

  • Todos os programas Natural, tanto em formato fonte (programas) como em formato objeto (compilado), agrupados em bibliotecas;
  • Os módulos de definição de arquivos, ou DDM’s (Data Definition Modules), com a definição para o Natural dos arquivos ADABAS e suas userviews;
  • As mensagens de erro do Natural;
  • Os textos da função “Help”.

Programas editar

Os programas Natural, fontes e objetos são identificados por nomes com formação igual aos nomes das bibliotecas, ou seja, até 8 caracteres, sendo o primeiro alfabético. Fontes e objetos podem (mas não devem) ter nomes diferentes.

Os programas fontes são formados por linhas de até 72 posições, numeradas por 4 dígitos. Esta numeração é gerada pelo Natural durante a criação do programa e é usada pelo Compilador e Editores, e tem importantes funções lógicas dos programas.

Dentro das linhas, a disposição das instruções (statements ou comandos de programas) é livre, não havendo instruções nem parâmetros posicionais. Os comentários podem ser incluídos de duas formas:

  • Caracter “*” ou “**” : toda linha que for iniciada com estes caracteres será considerada comentário (* todo o conteúdo da linha é um comentário);
  • Sequência de Caracteres “/*” : tudo que estiver à direita será considerada um comentário (/* tudo a direita, será comentário);

Exemplo:

0010 * Estas duas linhas (0010 e 0020)
0020 ** são comentários.
0030 FORMAT LS=80 /* Bem como esta parte da linha (0030)
.
.
0200 END

As instruções “END” ou “ . “ indicam fim de programa.

Interface Natural editar

Ao entrar no Natural, nos é apresentada a seguinte tela:  

Compiladores editar

Aqui tem um exemplo: AG Natural 6.3

Exemplos editar

Um exemplo de código de um "Hello, World!"

* Hello World in NATURAL
WRITE 'Hello World!'
END

Um exemplo de código com a implementação de um programa nessa linguagem que encontre os quatro primeiros números perfeitos:

DEFINE DATA LOCAL
1 #LIMITE    (N16)
1 #CONT      (N16)
1 #X         (N16)
1 #SOMA      (N16)
1 #I         (N16)
1 #RESULTADO (N16)
1 #RESTO     (N16)
END-DEFINE
RESET INITIAL #CONT #X
DISPLAY 'QUANTOS NUMEROS PERFEITOS VOCE DESEJA ENCONTRAR?'
INPUT #LIMITE
DISPLAY 'OS NUMEROS PERFEITOS SAO:'
REPEAT
      ADD 1 TO #X
      MOVE 0 TO #SOMA
      FOR #I 1 #X-1 1
         DIVIDE #X INTO #I GIVING #RESULTADO REMAINDER #RESTO
         IF #RESTO = 0
            ADD #I TO #SOMA
         END-IF
      END-FOR
      IF SOMA = X
            DISPLAY #X
            ADD 1 TO #CONT
      END-IF
UNTIL CONT=LIMITE
END-REPEAT
END

Ligações externas editar