PL/I
Megjelenés
Ez a szócikk nem tünteti fel a független forrásokat, amelyeket felhasználtak a készítése során. Emiatt nem tudjuk közvetlenül ellenőrizni, hogy a szócikkben szereplő állítások helytállóak-e. Segíts megbízható forrásokat találni az állításokhoz! Lásd még: A Wikipédia nem az első közlés helye. |
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á | COBOL, Fortran, ALGOL |
Weboldal |
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éles kö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éles kö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.