System programming language

From Wikipedia, the free encyclopedia
Jump to: navigation, search

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

  1. ^ Wirth, Niklaus. PL360, A Programming Language for the 360 Computers. Journal of the ACM, 15(1): 37-74.
  2. ^ 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.
  3. ^ 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

[edit] See also


This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed under the GFDL.

Personal tools
Namespaces
Variants
Actions
Navigation
Interaction
Toolbox
Print/export
Languages