PL/I

A Wikipédiából, a szabad enciklopédiából
PL/I
Paradigma procedurális,imperatív,strukturált
Megjelent 1964
Tervező IBM és SHARE Language Development Committee
Fejlesztő IBM
Dialektusok PL/M, XPL, PL/P, PL/C, PL/S, PL/AS, PL/X, PL/8, EPL
Hatással volt rá SP/k, B, REXX
Befolyásolt nyelvek COBOL, Fortran, ALGOL

A PL/I egy eszközökben igen gazdag, általános célú programozási nyelv. A PL/I megalkotásakor univerzális eszköz létrehozására törekedtek, és felhasználták az addig létező programnyelveken (FORTRAN, ALGOL, Cobol) szerzett tapasztalatokat. A PL/I neve is az alkotói szándékot tükrözi: Programming Language number 1. A PL/I teljes verziója az F, csökkentett verziója a D.

A PL/I jellemzői:

  • egymásba ágyazható ciklusok (do-loop), blokkok (do-end), programszerkezetek (select-when);
  • elöl- és hátul tesztelő ciklusok;
  • lokális változók az eljárásokban, függvényekben;
  • rendkívül gazdag utasításkészlet, szinte minden feladatra van gyári utasítás;
  • a legtöbb utasításnak van rövidített verziója (DCL - Declare, BIN - Binary, DEC - Decimal, PIC - Picture, PROC - Procedure stb.)
  • széleskörű alapértelmezettség, pl. Declare I real binary fixed precision(16) helyett elegendő a DCL I;
  • struktúra- és részstruktúra-másolási lehetőség like utasítással;
  • kondíciók, kivételkezelés megadása utasításokra és blokkokra;
  • többszörözés lehetősége, pl. (5)'a' = 'aaaaa';
  • adatillesztési lehetőség szóra (aligned), illetve tömörítés (unaligned);
  • széleskörű, más nyelvekben ritkán fellelhető adattípusok, pl. karakter string mellett, bitstringek, komplex számok is, bináris mellett decimális számábrázolás stb.;
  • változó hosszúságú sztringek kezelése;
  • a globális, lokális változók mellett kétfajta dinamikus osztályt ismer: a klasszikus pointer-based mellett a controlled osztályt is;
  • globális (static) változót bárhol lehet deklarálni, nem csak a legfőbb blokkban, így a globális változó a többi blokk elől rejtve marad;

A PL/I alkotásakor még nem választották külön a nyelv utasításait az eljárásoktól, így a PL/I még rengeteg olyan (pl. sztring kezelő) utasítást tartalmaz, amit ma már eljárásnak neveznénk. PL/I-re bő utasításkészlete és nyelvi gazdagsága miatt nehéz fordítóprogramot készíteni (főleg az F verzióra), így minden előnye mellett mára visszaszorult a felhasználása.