One of the reasons for developing high level languages has been the desire for program portability from one type of machine to another. To achieve the high degree of machine independence necessary for program portability, these languages have included general features such as arithmetic expressions, arrays, and subroutine calls which can be implemented on many machines. Facilities such as the interrupt mechanism, program status word, and device dependent input/output which are available to the assembly language programmer are hidden from the high level programmer. Unfortunately, the code generated by compilers for these high level languages is often very inefficient compared to that produced by experienced assembly language programmers. However, the added expressiveness and the ability to leave details to the compiler usually offset the inefficiency of generated code, particularly for non-systems applications. For such applications, the facilities which the high level programmer cannot use are not needed anyway.
[1]
Niklaus Wirth.
A programming language for the 360 computers
,
1966
.
[2]
David Udin.
SPECL: A system programming dialect of ECL
,
1973
.
[3]
Niklaus Wirth,et al.
PL360, a Programming Language for the 360 Computers
,
1968,
JACM.
[4]
Richard E. Merwin,et al.
Programming language efficiency in real-time software systems
,
1899,
AFIPS '72 (Spring).
[5]
William M. Waite,et al.
Abstract machine modelling to produce portable software—a review and evaluation
,
1972,
Softw. Pract. Exp..
[6]
William A. Wulf,et al.
BLISS: a language for systems programming
,
1971,
CACM.
[7]
Martin Richards,et al.
BCPL, A Tool for Compiler Writing and System Programming
,
1899
.
[8]
R. Daniel Bergeron,et al.
Systems Programming Languages
,
1972,
Adv. Comput..