PL/I (alternativamente PL/1, lê-se pê-ele-um) significa Programming Language One e é uma linguagem de programação desenvolvida pela IBM em meados de 1960. A previsão da IBM era que a linguagem fosse utilizada em ciências, inteligência artificial e negócios. Por um período de tempo foi a principal linguagem ensinada na Universidade de Michigan Dearborn. Entretanto, a popularidade declinou nos anos recentes, devido à introdução de línguagens de programação mais modernas voltadas para o ambiente Mainframe.
Sua principal função é o processamento/manipulação de dados; suporta recursão e alocação dinâmica.
Por que PL/I ainda é relevante?
Multifuncionalidade: Pode ser usada tanto para aplicações comerciais quanto científicas.
Integração com o z/OS: Excelente desempenho em ambientes mainframe, com suporte nativo a arquivos VSAM, DB2, e até interfaces com CICS.
Recursos modernos: Mesmo sendo antiga, PL/I possui recursos como tratamento de exceções (ON UNDEFINEDFILE, ON ENDFILE etc.) que nem COBOL nativamente oferece da mesma forma.
Legado ativo: Muitas instituições financeiras e governamentais ainda possuem sistemas escritos em PL/I, exigindo manutenção e evolução constante.
Rodou ok
Observe a penultima linha - Hello World em PL/1 ! - rodou ok
Sua principal função é o processamento/manipulação de dados; suporta recursão e alocação dinâmica.
Por que PL/I ainda é relevante?
Multifuncionalidade: Pode ser usada tanto para aplicações comerciais quanto científicas.
Integração com o z/OS: Excelente desempenho em ambientes mainframe, com suporte nativo a arquivos VSAM, DB2, e até interfaces com CICS.
Recursos modernos: Mesmo sendo antiga, PL/I possui recursos como tratamento de exceções (ON UNDEFINEDFILE, ON ENDFILE etc.) que nem COBOL nativamente oferece da mesma forma.
Legado ativo: Muitas instituições financeiras e governamentais ainda possuem sistemas escritos em PL/I, exigindo manutenção e evolução constante.
Hello World
Esse é um exemplo de um JCL de Hello World que podemos criar File Edit Edit_Settings Menu Utilities Compilers Test Help
───────────────────────────────────────────────────────────────────────────────
EDIT ADCD.LIB.JCL($$PLII) - 01.04 Columns 00001 00072
Command ===> Scroll ===> CSR
****** ***************************** Top of Data ******************************
000001 //PL10001 JOB 'COMPILA E LOAD DE PROGRAMA PL/1',
000002 // NOTIFY=&SYSUID,REGION=0M
000003 //* ------------------------------------------------------------------
000004 //* PROGRAMA PL/1 DE EXEMPLO
000005 //* ------------------------------------------------------------------
000006 //STEP1 EXEC IBMZCPLG
000007 //PLI.STEPLIB DD DSN=IEL370.SIBMZCMP,DISP=SHR
000008 //SYSIN DD *
000009 Hello: procedure options (main);
000010 put skip list ('Hello World em PL/1 !');
000011 end Hello;
000012 //*
****** **************************** Bottom of Data ****************************
Rodou ok
Display Filter View Print Options Help
-------------------------------------------------------------------------------
SDSF OUTPUT DISPLAY PL10001 JOB00038 DSID 2 LINE 0 COLUMNS 02- 81
COMMAND INPUT ===> SCROLL ===> CSR
********************************* TOP OF DATA **********************************
J E S 2 J O B L O G -- S Y S T E M S Y S 1 -- N
00.59.03 JOB00038 ---- SUNDAY, 20 APR 2025 ----
00.59.03 JOB00038 IRR010I USERID IBMUSER IS ASSIGNED TO THIS JOB.
00.59.03 JOB00038 ICH70001I IBMUSER LAST ACCESS AT 00:53:18 ON SUNDAY, APRIL 2
00.59.03 JOB00038 $HASP373 PL10001 STARTED - INIT 1 - CLASS A - SYS SYS1
00.59.03 JOB00038 IEF403I PL10001 - STARTED - TIME=00.59.03
00.59.06 JOB00038 IEF404I PL10001 - ENDED - TIME=00.59.06
00.59.06 JOB00038 $HASP395 PL10001 ENDED
------ JES2 JOB STATISTICS ------
20 APR 2025 JOB EXECUTION DATE
12 CARDS READ
655 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
36 SYSOUT SPOOL KBYTES
0.05 MINUTES EXECUTION TIME
1 //PL10001 JOB 'COMPILA E LOAD DE PROGRAMA PL/1',
// NOTIFY=&SYSUID,REGION=0M
//* ------------------------------------------------------------------
//* PROGRAMA PL/1 DE EXEMPLO
//* ------------------------------------------------------------------
IEFC653I SUBSTITUTION JCL - 'COMPILA E LOAD DE PROGRAMA PL/1',NOTIFY=I
2 //STEP1 EXEC IBMZCPLG
3 XXIBMZCPLG PROC LNGPRFX='IBMZ.V3R7M0',LIBPRFX='CEE',
XX SYSLBLK=3200,PLANG=EDCPMSGE,GOPGM=GO
XX*
XX********************************************************************
XX* Licensed Materials - Property of IBM
XX* 5655-H31
XX* (C) Copyright IBM Corp. 1999, 2007 All Rights Reserved
XX*
XX* US Government Users Restricted Rights - Use, duplication or
XX* disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
XX*
XX********************************************************************
XX*
XX* IBM Enterprise PL/I for z/OS
XX* Version 3 Release 7 Modification 0
Observe a penultima linha - Hello World em PL/1 ! - rodou ok
Display Filter View Print Options Help
-------------------------------------------------------------------------------
SDSF OUTPUT DISPLAY PL10001 JOB00038 DSID 106 LINE 231 COLUMNS 02- 81
COMMAND INPUT ===> SCROLL ===> CSR
ENTRY POINT AND ALIAS SUMMARY:
NAME: ENTRY TYPE AMODE C_OFFSET CLASS NAME STATUS
CEESTART MAIN_EP 31 00000000 B_TEXT
***** E N D O F R E P O R T *****
z/OS V1 R10 BINDER 00:59:04 SUNDAY APRIL 20, 2025
BATCH EMULATOR JOB(PL10001 ) STEP(STEP1 ) PGM= IEWL PROCEDURE(LKED )
IEW2008I 0F03 PROCESSING COMPLETED. RETURN CODE = 0.
----------------------
MESSAGE SUMMARY REPORT
----------------------
TERMINAL MESSAGES (SEVERITY = 16)
NONE
SEVERE MESSAGES (SEVERITY = 12)
NONE
ERROR MESSAGES (SEVERITY = 08)
NONE
WARNING MESSAGES (SEVERITY = 04)
NONE
INFORMATIONAL MESSAGES (SEVERITY = 00)
2008 2278
**** END OF MESSAGE SUMMARY REPORT ****
Hello World em PL/1 !
******************************** BOTTOM OF DATA ********************************








0 comentários:
Enviar um comentário