Systémový programovací jazyk - System programming language
Programovací jazyk je programovací jazyk používá pro programování systému ; takové jazyky jsou navrženy pro psaní systémového softwaru , který obvykle vyžaduje odlišné vývojové přístupy ve srovnání s aplikačním softwarem. Edsger Dijkstra tyto jazyky označuje jako strojově orientované jazyky vyššího řádu , neboli mohl .
Programovací jazyky pro obecné účely se obvykle zaměřují na obecné funkce, které umožňují programům napsaným v jazyce používat stejný kód na různých platformách. Mezi příklady takových jazyků patří ALGOL a Pascal . Tato obecná kvalita obvykle přichází za cenu odepření přímého přístupu k interním funkcím stroje, což má často negativní vliv na výkon.
Naproti tomu systémové jazyky nejsou navrženy pro kompatibilitu, ale pro výkon a snadný přístup k základnímu hardwaru a přitom stále poskytují koncepce programování na vysoké úrovni, jako je strukturované programování . Mezi příklady patří SPL a ESPOL , které jsou v syntaxi podobné ALGOL, ale jsou naladěny na příslušné platformy. Jiné jsou napříč platformami, ale jsou navrženy tak, aby fungovaly v blízkosti hardwaru, například BLISS , JOVIAL a BCPL .
Některé jazyky obcházejí systémovou a aplikační doménu a překlenují propast mezi těmito způsoby použití. Kanonickým příkladem je C , který se široce používá pro systémové i aplikační programování. Některé moderní jazyky to také dělají, jako je Rust a Swift .
Funkce
Na rozdíl od aplikačních jazyků nabízejí systémové programovací jazyky obvykle přímější přístup k fyzickému hardwaru stroje: archetypickým systémovým programovacím jazykem v tomto smyslu byl BCPL . Systémové programovací jazyky často postrádají vestavěná zařízení pro vstup/výstup (I/O), protože projekt systémového softwaru obvykle vyvíjí vlastní I/O mechanismy nebo staví na základních zařízeních pro monitorování I/O nebo obrazovky. Rozdíl mezi jazyky používanými pro programování systému a programování aplikací se postupem času stíral s rozšířenou popularitou PL/I , C a Pascal .
Dějiny
Nejstarší systémový software byl napsán v jazyce sestavení především proto, že neexistovala žádná alternativa, ale také z důvodů, včetně účinnosti objektového kódu, času kompilace a snadného ladění. Pro programování systému byly použity aplikační jazyky, jako je FORTRAN , ačkoli obvykle stále vyžadovaly, aby byly některé rutiny napsány v jazyce sestavení.
Jazyky střední úrovně
Jazyky střední úrovně „mají velkou část syntaxe a vybavení jazyka vyšší úrovně, ale také poskytují přímý přístup v jazyce (stejně jako poskytuje jazyk sestavení) k funkcím stroje“. Nejstarší z nich byl ESPOL na Burroughs sálové počítače v asi 1960, následovaný Niklaus Wirth ‚s PL360 (první písemná na systému Burroughs jako cross kompilátor ), který měl obecnou syntaxi ALGOL 60 , avšak jejichž příkazy přímo manipuloval registry CPU a paměti . Mezi další jazyky v této kategorii patří MOL-360 a PL/S .
Typickým příkazem PL360 je například to R9 := R8 and R7 shll 8 or R6, že registry 8 a 7 by měly být spojeny společně, výsledek posunut o 8 bitů doleva, výsledek toho nebo o obsah registru 6 a konečný výsledek umístěn do zaregistrovat 9.
Jazyky vyšší úrovně
Zatímco PL360 je na sémantické úrovni montážního jazyka, jiný druh systémového programovacího jazyka funguje na vyšší sémantické úrovni, ale má specifická rozšíření navržená tak, aby byl jazyk vhodný pro systémové programování. Raným příkladem tohoto druhu jazyka je LRLTRAN, který rozšířil Fortran o funkce pro manipulaci se znaky a bitem, ukazatele a přímo adresované skokové tabulky.
Následně byly vyvinuty jazyky jako C, kde kombinace funkcí byla dostatečná pro zápis systémového softwaru, a mohl být vyvinut kompilátor, který generoval efektivní objektové programy na skromném hardwaru. Takový jazyk obecně vynechává funkce, které nelze efektivně implementovat, a přidává malý počet funkcí závislých na stroji potřebných pro přístup ke konkrétním hardwarovým schopnostem; K tomuto účelu se často používá vložený kód sestavení , například příkaz C. Přestože bylo vyvinuto mnoho takových jazyků, přežily C a C ++ .
asm
System Programming Language (SPL) je také název konkrétního jazyka na počítačových řadách HP 3000 , používaných pro jeho operační systém HP Multi-Programming Executive (MPE), a dalších částí jeho systémového softwaru.
Hlavní jazyky
| Jazyk | Původce | Datum narození | Ovlivněn | Používá |
|---|---|---|---|---|
| ESPOL | Burroughs Corporation | 1961 | ALGOL 60 | MCP |
| PL/I | IBM , SDÍLET | 1964 | ALGOL, FORTRAN, nějaký COBOL | Multics |
| PL/S | IBM | Šedesátá léta | PL/I | OS/360 |
| PL360 | Niklaus Wirth | 1968 | ALGOL 60 | ALGOL W. |
| Pascal | Niklaus Wirth | 1970 | ALGOL W. | Apollo Computer Aegis, Apple MacApp |
| BLAHO | Univerzita Carnegie Mellon | 1970 | ALGOL-PL/I | VMS (porce) |
| Language for Systems Development (LSD) | R. Daniel Bergeron, et.al. (Brown University) | 1971 | PL/I | |
| C | Dennis Ritchie | 1972 | BCPL , B (programovací jazyk) | Většina jader operačního systému , včetně unixových systémů |
| NOVINKA | Burroughs | 70. léta 20. století | ESPOL, ALGOL | MCP |
| PL/8 | IBM | 70. léta 20. století | PL/I | AIX |
| PL-6 | Honeywell, Inc. | 70. léta 20. století | PL/I | CP-6 |
| SYMPL | CDC | 70. léta 20. století | ŽOVIÁLNÍ | Subsystémy NOS , většina překladačů, editor FSE |
| C ++ | Bjarne Stroustrup | 1979 | C , Simula | C ++ aplikace |
| Ada | Jean Ichbiah , S. Tucker Taft | 1983 | ALGOL 68 , Pascal , C ++ , Java , Eiffel | Vestavěné systémy, jádra OS, kompilátory, hry, simulace, CubeSat , řízení letového provozu, avionika |
| D | Digitální Mars | 2001 | C ++ | Více domén |
| Nim | Andreas Rumpf | 2006 | Python , Ada , Lisp , Oberon , C ++ , Modula-3 , Object Pascal | Hry, kompilátory, jádra OS, vývoj aplikací, vestavěné systémy atd. |
| Rez | Mozilla Research | 2010 | C ++ , Haskell , Erlang , Ruby | Servo , Redox OS |
| Rychlý | Apple Inc. | 2014 | C , Cíl-C , D , Rez | vývoj aplikací pro macOS , iOS , watchOS a tvOS |
Viz také
Poznámky
Reference
externí odkazy
- Corbató, Fernando (06.05.1969). „PL/I jako nástroj pro programování systému“ . Datamation : 68-76 . Citováno 2012-01-23 .
- Systémové programovací jazyky
Tento článek vychází z materiálu převzatého z Free On-line Dictionary of Computing před 1. listopadem 2008 a začleněn pod podmínky „relicencování“ GFDL , verze 1.3 nebo novější.