System programming language

A system programming language is a programming language used for system programming; such languages are designed for writing system software, which usually requires different development approaches when compared with application software. Edsger Dijkstra referred to these languages as machine oriented high order languages, or mohol.[1]

General-purpose programming languages tend to focus on generic features to allow programs written in the language to use the same code on different platforms. Examples of such languages include ALGOL and Pascal. This generic quality typically comes at the cost of denying direct access to the machine's internal workings, and this often has negative effects on performance.

System languages, in contrast, are designed not for compatibility, but for performance and ease of access to the underlying hardware while still providing high-level programming concepts like structured programming. Examples include ESPOL and SPL, both of which are similar to ALGOL in syntax but tuned to their respective platforms. Others are cross-platform but designed to work close to the hardware, like BLISS, JOVIAL and BCPL.

Some languages straddle the system and application domains, bridging the gap between these uses. The canonical example is C, which is used widely for both system and application programming. Some modern languages also do this such as Rust and Swift.

Features

In contrast with application languages, system programming languages typically offer more-direct access to the physical hardware of the machine: an archetypical system programming language in this sense was BCPL. System programming languages often lack built-in input/output (I/O) facilities because a system-software project usually develops its own I/O mechanisms or builds on basic monitor I/O or screen management facilities. The distinction between languages used for system programming and application programming became blurred over time with the widespread popularity of PL/I, C and Pascal.

History

The earliest system software was written in assembly language primarily because there was no alternative, but also for reasons including efficiency of object code, compilation time, and ease of debugging. Application languages such as FORTRAN were used for system programming, although they usually still required some routines to be written in assembly language.[2]

Mid-level languages

Mid-level languages "have much of the syntax and facilities of a higher level language, but also provide direct access in the language (as well as providing assembly language) to machine features."[2] The earliest of these was ESPOL on Burroughs mainframes in about 1960, followed by Niklaus Wirth's PL360 (first written on a Burroughs system as a cross compiler), which had the general syntax of ALGOL 60 but whose statements directly manipulated CPU registers and memory. Other languages in this category include MOL-360 and PL/S.

As an example, a typical PL360 statement is R9 := R8 and R7 shll 8 or R6, signifying that registers 8 and 7 should be and'ed together, the result shifted left 8 bits, the result of that or'ed with the contents of register 6, and the final result placed into register 9.[3]

Higher-level languages

While PL360 is at the semantic level of assembly language, another kind of system programming language operates at a higher semantic level, but has specific extensions designed to make the language suitable for system programming. An early example of this kind of language is LRLTRAN,[4] which extended Fortran with features for character and bit manipulation, pointers, and directly addressed jump tables.

Subsequently, languages such as C were developed, where the combination of features was sufficient to write system software, and a compiler could be developed that generated efficient object programs on modest hardware. Such a language generally omits features that cannot be implemented efficiently, and adds a small number of machine-dependent features needed to access specific hardware abilities; inline assembly code, such as C's asm statement, is often used for this purpose. Although many such languages were developed,[1] C and C++ are the ones which survived.

Major languages

Language Originator Birth date Influenced by Used for
JOVIAL System Development Corporation 1960 ALGOL 58 Many systems, mostly military
ESPOL Burroughs Corporation 1961 ALGOL 60 MCP
PL/I IBM, SHARE 1964 ALGOL, FORTRAN, some COBOL Multics
PL/S IBM 1960's PL/I OS/360 and successors
PL360 Niklaus Wirth 1968 ALGOL 60 ALGOL W
Pascal Niklaus Wirth 1970 ALGOL W Apollo Computer Aegis, Apple MacApp, UCSD p-System
BLISS Carnegie Mellon University 1970 ALGOL-PL/I[5] VMS (portions)
Language for Systems Development (LSD) R. Daniel Bergeron, et al. (Brown University) 1971 PL/I
C Dennis Ritchie 1972 BCPL, B Most operating system kernels, including Unix-like systems
System Programming Language (SPL) Hewlett-Packard 1972 ALGOL 60, ESPOL HP 3000 system software, including MPE
NEWP Burroughs 1970's ESPOL, ALGOL MCP
PL.8 IBM 1970's PL/I compiler development, AIX (versions 1 and 2 only), IBM mainframe firmware
PL-6 Honeywell, Inc. 1970's PL/I CP-6
SYMPL CDC 1970's JOVIAL NOS subsystems, most compilers, FSE editor
C++ Bjarne Stroustrup 1979 C, Simula GUI applications (Qt, Windows, etc.), games (Unreal Engine)
S3 ICL 1980s ALGOL 68 ICL VME
Ada Jean Ichbiah, S. Tucker Taft 1983 ALGOL 68, Pascal, C++, Eiffel Military,[6] aerospace[7] mass transportation,[8] high-integrity computation, and operating system kernels[9][10][11]
D Digital Mars 2001 C++
Nim Andreas Rumpf 2008 Python, Ada, Lisp, Oberon, C++, Modula-3, Object Pascal
Go Google 2009 Oberon, C, Pascal Kubernetes, Docker
Mojo Modular Inc.[12] 2023 C, C++, Python, Rust, Swift, Zig
Rust Mozilla Research[13] 2010 C++, Haskell, Erlang, Ruby Servo, Redox OS, Linux kernel
Swift Apple Inc. 2014 C, Objective-C, D, Rust macOS, iOS, watchOS, and tvOS app development [a]
Zig Andrew Kelley 2016 C, C++, LLVM IR, Go, Rust

See also

Notes

References

  1. ^ a b van der Poel, W. L.; Maarssen, L. A., eds. (27–31 August 1973). Machine oriented higher level languages. IFIP Working Conference on Machine Oriented Higher Level Languages (MOHL). Trondheim, Norway: International Federation for Information Processing. Proceedings published 1974.
  2. ^ a b Sammet, Jean (October 1971). "Brief Survey of Languages Used for Systems Implementation". ACM SIGPLAN Notices. 6 (9): 1–19. doi:10.1145/942596.807055.
  3. ^ Wirth, Niklaus (1968). "PL360, A Programming Language for the 360 Computers". Journal of the ACM. 15 (1): 37–74. doi:10.1145/321439.321442.
  4. ^ Mendicino, Sam F.; Hughes, Robert A.; Martin, Jeanne T.; McMahon, Frank H.; Ranelletti, John E.; Zwakenberg, Richard G. (1968). "The LRLTRAN Compiler". Communications of the ACM. 11 (11): 747–755. doi:10.1145/364139.364154.
  5. ^ Wulf, W. A.; Russell, D. B.; Haberman, A. N. (December 1971). "BLISS: A Language for Systems Programming". Communications of the ACM. 14 (12): 780–790. CiteSeerX 10.1.1.691.9765. doi:10.1145/362919.362936.
  6. ^ "Case Study, BAE Systems Eurofighter Typhoon" (PDF).
  7. ^ "What programming languages are used for equipment onboard aircraft?".
  8. ^ "TGVweb - the TGV Signaling System".
  9. ^ "Ironclad".
  10. ^ "M2OS. RTOS with simple tasking support for small microcontrollers".
  11. ^ "Jgrivera67/HiRTOS". GitHub.
  12. ^ "Modular Inc." www.modular.com. Retrieved 2024-03-25.
  13. ^ "Mozilla Research Projects". Archived from the original on 2014-01-04.

Read other articles:

American musician This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) A major contributor to this article appears to have a close connection with its subject. It may require cleanup to comply with Wikipedia's content policies, particularly neutral point of view. Please discuss further on the talk page. (April 2022) (Learn how and when to remove this template message) This biography of a livin...

 

KyakhtaКя́хта Brasão Coordenadas 50° 21' N 106° 27' E País  Rússia República Buriácia População     Cidade (2010) 20 041 Fuso horário   Verão (DST) IRKT (UTC+9) IRKT (UTC+9) Localização da República da Buriácia na Rússia. Kyakhta ou Khyagt[1] (em russo: Кя́хта) é uma cidade da Rússia pertencente à República da Buriácia. Está situada nas margens do rio Kyakhta perto da fronteira Mongólia-Rússia. Além da cidade...

 

United States historic placePriestly's Hydraulic RamU.S. National Register of Historic Places Location in IdahoShow map of IdahoLocation in United StatesShow map of the United StatesNearest cityHagerman, IdahoCoordinates42°44′35″N 114°50′28″W / 42.743°N 114.841°W / 42.743; -114.841[a]Arealess than one acreBuilt1890ArchitectWilliam W. PriestlyNRHP reference No.75000631[1]Added to NRHPFebruary 13, 1975 One of the waterfall streams at...

الإمبراطور تشي ليو زوان   معلومات شخصية تاريخ الميلاد 138 م تاريخ الوفاة 26 يوليو 146 م. سبب الوفاة سم  الإقامة لويانغ الجنسية الصين العرق هان الديانة بوذي الأب ليو هونغ الأم السيدة تشان عائلة أسرة هان الشرقية منصب سبقه الإمبراطور تشونغ خلفه الإمبراطور هوان الحياة العملية...

 

Schématisation du procédé d'osmose à pression retardée. L'eau douce (W1) traverse la membrane (M) par osmose (O) vers l'eau salée (W2). La pression (P) induite par ce passage est utilisée pour faire tourner une turbine et donc produire un courant électrique L'osmose à pression retardée (aussi désignée par le sigle PRO, de l'anglais pressure-retarded osmosis) est une méthode de séparation membranaire basée sur l'osmose et utilisée pour produire de l'énergie en utilisant de...

 

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada November 2022. Baatarsuren ShuudertsetsegLahirBaatarsuren Togtokhbayar18 Januari 1971 (umur 52)MongoliaPekerjaanPenulis, pembuat film, aktivis kemanusiaanKewarganegaraanMongoliaGenreNovel remaja, novel sejarahTahun aktif1995–sekarangPasanganB.Boldkhuyag ...

American Civil War Union Army officer (1805–1871) This article is about the Union officer in the American Civil War. For the Confederate officer in the same war, see Robert H. Anderson. For other uses, see Robert Anderson (disambiguation). Robert AndersonBorn(1805-06-14)June 14, 1805Louisville, Kentucky, United StatesDiedOctober 26, 1871(1871-10-26) (aged 66)Nice, FrancePlace of burialWest Point CemeteryService/branchUnited States ArmyUnion ArmyYears of service1825–1863RankBriga...

 

Pushing of heterosexual norms onto LGBT culture Part of a series onLGBT topics       LesbianGayBisexualTransgender Sexual orientation and gender Aromanticism Asexuality Gray asexuality Biology Bisexuality Pansexuality Demographics Environment Gender fluidity Gender identity Gender role Gender variance Homosexuality Intersex Non-heterosexual Non-binary gender Queer Queer heterosexuality Questioning Sexual identity Sex–gender distinction Trans man Trans woman Tra...

 

Coordenadas: 37° 56' N 12° 20' E Favignana    Comuna   Localização FavignanaLocalização de Favignana na Itália Coordenadas 37° 56' N 12° 20' E Região Sicília Província Trapani Características geográficas Área total 37 km² População total 4 106http:[1] hab. Densidade 111 hab./km² Altitude 6 m Outros dados Código ISTAT 081009 Código cadastral D518 Código postal 91023 Prefixo telefnico 0923 Sítio www.comune.favignana.tp.it...

Coordenadas: 39° 33' N 0° 19' O MassalfassarMasalfasar    Município   Símbolos Bandeira Brasão de armas Gentílico masalfasarí, -fassina; masalfasarino, -rina Localização Localização do município de Massalfassar na Comunidade ValencianaLocalização do município de Massalfassar na Comunidade Valenciana MassalfassarLocalização de Massalfassar na Espanha Coordenadas 39° 33' N 0° 19' O País Espanha Comunidade autónoma Comunidade Valencia...

 

В Википедии есть статьи о других людях с фамилией Деникин. Иван Ефимович Деникин майор пограничной стражи Иван Ефимович Деникин Дата рождения 1807(1807) Место рождения д. Ореховка (Саратовская губерния) Дата смерти 1885(1885) Принадлежность  Российская империя Род войск ...

 

Group of abandoned settlements in northwest Syria This article is about archaeological sites in Syria. For the album by The Future Sound of London, see Dead Cities (album). Ancient Villages of Northern SyriaUNESCO World Heritage SiteView of SerjillaLocationLimestone Massif, SyriaIncludes Jebel Sem'an Qal'at Sem'an Kafr Nabu Sinkhar Jebel Zawiyé Ba'uda Rouweiha Jebel al-A'la Qalb Lozé Jebel Barisha Deirouné Jebel Wastani Kafr Aqareb CriteriaCultural: (iii)(iv)(v)Reference1348Inscriptio...

Philippine television show Basta Every Day HappyTitle cardGenreTalk showDirected byLouie IgnacioPresented by Gladys Reyes Donita Rose Alessandra de Rossi Boy Logro Country of originPhilippinesOriginal languageTagalogNo. of episodes171ProductionExecutive producerGladys HernandoProduction locationPhilippinesCamera setupMultiple-camera setupRunning time30-45 minutesProduction companyGMA Entertainment TVOriginal releaseNetworkGMA NetworkReleaseMay 12, 2014 (2014-05-12) –January 5, 201...

 

19th century US philosophical movement This article is about the 19th-century American movement. For other uses, see Transcendence (disambiguation). Part of a series onSpirituality Outline Religion History Timeline Traditional Elite religion Jewish Merkabah Kabbalah Hasidism Christian Catholic Mysticism Sufism Folk religion Modern Buddhist modernism New religious movement Secular spirituality Spiritual but not religious Syncretism Spiritual experience Lived religion Mystical experience Oceani...

 

ДеревняПриянки 53°51′00″ с. ш. 40°06′18″ в. д.HGЯO Страна  Россия Субъект Федерации Рязанская область Муниципальный район Кораблинский Сельское поселение Кипчаковское История и география Часовой пояс UTC+3:00 Население Население ↘83[1] человека (2010) Цифровые и...

American actress Christina HendricksHendricks in March 2014BornChristina Rene Hendricks (1975-05-03) May 3, 1975 (age 48)Knoxville, Tennessee, U.S.CitizenshipAmericanBritishOccupationsActressmodelYears active1994–presentWorksFull listHeight5 ft 8 in (1.73 m)[1]Spouse Geoffrey Arend ​ ​(m. 2009; div. 2019)​PartnerGeorge Bianchini (engaged)AwardsFull list Christina Rene Hendricks (born May 3, 1975) is an American...

 

Beauxbatons Academie voor Toverkunst Plaats uit Harry Potter Originele naam Beauxbatons Academy of Magic Functie School Locatie  Frankrijk Eigenaars Schoolhoofd Olympe Mallemour Bewoners Fleur Delacour en andere leerlingen Vanaf Harry Potter en de Vuurbeker Portaal    Harry Potter Beauxbatons Academie voor Toverkunst (Engels: Beauxbatons Academy of Magic) is een toverschool uit de Harry Potterboekenserie van J.K. Rowling, gevestigd in het Paleis van de Beauxbatons in de buurt v...

 

Conflict between NATO Western forces and the Taliban This article is about the American war in Afghanistan. For the Soviet war in Afghanistan, see Soviet–Afghan War. For other uses, see War in Afghanistan. For the global military campaign resulting from the 9/11 attacks, see War on terror.This article may be too long to read and navigate comfortably. Please consider splitting content into sub-articles, condensing it, or adding subheadings. Please discuss this issue on the article's talk pag...

Grabstein aus dem Jahr 1769 in der Kirche von Saint-Boès, der den Namen des Abts eines Laienklosters trägt Ein Laienkloster (französisch abbaye laïque) war in Frankreich im westlichen Pyrenäenvorland eine religiöse Institution des Mittelalters und der frühen Neuzeit. Der erste Teil des Doppelworts, „Laien“, zeigt an, dass die Einrichtungen keinem Orden angehörten und ihre Mitglieder weder Kleriker noch Mönche waren. Grundlage für die Errichtung eines Laienklosters war die Eintre...

 

South Korean cyclist In this Korean name, the family name is Seo. Seo Joon-yongPersonal informationFull nameSeo Joon-yongKorean: 서준용Born (1988-03-14) March 14, 1988 (age 35)South KoreaHeight1.64 m (5 ft 5 in)Weight66 kg (146 lb)Team informationDisciplineRoadRoleRiderRider typeSprinterProfessional teams2009EQA–Meitan Hompo–Graphite Design2010–2012Seoul Cycling Team2013–2019KSPO Seo Joon-yong (Korean: 서준용; RR: Seo...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!