Implementing Language Support in High-Level Languages
- 1 May 1984
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. SE-10 (3) , 227-236
- https://doi.org/10.1109/TSE.1984.5010231
Abstract
One of the requirements for building an operating system in a high-level operating system language, such as Ada, Concurrent Pascal, or Modula, is the construction of a language support system, or kernel. This paper presents a model that generalizes the concept of a kernel, and defines a kernel and the processes it supports to be at different levels of abstraction. A high-level language mechanism, the Execute statement, is then proposed as the basis of the interface between a kernel and the processes it supports. Software capabilities control access between levels and the Execute statement controls processor context switching between levels. The mechanisms rely on data typing for reliability and protection. They encourage systems that are well protected and exhibit an explicit hierarchical structure. Software capabilities and the Execute statement are illustrated with a pilot implementation on the Prime 650. An experimental operating system that encompasses their use is discussed. Extensions are presented which manage interrupts, timeslicing and preemption, and hardware protection mechanisms.Keywords
This publication has 20 references indexed in Scilit:
- Formal Models of Capability-Based Protection SystemsIEEE Transactions on Computers, 1981
- Preliminary Ada reference manualACM SIGPLAN Notices, 1979
- Primitives for distributed computingPublished by Association for Computing Machinery (ACM) ,1979
- Extending Concurrent Pascal to Allow Dynamic Resource ManagementIEEE Transactions on Software Engineering, 1977
- Beyond concurrent PascalPublished by Association for Computing Machinery (ACM) ,1977
- The Cambridge CAP computer and its protection systemPublished by Association for Computing Machinery (ACM) ,1977
- A Language Extension for Controlling Access to Shared DataIEEE Transactions on Software Engineering, 1976
- PASCAL User Manual and ReportPublished by Springer Nature ,1974
- On the criteria to be used in decomposing systems into modulesCommunications of the ACM, 1972
- The structure of the “THE”-multiprogramming systemCommunications of the ACM, 1968