Results 1 -
7 of
7
Checking system rules using system-specific, programmer-written compiler extensions
, 2000
"... ..."
Using Meta-level Compilation to Check FLASH Protocol Code
- In Architectural Support for Programming Languages and Operating Systems
, 2000
"... Building systems such as OS kernels and embedded software is difficult. An important source of this difficulty is the numerous rules they must obey: interrupts cannot be disabled for "too long," global variables must be protected by locks, user pointers passed to OS code must be checked for safety b ..."
Abstract
-
Cited by 17 (5 self)
- Add to MetaCart
Building systems such as OS kernels and embedded software is difficult. An important source of this difficulty is the numerous rules they must obey: interrupts cannot be disabled for "too long," global variables must be protected by locks, user pointers passed to OS code must be checked for safety before use, etc. A single violation can crash the system, yet typically these invariants are unchecked, existing only on paper or in the implementor's mind. This paper is a case study in how system implementors can use a new programming methodology, metalevel compilation (MC), to easily check such invariants. It focuses on using MC to check for errors in the code used to manage cache coherence on the FLASH shared memory multiprocessor. The only real practical method known for verifying such code is testing and simulation. We show that simple, system-specific checkers can dramatically improve this situation by statically pinpointing errors in the program source. These checkers can be written...
Interface Compilation: Steps toward Compiling Program Interfaces as Languages
- IEEE Transactions on Software Engineering
, 1999
"... Interfaces --- the collection of procedures and data structures that define a library, a subsystem, a module --- are syntactically poor programming languages. They have state (defined both by the interface's data structures and internally), operations on this state (defined by the interface's proced ..."
Abstract
-
Cited by 11 (1 self)
- Add to MetaCart
Interfaces --- the collection of procedures and data structures that define a library, a subsystem, a module --- are syntactically poor programming languages. They have state (defined both by the interface's data structures and internally), operations on this state (defined by the interface's procedures), and semantics associated with these operations. Given a way to incorporate interface semantics into compilation, interfaces can be compiled in the same manner as traditional languages such as ANSI C or FORTRAN. This paper makes two contributions. First, it proposes and explores the metaphor of interface compilation, and provides the beginnings of a programming methodology for exploiting it. Second, it presents Magik, a system built to support interface compilation. Using Magik, software developers can build optimizers and checkers for their interface languages, and have these extensions incorporated into compilation, with a corresponding gain in efficiency and safety. This organization contrasts with traditional compilation, which relegates programmers to the role of passive consumers, rather than active exploiters of a compiler's transformational abilities. 1
High-Confidence Operating Systems
- In Proc. of EW’02, the 10th ACM SIGOPS European Workshop: Can we really depend on an OS
, 2002
"... CCMs Instrumented CCMs check simulate monitor Figure 1: HCOS methodology overview. ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
CCMs Instrumented CCMs check simulate monitor Figure 1: HCOS methodology overview.

