51 citations found. Retrieving documents...
S. P. Harbison. Modula-3. Prentice Hall, 1991.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents  Next 50

Implementing Overloading and Polymorphism in Cforall - Bilson (2003)   (Correct)

....expensive than a monomorphic function call. The expansion technique is popular in imperative languages, and for good reason it is (relatively) simple to implement and very efficient. The semantics of polymorphic functions in C [18] known as template functions, and of generics in Modula 3 [20], require expansion as their implementation. These languages prohibit by fiat any constructs that cannot be implemented using expansion, including passing polymorphic functions to procedures and polymorphic recursion. Ada [17] while not mandating a particular implementation strategy for generics, ....

.... these functions implement writable and readable for some intrinsic types forall( dtype os type ostream( os type ) os type ( os type os, char c ) return write( os, c, 1 ) forall( dtype os type ostream( os type ) os type ( os type os, int i ) char buffer[20]; can hold any integer sprintf( buffer, d , i ) return write( os, buffer, strlen( buffer ) forall( dtype os type ostream( os type ) os type ( os type os, const char cp ) return write( os, cp, strlen( cp ) forall( dtype is type istream( is type ) is type ....

[Article contains additional citation context not shown here]

Samuel P. Harbison. Modula-3. Prentice Hall, 1992.


Units: Cool Modules for HOT Languages - Flatt, Felleisen (1998)   (79 citations)  (Correct)

....ELF [27] support dynamic linking. However, even the most advanced linking systems rely on a global namespace of function names and module (i.e. file) names. As a result, mod ules can be linked and invoked only once in a program. Many modern languages (e.g. Ads 95 [t] Modula 2 [30] Modula 3 [11] Haskell [S] and Java [10] use packages. A package system delineates the boundaries of each module and forces the specification of static dependencies between modules. Since module hnking and invocation are clearly separated, packages allow mutually recursire function and type definitions ....

....to produce different interactive phone book programs. The type associated with MakeIPB s argument is a unit type, a signature, that contains all of the information needed fun MakeIPBG ui Main PhoneBook I i aGui r db: 12 insert:dbxstrxin]o void II in]o: f2 numln)eo:int in)eo . 1 :void 11 openBook:db bool error:str voidi I J Figure 5: Abstracting over constituent units Starter fun MakeeB(aGi) q , t I val ExpertGui : db: insert:dbxstrx in]o void , info: f nurnlnfo:intin]o . void I openBo vM NoviceGul : invoke MakelPB(if expertMode( ExpertGui else NoviceGui) ....

[Article contains additional citation context not shown here]

HARBISON, S. P. Modula-$. Prentice Hall, 1991.


Comprehensive Synchronization Elimination for Java - Aldrich, Sirer, Chambers..   (3 citations)  (Correct)

....Java without cumbersome manual code restructuring. 1. Introduction Monitors [LR80] are appealing constructs for synchronization, because they promote reusable code and present a simple model to the programmer. For these reasons, several programming languages, such as Java [GJS96] and Modula 3 [H92], directly support them. However, widespread use of monitors can incur significant run time overhead: reusable code modules such as classes in the Java standard library often contain monitor based synchronization for the most general case of concurrent access, even though particular programs ....

S.P. Harbison. Modula-3. Prentice Hall, 1992.


Programming Languages for Reusable Software Components - Flatt (1999)   (10 citations)  (Correct)

....modifying R s definition. In the following subsections, we argue that most existing module and object constructs correspond to the right hand figure. This dissertation describes alternatives that correspond to the left hand figure. 1.2. 1 Modules Many languages (e.g. Ada 95 [38] Modula 3 [32], Haskell [37] and Java [31] provide modules via packages. A package system delineates the boundaries of each mod Language with external connections Component definitions: R A B Explcitly connect R to A: R ffl ffl A Explicitly connect R to B: R ffl ffl B Language w o external connections ....

....ELF [77] support dynamic linking, but even the most advanced linking systems rely on a global namespace of function names and module (i.e. file) names. As a result, modules can be linked and invoked only once in a program. 28 Many modern languages such as Ada 95 [38] Modula 2 [84] Modula 3 [32], Haskell [37] and Java [31] provide packages. A package system delineates the boundaries of each module and forces the specification of static dependencies between modules. Since module linking and invocation are clearly separated, packages allow mutually recursive function and type ....

Harbison, S. P. Modula-3. Prentice Hall, 1991.


Operating System Support for Emerging Application Domains - Clarke (2000)   (Correct)

....benefit from the superior performance (reduced latency in responding to events compared to user level servers) and fine grained hardware access capabilities enjoyed by kernel level code. In order to protect its kernel s integrity, SPIN mandates that all SPINDLEs must be written in Modula 3 5 [Harbison,92] an object oriented, type safe programming language) To demonstrate that Modula 3 is not unduly restrictive for writing system code, the SPIN team have implemented much of SPIN itself using Modula 3. SPIN encapsulates kernel data structures in secure and well defined objects and the Modula3 ....

Harbison, S., "Modula-3", Prentice Hall, ISBN 0-13-596396-6, 1992.


Aspect Weaving as Component Knitting: Separating Concerns .. - Eide, Reid, Flatt.. (2001)   (1 citation)  (Correct)

.... main needs io; files hello.c ; b) The file hello.unit, the unit definition for Hello, world Figure 1: Defining an atomic unit with Knit. 2Knit The Knit component specification and linking language is based on units [5, 6] a model of components in the spirit of the Modula 3 [8] and Mesa [10] module systems. A unit is a component or model definition, either atomic (with a C implementation) or compound (composed of other units) 2.1 Building Blocks: Atomic Units An atomic unit can be thought of as a module with three basic parts: 1. A set of imports, which name the ....

S. P. Harbison. Modula-3. Prentice Hall, 1991.


Safe Kernel Extensions Without Run-Time Checking - Necula, Lee (1996)   (254 citations)  (Correct)

....overhead, beyond a one time cost of 1 to 3 milliseconds for validating the enclosed proofs. The net result is that our packet #lters are formally guaranteed to be safe and are faster than packet #lters created using Berkeley Packet Filters, Software Fault Isolation, or safe languages such as Modula 3. This researchwas sponsored in part by the Advanced Research Projects Agency CSTO under the title #The Fox Project: Advanced Languages for Systems Software, ARPA Order No. C533, issued by ESC#ENS under Contract No. F1962895 C 0050. The views and conclusions contained in this document are those ....

....of view while maintaining or improving performance. In particular, we show that PCC leads to faster and safer packet #lters than previous approaches to code safety in systems software, including Berkeley Packet Filters #12#, Software Fault Isolation #23#, and programming in the safe subset of Modula 3 #1,9,17#. Finally,we conclude with a discussion of the remaining di#culties and speculate on what might be necessary to make the approach work on a practical scale. 2 Proof Carrying Code Figure 1 depicts the process of generating and using a PCC binary. The process begins with the code consumer ....

[Article contains additional citation context not shown here]

MODULA-3. Prentice-Hall, 1991.


Pthreads and Applications of Mutex-Abstraction - Hesselink, Jonker (2001)   (Correct)

....primitives are called POSIX threads or pthreads. The standard provides mutexes, condition variables and associated commands, cf. 3, 6] The main synchronization primitives for pthreads are wait, signal, and broadcast. These primitives are also provided by the programming language Modula 3, cf. [5]. Semaphores are only an optional feature in POSIX, cf. 6] p. 177, whereas they are absent in Modula 3, cf. 5] This has the e ect that the e orts towards a methodology for using semaphores (e.g. 1, 7] have to be transferred to mutexes and condition variables. It is known that semaphores can ....

....commands, cf. 3, 6] The main synchronization primitives for pthreads are wait, signal, and broadcast. These primitives are also provided by the programming language Modula 3, cf. 5] Semaphores are only an optional feature in POSIX, cf. 6] p. 177, whereas they are absent in Modula 3, cf. [5]. This has the e ect that the e orts towards a methodology for using semaphores (e.g. 1, 7] have to be transferred to mutexes and condition variables. It is known that semaphores can be implemented with these primitives, cf. 6] Below we describe implementations of a plain semaphore and of a ....

[Article contains additional citation context not shown here]

Harbison, S.P.: Modula{3, Prentice Hall 1992


Comprehensive Synchronization Elimination for Java - Aldrich, Sirer, Chambers.. (2000)   (3 citations)  (Correct)

....in Java without cumbersome manual code restructuring. 1. Introduction Monitors [LR80] are appealing constructs for synchronization, because they promote reusable code and present a simple model to the programmer. For these reasons, several programming languages, such as Java [GJS96] and Modula 3 [H92], directly support them. However, widespread use of monitors can incur significant run time overhead: reusable code modules such as classes in the Java standard library often contain monitor based synchronization for the most general case of concurrent access, even though particular programs use ....

S.P. Harbison, "Modula-3", Prentice Hall, 1992.


Safety-Checking of Machine Code - Xu (2000)   (25 citations)  (Correct)

....both static and dynamic checking requires fewer run time checks than dynamic techniques, but still needs corrective actions because faults can still occur at run time. Examples that use hybrid techniques for safety checking include safe languages, such as Java [34] Mesa [50] and Modula 3 [37]. A safe language has well defined semantics so that all valid programs written in the language are guaranteed to have certain safety properties. It employs both static and run time measures to avoid operations that are potentially harmful. Systems that use safe languages for system extensions ....

S. P. Harbison. Modula-3. Prentice Hall (1992).


Exploratory Programming Of Distributed 3D Graphics Applications - MacIntyre (2000)   (Correct)

....background and underlying distributed system, see [16] or [19] Repo 3D is an object oriented, high level graphics package whose 3D graphics facilities are similar to those of other modern high level graphics libraries. Repo 3D is descendant of Obliq 3D, a 3D animation package written in Modula 3 [12] and exposed into the Obliq programming language [7] Obliq is a lexically scoped, untyped, interpreted language for distributed object oriented computation. It allows any data value (either an object, array or simple variable) to be accessed remotely using client server distribution semantics. ....

S. P. HARBISON,Modula-3, Prentice-Hall, 1992.


Program Development and Performance Prediction on BSP Machines.. - Knee (1994)   (9 citations)  (Correct)

....of Opal code and for the construction of Opal programs by many programmers. Since Opal type checks both process and group specifications, well defined interfaces between libraries and user code are formed. Groups follow the package style system of modular languages such as Modula 2, Modula 3 [ Harbison, 1992 ] and Ada [ Barnes, 1989 ] A group specification is all that is needed to be known by a user of that group. The actual method of implementing the group can be hidden, as is the normal method for abstract data types. 4.12.1 Inter Group Communication Overview Unlike processes within a group, ....

S Harbison. Modula-3. Prentice Hall, 1992.


Application of Finite Automata in Debugging Natural.. - Kowaltowski.. (1993)   (1 citation)  (Correct)

....cannot be completely automated. No matter how good a program may be at identifying likely errors, it can only make suggestions, whose validity must eventually be judged by a human expert. 2 Programming environment and tools All the software described here was implemented in the language Modula 3 [7, 3], developed at the Systems Research Center of the Digital Equipment Corporation. The main reasons for this choice were the simplicity of the language, its object oriented programming paradigm and its availability on most unix workstations. 2.1 Basic library Our debugging tools are built on top ....

Harbison, S. P., Modula-3. Prentice Hall, 1992.


Knit: Component Composition for Systems Software - Reid, Flatt, Stoller, al. (2000)   (20 citations)  (Correct)

....OSKit has been a persistent source of problems, both for ourselves as developers and for OSKit users. We have developed a new module language and toolset for managing systems components called Knit. Knit is based on units [8, 9] a model of components in the spirit of the Mesa [23] and Modula 3 [14] module languages. In addition to bringing state of the art module technology to C programs, Knit provides features of particular use in the design and implementation of complex, low level systems: Knit provides automatic scheduling of component initialization and finalization, even in the ....

....dynamism and intractable analysis of object based linking by keeping the linking specification separate from (and simpler than) the core programming language. The model builds on pioneering research for component friendly modules in Mesa [23] functors in ML [21] and generic packages in Modula 3 [14] and Ada95 [18] Linking with units includes specific linking instructions that connect each notch to its matching tab. The linking specification may be hierarchical, in that a subset of the objects can be linked to form a larger object (or puzzle piece) which is then available for further ....

S. P. Harbison. Modula-3. Prentice Hall, 1991.


Automatic Visualization of 3D Complexes - Lozada, de Mendonça, Stolfi (1999)   (Correct)

....by semitrasparent at triangles, thin cylinders and small spheres, respectively (A further possible improvement would be to use e ects such as fog and re to make the cells visible too) 10 L. A. P. Lozada, C. F. X. Mendon ca, J. Stol 8 Results We have implemented these ideas in Modula 3 [5]. We used the facet edge data structure of Dobkin and Laszlo [2] to represent the topological structure of 3D complexes and their triangulations. We tested our tool on several 3D complexes, which, once triangulated, ranged in size from a few tens to a few hundred vertices. All tests used IR 4 as ....

S. P. Harbison, Modula-3. Prentice-Hall (1992).


Await Constructs for a Crossing - Hesselink (2000)   (Correct)

....cars for a given direction are treated fairly, this leads to a fair crossing in the sense that every waiting car eventually crosses. The application of the method of [4] to the implementation of the await statements in PassCrossing is straightforward. We implemented the crossing in Modula 3 of [3] in the following way. The theory of [4] is used in a module Await that exports mutex objects in which families of await statement can be encapsulated. The initialization of such a mutex object requires actual procedures for B(i) and S(i) The crossing is a module that uses one mutex object of ....

Harbison, S.P.: Modula{3, Prentice Hall 1992


Synchronization Primitives for Threads - Hesselink, Jonker (2000)   (Correct)

....condition variables and associated commands, cf. 3, 6] The criteria for selecting these primitives seem to have been generality and ecient implementability. The main synchronization primitives are wait and signal. These primitives are also provided by the programming language Modula 3, cf. [4]. It is important to note that, according to both [4] and [6] the signal may wake up more than one waiting thread (if such exist) According to [6] p. 35, the requirement to wake up precisely one waiting thread is not chosen since it can be expensive to implement on multiprocessors. The text of ....

....[3, 6] The criteria for selecting these primitives seem to have been generality and ecient implementability. The main synchronization primitives are wait and signal. These primitives are also provided by the programming language Modula 3, cf. 4] It is important to note that, according to both [4] and [6] the signal may wake up more than one waiting thread (if such exist) According to [6] p. 35, the requirement to wake up precisely one waiting thread is not chosen since it can be expensive to implement on multiprocessors. The text of [3] p. 296 suggests, however, that the signal awakens ....

[Article contains additional citation context not shown here]

Harbison, S.P.: Modula{3, Prentice Hall 1992


Equational Reasoning for Linking with First-Class Primitive.. - Wells, Vestergaard (2000)   (8 citations)  (Correct)

....of Y can be substituted for Y. There is a single global namespace for component names. Mutual dependencies between modules is possible, but there is no mechanism for black box reuse of modules and no support for hierarchical structuring of modules within modules. Languages like Ada [9] Modula 3 [25], and Haskell [1] support a kind of module which we will call packages. With packages, there is a flat namespace of modules; by convention module names correspond to filenames. Connections are hard wired to module names: If module X uses module Y, then any replacement for Y must also be named Y ....

S. P. Harbison. Modula-3. Prentice Hall, 1991.


Confluent Equational Reasoning for Linking with First-Class .. - Wells, Vestergaard (1999)   (15 citations)  (Correct)

No context found.

S. P. Harbison. Modula-3. Prentice Hall, 1991.


Ecient Almost Wait-free Parallel Accessible Dynamic Hashtables - Gao Groote Hesselink (2004)   (Correct)

No context found.

Harbison, S.P.: Modula-3, Prentice Hall 1992


Foundations of a Module Concept for Distributed Object Systems - Filipe (2000)   (1 citation)  (Correct)

No context found.

S.P. Harbison. Modula-3. Prentice Hall, 1991.


Safe Programming at the C Level of Abstraction - Grossman (2003)   (Correct)

No context found.

Samuel Harbison. Modula-3. Prentice-Hall, 1992.


Safety-Checking of Machine Code - Xu (2001)   (25 citations)  (Correct)

No context found.

S. P. Harbison. Modula-3. Prentice Hall (1992).


Visualization of Three-Dimensional Maps - Luis Lozada De   (Correct)

No context found.

S. P. Harbison. Modula-3. Prentice-Hall, 1992.


Java Programming Language - Essay Cs Principles   (Correct)

No context found.

Harbison S. P. Modula-3. Prentice Hall, 1992.

First 50 documents  Next 50

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC