ESPOL(ID:506/esp010)

Executive System Problem Oriented Language 


for Executive System Problem Oriented Language

An ALGOL superset used to write the MCP (Master Control Program) OS on Burroughs 6700. Not available to users, it was Extended Algol with the added ability to access any CPU instrution as a procedure call.

Hardware:
Related languages
Extended ALGOL => ESPOL   Written using
ESPOL => NEWP   Replacement for
ESPOL => SPL   Influence

References:
  • "The B6700 ESPOL Reference Manual", Burroughs, 1970. view details
  • Lyle, Don M. "A hierarchy of high order languages for systems programming" pp73-78 view details Extract: ESPOL and safety
    When the decision to produce a successor to the B5500 was made, there was no controversy over the use of high level languages but considerable debate over how high a level the languages should be. B5500 ESPOL (Executive System Problem Oriented Language), the operating system implementation language, contained many "unsafe" constructs, for example, the ability to directly address memory through a subscripted reference to an array known, strangely enough, ss MEMORY. This allowed coding errors to produce undesirable side effects on the system. Examination of the algorithms used in most operating systems indicated that surprisingly few routines actually require such "unsafe" tools leading to the conclusion that the proper approach to the coding of the overall systems software might be a hierarchical set of systems programming languages with varying degrees
    of "safety." Extract: B6700 ESPOL as a Systems Programming Language
    B6700 ESPOL as a Systems Programming Language
    Within the current concept of the B6700 operating system, B6700 ESPOL is the high level language utilized for the implementation of those machine dependent aspects of the B6700 MCP. Some of the facilities of the language and their uses have been adequately covered by Cleary The ESPOL language contains constructs which enable one to massage the physical resources of the machine and is, therefore, somewhat machine dependent. Another way of stating the above is that ESPOL contains constructs which are unsafe. Coding errors in ESPOL routines can be disastrous to the overall system.
    Due to the inherent machine dependency of B6700 ESPOL, this language is of less interest to the subject of this paper. Even though a radical departure from generally accepted "state-of-the-art" practices, ESPOL is still another variant of B6700 ALGOL and, in general, quite readable by ALGOL programmers. The language contains constructs which allow it to directly address memory via a subscripted array reference, scan out control words to the B6700 multiplexor, interrogate the state of the physical hardware devices, etc. In theory, only those portions of the MCP actually concerned
    with manipulation of the physical resources need be coded in ESPOL with the remainder coded in DCALGOL or Extended ALGOL. Unnecessarily, under the current implementation, most of the operating system is coded entirely in ESPOL amounting to over 40,000 lines of source code. This excessive amount of ESPOL code will be gradually reduced as the inevitable refinements and rewrites take place ? It should be noted, however3 that the operating system implemented is a multi-programming, multi-processing, dynamic storage allocation system. Considering this, the "excessive" size looks somewhat more reasonable when compared with contemporary systems.
          in [ACM] SIGPLAN Notices 6(10) October 1971 Proceedings of the SIGPLAN symposium on Languages for system implementation 1971, Lafayette, Indiana, United States; October, 1971 view details
  • Sammet, Jean E. "Brief survey of languages used for systems implementation" view details Extract: ESPOL
    ESPOL has the following features of interest: string handling, memory protection overwrite, field modifications, equivalence facilities, event handling, macro definition, and implicit procedure declarations. While some of these individual facilities are straightforward, the combination provides a powerful enough language to write the entire operating system. It would be quite misleading to contend that ESPOL is truly machine independent (and the author has never seen any claim put for that the MCP was written in a machine independent higher level language.) ESPOL contains many features which are inherently dependent on the Burroughs hardware, although
    many could probably be represented or simulated on other machines. For example, word expressions are assumed to have 48 bits, and there are commands or operators which reference a particular flip flop,
    the hardware stack, machine registers, and an interval timer.
          in [ACM] SIGPLAN Notices 6(10) October 1971 Proceedings of the SIGPLAN symposium on Languages for system implementation 1971, Lafayette, Indiana, United States; October, 1971 view details