{"title":"Design of a high-level language machine*","authors":"G. Battarel, R. J. Chevance","doi":"10.1145/1318441.1318442","DOIUrl":null,"url":null,"abstract":"There is at present a broad consensus that a capability-based architecture is the best approach to safe systems. 5 , 3 , 6 However, at the bare hardware level, a machine should provide for a set of basic mechanisms (e.g. processor assignment, manipulation of queues of processes, definition of and manipulation on domains) without prejudging of any policy to be applied to these elements. The internal structure of the objects referred to by capabilities, the way they are organized into capability lists and the evolution of these lists in relation to various events appearing throughout the life of a program and of its possible activations should appear at some higher level, so that they can be modified without disturbing the hardware. This demands flexibility (the capability for emulating, for instance), adaptability (to future modifications) or the ability to define a machine which could be orientated, on demand, toward a certain class of applications (see for instance, the Burroughs B1700 approach). In the following, we shall be concerned mainly with this level, which we shall call \"virtual architecture level.\" Considering a basic architecture, which we describe briefly, we define a virtual architecture for higher-level languages (namely PL/1, COBOL, FORTRAN and the system implementation language LIS, 13 ) called the HLL-machine in this discussion. The objectives of the HLL-machine are the following: • To define a virtual architecture as clean and homogeneous as possible, on which compilers may become more simple, and debugging aids more powerful. • To define a minimum of intermediate languages, ideally, just one, for supporting PL/1, COBOL and FORTRAN. • To define a set of run-time mechanisms enforcing safety. • To obtain more compact object programs, as compared to third generation computer systems, so as to reduce the working sets of programs. • To abide by the error confinement principle, which states that a procedure should not have at its disposal more capabilities than actually required for its execution. • To improve overall system performance.","PeriodicalId":341008,"journal":{"name":"1979 International Workshop on Managing Requirements Knowledge (MARK)","volume":" 35","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1978-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"6","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"1979 International Workshop on Managing Requirements Knowledge (MARK)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/1318441.1318442","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 6
Abstract
There is at present a broad consensus that a capability-based architecture is the best approach to safe systems. 5 , 3 , 6 However, at the bare hardware level, a machine should provide for a set of basic mechanisms (e.g. processor assignment, manipulation of queues of processes, definition of and manipulation on domains) without prejudging of any policy to be applied to these elements. The internal structure of the objects referred to by capabilities, the way they are organized into capability lists and the evolution of these lists in relation to various events appearing throughout the life of a program and of its possible activations should appear at some higher level, so that they can be modified without disturbing the hardware. This demands flexibility (the capability for emulating, for instance), adaptability (to future modifications) or the ability to define a machine which could be orientated, on demand, toward a certain class of applications (see for instance, the Burroughs B1700 approach). In the following, we shall be concerned mainly with this level, which we shall call "virtual architecture level." Considering a basic architecture, which we describe briefly, we define a virtual architecture for higher-level languages (namely PL/1, COBOL, FORTRAN and the system implementation language LIS, 13 ) called the HLL-machine in this discussion. The objectives of the HLL-machine are the following: • To define a virtual architecture as clean and homogeneous as possible, on which compilers may become more simple, and debugging aids more powerful. • To define a minimum of intermediate languages, ideally, just one, for supporting PL/1, COBOL and FORTRAN. • To define a set of run-time mechanisms enforcing safety. • To obtain more compact object programs, as compared to third generation computer systems, so as to reduce the working sets of programs. • To abide by the error confinement principle, which states that a procedure should not have at its disposal more capabilities than actually required for its execution. • To improve overall system performance.