Rendszer programozási nyelv - System programming language

A rendszer programozási nyelv egy programozási nyelv használható rendszer programozás ; az ilyen nyelveket rendszerszoftverek írására tervezték , amelyek általában eltérő fejlesztési megközelítéseket igényelnek az alkalmazásszoftverekhez képest. Edsger Dijkstra utal ezekre a nyelvet Machine orientált, nagy rendelés nyelvek , illetve Mohol .

Az általános célú programozási nyelvek általában az általános funkciókra összpontosítanak, hogy a nyelven írt programok ugyanazt a kódot használhassák különböző platformokon. Ilyen nyelvek például az ALGOL és a Pascal . Ez az általános minőség általában annak az árának az ára, hogy megtagadják a gép belső működéséhez való közvetlen hozzáférést, és ez gyakran negatív hatással van a teljesítményre.

A rendszernyelveket ezzel szemben nem a kompatibilitás, hanem a teljesítmény és az egyszerű hardver elérése érdekében tervezték, miközben továbbra is magas szintű programozási koncepciókat biztosítanak, mint például a strukturált programozás . Ilyen például az SPL és az ESPOL , amelyek mind szintaxisukban hasonlóak az ALGOL -hoz, de a saját platformjukhoz vannak hangolva. Mások több platformon átívelnek , de úgy vannak kialakítva, hogy a hardver közelében működjenek, mint például a BLISS , a JOVIAL és a BCPL .

Egyes nyelvek a rendszer és az alkalmazás tartományait ölelik fel, áthidalva a különbségeket e felhasználások között. A kanonikus példa a C , amelyet széles körben használnak mind a rendszer, mind az alkalmazás programozásához. Néhány modern nyelv is ezt teszi, például a Rust és a Swift .

Jellemzők

Az alkalmazási nyelvekkel ellentétben a rendszerprogramozási nyelvek jellemzően közvetlenebb hozzáférést kínálnak a gép fizikai hardveréhez: ebben az értelemben egy archetipikus rendszerprogramozási nyelv volt a BCPL . A rendszer programozási nyelveiből gyakran hiányoznak a beépített bemeneti/kimeneti (I/O) lehetőségek, mivel egy rendszer-szoftver projekt általában saját I/O mechanizmusokat fejleszt ki, vagy az alapvető monitor I/O vagy képernyőkezelési lehetőségekre épít. A rendszerprogramozásban és az alkalmazásprogramozásban használt nyelvek közötti különbség idővel elmosódott a PL/I , C és Pascal széles körű népszerűségével .

Történelem

A legkorábbi rendszerszoftvert elsősorban az összeszerelési nyelven írták, mert nem volt alternatíva, de olyan okok miatt is, mint az objektumkód hatékonysága, a fordítási idő és a könnyű hibakeresés. A rendszerprogramozásra olyan alkalmazási nyelveket használtak, mint a FORTRAN , bár általában még mindig szükség volt bizonyos rutinokra, amelyek összeállítási nyelven íródtak.

Középszintű nyelvek

A középszintű nyelvek "rendelkeznek a magasabb szintű nyelv szintaxisának és lehetőségeinek nagy részével, de ezen a nyelven közvetlen hozzáférést is biztosítanak (és az összeszerelési nyelvet is biztosítják) a gépi szolgáltatásokhoz." A legkorábbi ilyen volt ESPOL a Burroughs mainframe 1960, majd a Niklaus Wirth „s PL360 (első írásbeli egy Burroughs rendszer, mint a kereszt fordító ), amelyek az általános szintaxisa ALGOL 60 , de akinek utasításokat közvetlenül manipulált CPU regiszterek és a memória . A kategória egyéb nyelvei közé tartozik a MOL-360 és a PL/S .

Például egy tipikus PL360 utasítás R9 := R8 and R7 shll 8 or R6, amely azt jelzi, hogy a 8 -as és 7 -es regisztereket együtt kell és kell szerkeszteni, az eredmény bal bitet eltolva balra, az eredmény vagy a 6 -os regiszter tartalmával, és a végeredmény nyilvántartás 9.

Magasabb szintű nyelvek

Míg a PL360 az összeszerelési nyelv szemantikai szintjén van, a rendszerprogramozási nyelv egy másik fajtája magasabb szemantikai szinten működik, de rendelkezik speciális kiterjesztésekkel, amelyek alkalmassá teszik a nyelvet rendszerprogramozásra. Ennek a nyelvnek a korai példája az LRLTRAN, amely kiterjesztette a Fortran -t karakter- és bitmanipulációs funkciókkal, mutatókkal és közvetlenül címzett ugrástáblákkal.

Ezt követően olyan nyelveket fejlesztettek ki, mint a C, ahol a funkciók kombinációja elegendő volt a rendszerszoftver írásához, és olyan fordítót lehetett kifejleszteni, amely hatékony objektumprogramokat generált szerény hardveren. Egy ilyen nyelv általában kihagy olyan funkciókat, amelyeket nem lehet hatékonyan megvalósítani, és kisszámú, gépfüggő funkciót ad hozzá, amelyek szükségesek az egyes hardverképességek eléréséhez; az inline összeszerelési kódot, például a C nyilatkozatát gyakran használják erre a célra. Bár sok ilyen nyelvet fejlesztettek ki, a C és a C ++ maradt fenn. asm

A rendszerprogramozási nyelv (SPL) a HP 3000 számítógépsorozat egy bizonyos nyelvének neve is , amelyet az operációs rendszeréhez, a HP Multi-Programming Executive (MPE) és a rendszereszoftver más részeihez használnak.

Főbb nyelvek

Nyelv Kezdeményező Születési dátum Befolyásolta Használt
ESPOL Burroughs Corporation 1961 ALGOL 60 MCP
PL/I IBM , MEGOSZT 1964 ALGOL, FORTRAN, néhány COBOL Multik
PL/S IBM 1960 -as évek PL/I OS/360
PL360 Niklaus Wirth 1968 ALGOL 60 ALGOL W
Pascal Niklaus Wirth 1970 ALGOL W Apollo Computer Aegis, Apple MacApp
BOLDOGSÁG Carnegie Mellon Egyetem 1970 ALGOL-PL/I VMS (adagok)
Nyelv a rendszerfejlesztéshez (LSD) R. Daniel Bergeron, et.al. (Brown Egyetem) 1971 PL/I
C Dennis Ritchie 1972 BCPL , B (programozási nyelv) A legtöbb operációs rendszermag , beleértve a Unix-szerű rendszereket is
ÚJDONSÁG Burroughs 1970 -es évek ESPOL, ALGOL MCP
PL/8 IBM 1970 -es évek PL/I AIX
PL-6 Honeywell, Inc. 1970 -es évek PL/I CP-6
SYMPL CDC 1970 -es évek KEDÉLYES NOS alrendszerek, a legtöbb fordító, FSE szerkesztő
C ++ Bjarne Stroustrup 1979 C , Simula C ++ alkalmazások
Ada Jean Ichbiah , S. Tucker Taft 1983 ALGOL 68 , Pascal , C ++ , Java , Eiffel Beágyazott rendszerek, operációs rendszer -kernelek, fordítók, játékok, szimulációk, CubeSat , légiforgalmi irányítás, avionika
D Digitális Mars 2001 C ++ Több domain
Nim Andreas Rumpf 2006 Python , Ada , Lisp , Oberon , C ++ , Modula-3 , Object Pascal Játékok, fordítók, operációs rendszer -kernelek, alkalmazásfejlesztés, beágyazott rendszerek stb.
Rozsda Mozilla kutatás 2010 C ++ , Haskell , Erlang , Ruby Szervó , Redox OS
Gyors Apple Inc. 2014 C , Objective-C , D , Rozsda macOS , iOS , watchOS és tvOS alkalmazásfejlesztés

Lásd még

Megjegyzések

Hivatkozások

Külső linkek

Ez a cikk a Free On-line Dictionary of Computing 2008. november 1-je előtt vett anyagán alapul, és a GFDL 1.3-as vagy újabb verziójának "relicensing" feltételei közé tartozik .