NATURAL
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
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
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
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
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
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
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
Ao entrar no Natural, nos é apresentada a seguinte tela:

Compiladores
Aqui tem um exemplo: AG Natural 6.3
- http://www.softwareag.com/Corporate/products/natural/download/default.asp Em falta ou vazio
|título=(ajuda)
Exemplos
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
- «NATURALs product home page» (em inglês)
- «Adabas and Natural Developer Community» (em inglês)
- «Free Natural Software for developers» (em inglês)