PL/I
PL/I (anglická výslovnost /piːˌɛlˈwʌn/, česky „pé-el jedna“ v překladu „Programovací jazyk jedna“) je v informatice univerzální programovací jazyk vytvořený firmou IBM v 60. letech 20. století. PL/I je imperativní a procedurální jazyk, který je použitelný pro zpracování hromadných dat (podniková administrativa, výpočty mezd, apod. – jinak též obchodní aplikace) i pro numerické a vědecké výpočty. Jazyk podporuje používání rekurze, strukturovaného programování, zpracování výjimek, výpočty s pohyblivou i pevnou řádovou čárkou (vhodné pro oblast finančnictví), komplexní aritmetiku, zpracování textových i bitových řetězců a složitě strukturovaných dat. Syntaxe jazyka je podobná angličtině, což je vhodné pro popisování složitých datových struktur a disponuje širokou škálou funkcí pro zpracovaní různých typů dat.
Paradigma | imperativní, strukturovaný |
---|---|
Vznikl v | 1964 |
Autor | Hursley Laboratories |
Vývojář | IBM |
Ovlivněn jazyky | COBOL, Fortran, ALGOL |
Ovlivnil jazyky | PL/M, XPL, PL/P, PL/C, IBM PL/S, PL/AS, PL/X, PL/8, EPL |
Historie
Programovací jazyk PL/I byl vyvinut společností IBM v Hursley Laboratories ve Velké Británii jako součást vyvíjeného systému IBM System/360 (představen v roce 1964). Předchozí počítače firmy IBM byly orientovány buď na zpracování hromadných dat nebo na vědecko-technické výpočty. Obchodní uživatelé používali převážně programovací jazyk Cobol, zatímco ve vědeckých kruzích se používal programovací jazyk Fortran. IBM System/360 měl být systém použitelný pro obě uvedené oblasti a jazyk PL/I byl vyvíjen jako univerzální jazyk pro tyto počítače. K dalším cílům patřila podpora strukturovaných programovacích konstrukcí odvozených z jazyka ALGOL, které COBOL ani Fortran nepodporovaly. Na vývoji PL/I se podílelo i mnoho programátorů ze Spojených států amerických, protože společnost IBM je americkou firmou. Jazyk získal významné využití v obchodní sféře ve zpracování dat. Vzniklo několik verzí tohoto programovacího jazyka. Jedním z nich je například PL/S. V IBM použili tento jazyk pro programování operačního systému u MVS na počátku 70. letech 20. století. U verze PL/8 – osmička v názvu značí, že se z 80% skládal z původního PL/I. Tato verze byla použita firmou IBM jako nástroj pro vývoj softwaru, který byl navržen pro AS/400. Dále se používal v leteckém průmyslu pro on line rezervace v systému Sabre. Původně byl psaný v Assembleru 7090. PL/8 se používal jak pro sálové počítače, také pro servery. Existují však i verze PL/I pro DOS, Microsoft Windows, AIX, OpenVMS a UNIX.
Kompilátory
Poprvé byl kompilátor PL/I implementován IBM jako součást systému S/360. První kompilátor byl napsán kompletně v assembleru a byl designován pro stroj s 64 KB paměti, kde část zabíral i operační systém. Proto byla kompilace rozdělena do velkého množství kroků, které si mezivýsledky odkládaly na disk. Později byla dokonce vyvinuta verze, která pracovala i na strojích s 16 KB. V 60. letech bylo vyvinuto několik dalších konkurenčních kompilátorů, z nichž některé implementovaly jen část jazyka PL/I.
Ukázka programu
Hello world program
Hello2: proc options(main);
put list ('Hello, world!');
end Hello2;
Současnost
Programovací jazyk PL/I se stále používá a jeho kompilátory jsou k dispozici na řadu platforem. Například existuje kompilátor pro .NET, Linux, atd.
Programovací jazyk PL/I je velmi dobrý a velmi efektivní pro vývoj, často je efektivnější ve vývoji, než dnešní programovací jazyky. Mnoho lidí, kteří se jej kdysi naučili, si jej stále přejí používat pro jeho efektivnost, promyšlenost i další dobré vlastnosti. Jazyk PL/I se dá snadno naučit a obsahuje mnoho jedinečných vlastností.
Důvodem který omezoval rozšíření jazyka PL/I zejména v minulosti je složitost implementace kompilátoru. Vytvořit kompilátor PL/I jazyka je velmi složité a časově náročné. Původní kompilátor pracoval s devíti průchody a výsledkem byl velmi efektivní binární kód. Kromě toho je nesmírně těžké parsovat zdrojový kód PL/I. Například neexistují žádná vyhrazená klíčová slova, takže programátoři mohou používat klíčová slova jako názvy proměnných či podprogramů. Protože parsery mají problém se zjištěním kontextu, často se používá technika, že pokud parser nalezne klíčové slovo v kontextu, kterému nerozumí, předpokládá, že klíčové slovo je názvem proměnné.
Externí odkazy
- Kednos PL/I for HP OpenVMS VAX and Alpha
- IBM PL/I for IBM mainframe, Linux on zSeries and Windows
- PL/I Resources
- PL/I home
- Power vs. Adventure - PL/I and C A side-by-side comparison of PL/I and C.
- PL/I for GCC The pl1gcc project is an attempt to create a native PL/I compiler using the GNU Compiler Collection.
- Languages Related to PL/I
- PL/I grammar
- Micro Focus Open PL/I