4.3 - Declaração e Estrutura
O PL/I oferece uma estrutura de código bastante flexível. Você pode declarar variáveis, procedimentos e pacotes praticamente em qualquer parte do programa. Essa liberdade exige organização, mas permite escrever programas modulares, reutilizáveis e fáceis de manter.
PROCEDURE, OPTIONS(MAIN) e Rótulos
PROCEDURE, OPTIONS(MAIN) e RótulosUm programa em PL/I é composto por um ou mais blocos PROCEDURE. Cada procedimento tem um rótulo (label) que serve como identificador e ponto de entrada. O bloco é encerrado com END <rótulo>;.
Para indicar o ponto de entrada principal do programa (aquele que será executado), usa-se a cláusula OPTIONS(MAIN).
HELLO: PROCEDURE OPTIONS(MAIN);
PUT SKIP LIST('Olá, PL/I!');
END HELLO;Explicando:
HELLO:→ nome (rótulo) do procedimentoPROCEDURE→ início do bloco de códigoOPTIONS(MAIN)→ define que este é o programa principalEND HELLO;→ encerra o bloco
Outros procedimentos no mesmo arquivo podem ser usados como sub-rotinas ou funções auxiliares, sem a cláusula OPTIONS(MAIN).
PACKAGE e Modularização
PACKAGE e ModularizaçãoPara organizar o código em módulos reutilizáveis, o PL/I oferece o conceito de PACKAGE. Um package agrupa declarações de tipos, variáveis e procedimentos que podem ser exportados e importados por outros arquivos.
UNIT02: PACKAGE EXPORTS(sample);
SAMPLE: PROCEDURE OPTIONS(MAIN);
/* código do programa */
END SAMPLE;
END UNIT02;Explicando:
PACKAGE→ define um móduloEXPORTS(sample)→ indica que o procedimentosamplepode ser usado fora do packageEND UNIT02;→ encerra o package
Isso permite criar bibliotecas reutilizáveis, como funções matemáticas, utilitários de texto ou acesso a dados.
Sintaxe Básica: DECLARE / DCL, END
DECLARE / DCL, ENDAs declarações de variáveis usam DECLARE ou seu atalho DCL. Cada linha termina com ponto-e-vírgula.
Atributos comuns:
FIXED DECIMAL(p,s)→ números com casas decimaisFIXED BINARY(n)→ inteirosCHARACTER(n)→ stringsVARYING/VARYINGZ→ strings variáveis ou terminadas em zeroPOINTER/BASED→ ponteiros e alocação dinâmicaINIT/VALUE→ inicialização ou constante
Cada bloco iniciado com PROCEDURE ou PACKAGE deve ser encerrado com END <rótulo>;.
Exemplo Completo
O que esse exemplo mostra:
Um
PACKAGEque encapsula tudoDois
PROCEDUREs:SAMPLE(principal) eADDTWO(função auxiliar)Uso de
BYVALUEpara passagem de parâmetrosUso de
RETURN,PUT SKIP,EDITeSTOP
Agora que você entendeu como declarar variáveis, procedimentos e agrupar tudo em pacotes, já tem na mão a base estrutural de qualquer programa em PL/I. Aprender PROCEDURE/OPTIONS(MAIN) e PACKAGE é garantia de escrever código modular, reaproveitável e fácil de depurar em ambiente mainframe. Com a sintaxe básica de DECLARE/DCL e END bem assimilada, o próximo passo é explorar as estruturas de controle (IF, DO, SELECT) e o tratamento de erros via ON-units — assunto que veremos na próxima seção
Last updated