Topic: abstraction
Topic: abstraction in programming
Topic: decomposition of a system into levels
Topic: incremental compilation
Topic: information hiding
Topic: interface between program modules
Topic: interface type
Topic: intermediate representation of code
Topic: just-in-time compilation
Topic: machine independent programming
Topic: primitive functions
Topic: program web
Topic: semantic grammar
Topic: semantics by an abstract machine
Topic: software portability
Topic: the 'uses' hierarchy for organizing systems
Topic: threaded code
Topic: virtualized hardware
| |
Summary
Virtual machines are levels in a hierarchical system which provide abstract access to lower level functions. Parnas builds virtual machines from a 'uses' hierarchy, i.e., the structural decomposition of a system into its simplest components. Virtual machines do not have to be hierarchical, although they are usually defined that way. Non-hierarchical virtual machines form program webs.
Advantages-- The implementation of a virtual machine can be modified without changing the machine's use. Virtual machines are described as many independent functions. New virtual machines can be created from subsets of other virtual machines. (cbb 5/80)
Subtopic: type system
Quote: .NET Common Language Runtime (CLR) provides a type system and intermediate language for object-oriented languages; stack-based, single-inheritance, interfaces, native code compilation, runtime services, shared libraries [»kennA6_2001]
| Subtopic: virtual machine
Quote: virtual machine approach--instead of writing functions, we should design software machine extensions that will be useful for many programs [»parnDL5_1978]
| Quote: gain machine independence through custom, abstract machines for each application [»poolPC10_1969]
| Quote: hide interrupts via abstract processors; everything else as cooperating sequential processes [»dijkEW2_1971]
| Subtopic: virtual machine as safety
Quote: DTrace actions execute in a virtual machine; no backwards branches, only defined subroutine calls, no arbitrary stores; arbitrary loads, including unmapped memory [»cantB2_2006]
| Subtopic: virtual device
Quote: a virtual device is a device-independent interface to device-dependent code; allows change without rewriting user programs [»britKH3_1981]
| Quote: allow virtual devices that do not correspond to hardware devices; capabilities may be scattered among multiple devices, one device may contain unrelated capabilities; want an understandable interface [»britKH3_1981]
| Subtopic: abstraction levels
Quote: each operating system level manages a particular type of abstract object [»robiL9_1975]
| Quote: structure an operating system as layers of insensitive, abstract machines
| QuoteRef: robiL9_1975 ;;2 levels of abstract machines which only access one level away. Level either transparent to feature or hides feature
| Subtopic: hide machine details
Quote: virtual memory should separate machine independent data from machine dependent data [»acceM6_1986]
| Subtopic: accessibility vs. enhancing machine
Quote: never develop a virtual machine that is better than actual hardware; instead pass on the speed, compactness, and flat structure of a simple hardware design [»hoarCA10_1974]
| Subtopic: macros for abstraction
Quote: use macros to code each operation of the abstract machine [»poolPC10_1969]
|
Related Topics
Topic: abstraction (62 items)
Topic: abstraction in programming (67 items)
Topic: decomposition of a system into levels (49 items)
Topic: incremental compilation (3 items)
Topic: information hiding (50 items)
Topic: interface between program modules (55 items)
Topic: interface type (50 items)
Topic: intermediate representation of code (31 items)
Topic: just-in-time compilation (20 items)
Topic: machine independent programming (13 items)
Topic: primitive functions (34 items)
Topic: program web (8 items)
Topic: semantic grammar (23 items)
Topic: semantics by an abstract machine (38 items)
Topic: software portability (43 items)
Topic: the 'uses' hierarchy for organizing systems (18 items)
Topic: threaded code (18 items)
Topic: virtualized hardware (5 items)
|