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
- Corbató, Fernando (1969-05-06). "PL/I mint a rendszer programozásának eszköze" . Időpont : 68–76 . Letöltve: 2012-01-23 .
- Rendszer programozási nyelvek
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 .