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

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ší.