Easytrieve

Origem: Wikipédia, a enciclopédia livre.

EASYTRIEVE (Classic e Plus) é uma linguagem de programação de Terceira Geração, projetado para simplificar as tarefas típicas de programação, utilizada principalmente em sistemas comerciais, financeiros e administrativos para empresas e governos. É uma linguagem de programação, com recursos para acesso a arquivos e bases de dados, com comandos que trazem bastante facilidade principalmente para a geração de relatórios.

Fundamentos da Linguagem[editar | editar código-fonte]

É uma linguagem imperativa projetada para tornar mais fácil a manipulação de arquivos e produção de relatórios. É recomendado para iniciantes em técnicas de processamento de dados, pois possui uma assimilação fácil. Em geral, um programa Easytrieve pode aceitar arquivos de entrada múltiplo (SAM / ISAM / VSAM), acesso a bancos de dados (TMF / ADABAS/DB2), realizar a manipulação de arquivos (leitura / gravação / tipo), dados do processo (alfanumérico / numérico / acondicionado / binário), e invocar programas em COBOL e Assembler.

Classic v. Plus[editar | editar código-fonte]

Easytrieve (ou Easytrieve classic) é a primeira iteração da série Easytrieve e exige que o programador use uma estrutura rígida de programa e sintaxe. A segunda iteração Easytrieve era originalmente um produto independente, foi rebatizado como Easytrieve Plus. Easytrieve Plus inclui mudanças na estrutura do programa e sintaxe, o que torna muito mais poderoso e com uma iteração mais amigável com o programador. Easytrieve pode ser executado em mainframes ( z / OS , z / VM , z / VSE ), UNIX , Linux e Sistemas da Microsoft Windows

Similaridade com Cobol[editar | editar código-fonte]

A sintaxe de um programa Easytrieve é ​​muito semelhante ao COBOL. Eles compartilham muitas palavras dos mesmos tipos de dados e reservado, como "MOVE", "ADD", "SUBTRACT", "MULTIPLY", "DIVIDE", "CALL", "CASE", and "IF". Além disso, as "PROCEDURES" podem serem criadas em Easytrieve para permitir a funcionalidade modularizada.

Podemos citar algumas diferenças entre os dois, como: a definição de variável, a leitura de arquivos e geração de relatórios. Como COBOL, o Easytrieve tem muitos dos mesmos tipos de variáveis ​​(alfanumérico, numérico, binário, compactado, etc). A maior diferença é que Easytrieve não usa números de nível.

Leitura de arquivos de entrada é feita muito mais fácil em Easytrieve porque o processo é automatizado. O programador apenas referencia as variáveis ​​a serem utilizadas. Easytrieve lê automaticamente a próxima linha e a lógica se repete.

Gerar um relatório é simples em Easytrieve. O programador pode especificar cada detalhe de um relatório, incluindo seus títulos, campos, espaçamento, a ordem de classificação, quebras de controle, etc.

Estrutura da Linguagem[editar | editar código-fonte]

                 |------------------------|
  ENVIRONMENT    | PARM ...               |
  SECTION        |                        |
                 |------------------------|
  LIBRARY        | FILE ...               |
  SECTION        |   DEFINE ...           |
                 |   ...                  |
                 |------------------------|
  ACTIVITY       | JOB                    |
  SECTION        |     (STATEMENTS)       |
                 |     (JOB PROCEDURES)   |
                 | REPORT                 |
                 |     (REPORT PROCEDURES)|
                 | SORT                   |
                 |     (SORT PROCEDURES)  |
                 |  ...                   |
                 |------------------------|


Cada programa Easytrieve contém a seguinte estrutura:

  • ENVIRONMENT SECTION: Nesta parte, são estabelecidos os parâmetros para o programa. Uma área, opcional, de Ambiente (Environment), onde serão descritas as características de ambiente de instalação do Easytrieve. Também utilizada para estabilizar parâmetros do programa modificar as opções padrões de instalação e modalidade de operação.
  • LIBRARY SECTION: Uma área, opcional, de Dados (Library), onde serão descritos os dados a serem processados pelo programa, os arquivos a serem utilizados, os campos associados e também qualquer campo de área de trabalho (auxiliares).
  • ACTIVITY SECTION: Uma área, obrigatória, de Atividades (Activity), onde se define a lógica do programa, mais precisamente:
    • Lê informações dos arquivos;
    • Examina e manipula dados;
    • gravação de dados em arquivos;
    • impressão de relatórios;

Convenções da Linguagem[editar | editar código-fonte]

  • Letras Minúsculas – especificam valores que devem ser substituídos.
  • Letras Maiúsculas – Palavras-chaves. Devem ser codificadas exatamente como aparecem.
  • {chaves} - Um dos parâmetros indicados entre elas deve ser informado.
  • [colchetes] – Indica parâmetros opcionais.
  • ... - Reticências: indicam que o(s) parâmetro(s) anterior(es) a elas pode(m) ser repetido(s) várias vezes.
  • W/S - campos iniciados com W ou S indicam que a variável é auxiliar (Ex: W-VALOR ou S-VALOR)

Tipos de Variáveis[editar | editar código-fonte]

Tipo Descrição Tamanho Máximo (em bytes) Número de posições decimais
A Alfanumérico 254 Inválido
N Numérico 18 0 a 18
P Compactado 10 0 a 18
B Binário 4 0 a 10
U Compactado sem sinal 9 0 a 18

Exemplos de Código[editar | editar código-fonte]

Hello World[editar | editar código-fonte]

DISPLAY 'HELLO WORLD!'

Outra forma:

IMPRIME. PROC
DISPLAY 'HELLO WORLD!'
END-PROC.

Números Perfeitos[editar | editar código-fonte]

FILE PESSOAL
     NUMPERF      1    5   N

DIVIDENDO  W    N    5    VALUE  1
NUM        W    N    5    VALUE  0
DIVISOR    W    N    5    VALUE  1
SOMA       W    N    5    VALUE  0
QUOCIENTE  W    N    5    VALUE  0

CALCULA PROC.
   QUOCIENTE = DIVIDENDO / DIVISOR
   IF QUOCIENTE * DIVISOR = DIVIDENDO
      SOMA = SOMA + DIVISOR
   END-IF
END-PROC. 

IF SOMA > DIVIDENDO
   GO  TO  PROXIMO-NUM
END-IF

DIVISOR = DIVISOR + 1

IF DIVISOR < DIVIDENDO
   GO TO CALCULA 
END-IF

IF (SOMA = DIVIDENDO) AND (DIVIDENDO NOT EQUAL 1)
   NUM = NUM + 1
   DISPLAY 'PERFEITO ' NUM ': ' DIVIDENDO
END-IF

PROXIMO-NUM PROC.
   DIVIDENDO = DIVIDENDO + 1

   IF NUM < NUMPERF
      DIVISOR = 1
      SOMA = 0
      GO TO CALCULA 
   END-IF
END-PROC.



Programa Exemplo 001 - Programa completo[editar | editar código-fonte]

JOB DE EXECUÇÃO:

Na estrutura de um programa em Easytrieve, o que caracteriza a parte de procedimentos é um conjunto de ATIVIDADES, Cada atividade é declarada através de um statement JOB. Ou seja, é através de um JOB que executamos o nosso programa, onde definimos o tipo do programa que será executado(Easytrieve), qual será do programa a ser executado, da onde virão seus dados de entrada e onde serão gravados os dados de saída.

Job explicativo para execução do Easytrieve.

PROGRAMA EXEMPLO 001

Na imagem abaixo temos um simples exemplo de um programa em Easytrieve, onde passamos os dados de entrada no próprio JOB e gravamos na saída, onde poderá ser visto na "SYSREL".

Programa em Easytrieve.

Para melhor compreensão, veja as saídas em relatório produzidas pelo programa :

SYSREL.
SYSPRINT.

Ver também[editar | editar código-fonte]

Outras linguagens de programação de terceira geração:

Referências[editar | editar código-fonte]

Compiladores[editar | editar código-fonte]

Para Easytrieve usamos os mesmo compiladores do COBOL

Compiladores:




Liações Externas[editar | editar código-fonte]