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 criarFile 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