System programming language
A System programming language is usually used to mean "a language for system programming": that is, a language designed for writing system software as distinct from application software.
Contents |
[edit] Features
In contrast with application languages, such 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 facilities because a system-software project usually develops its own input/output or builds on basic monitor I/O or screen management services facilities. The distinction between languages for system programming and applications programming became blurred with widespread popularity of C and Pascal.
[edit] History
One of the earliest of these system programming languages was PL360, which had the general syntax of ALGOL 60, but whose statements directly manipulated CPU registers and memory. 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 result placed into register 9.[1]
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[2], 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 capabilities; inline assembly code, such as C's asm statement, is often used for this purpose. Although many such languages were developed,[3] C and C++ are the ones that have survived.
System Programming Language or SPL is also the name of a specific language on the HP 3000 computer series used for its operating system HP Multi-Programming Executive and other systems software.
[edit] Major system programming languages
| Language | Originator | Date | Derivation | Used for |
|---|---|---|---|---|
| ESPOL | Burroughs Corporation | 1961 | Algol 60 | MCP |
| PL/I | MIT | 1964 | - | Multics |
| PL360 | Niklaus Wirth | 1968 | Algol 60 | Algol W |
| C | Dennis Ritchie | 1969 | BCPL | Unix |
| PL/S | IBM | 196x | PL/I | OS/360 |
| BLISS | Carnegie Mellon University | 1970 | ? | VMS (portions) |
| PL.8 | IBM | 197x | PL/I | AIX |
[edit] References
- ^ Wirth, Niklaus. PL360, A Programming Language for the 360 Computers. Journal of the ACM, 15(1): 37-74.
- ^ Mendicino, Sam F., Robert A. Hughes, Jeanne T. Martin, Frank H. McMahon, John E. Ranelletti, and Richard G. Zwakenberg. The LRLTRAN Compiler. C. ACM 11(11): 747-755.
- ^ Poel, W. L. van der, and Maarssen, L. A. Machine oriented higher level languages: proceedings of the IFIP Working Conference on Machine Oriented Higher Level Languages, Trondheim, Norway, August 27-31, 1973. International Federation for Information Processing, 1974.
[edit] External links
- Corbató, Fernando (1969-05-06). "PL/I as a Tool for System Programming". Datamation: 68-76. http://home.roadrunner.com/~pflass/PLI/plisprg.html. Retrieved 2012-01-23.
[edit] See also
This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed under the GFDL.
| This programming language-related article is a stub. You can help Wikipedia by expanding it. |