| Nelson, G. (Ed.) (1991). Systems programming with Modula-3. Prentice Hall. |
....PPOST on our workstation farm consisting of 12 DEC ALPHA stations with 128 MByte main memory each. The workstations are connected by a switching FDDI network. The latency parameter L (see 2.1.2. was measured between 1000 and 2000 for simple operations. A clean object oriented language (Modula 3 [8, 9]) was chosen to implement PPOST. It seems to be necessary, however, to extend a general purpose programming language with constructs that support generic operations on classes. Such a construct could be sets as first class citizens. 4. CONCLUSIONS Traditional limits of memory resident databases ....
G.Nelson: "Systems Programming With Modula-3"; 1991; Prentice-Hall Inc.
....concludes. 2. BACKGROUND We now present some assumptions and terminology that we will use in the rest of the paper. All of our analyses assume the entire program is available unless otherwise stated. Section 2. 1 describes what memory references look like in the language that we analyze, Modula3 [Nelson 1991]. Section 2.2 describes how method invocations give rise to polymorphism in Modula 3 programs. 2.1 Memory Reference Basics Table I lists the three kinds of memory references in Modula 3 programs, their names, and a short description of each. 1 Without loss of generality, we assume that all ....
....4.2 gives algorithms for resolving monomorphic sites. 3. TYPE BASED ALIAS ANALYSIS This section describes type based alias analyses (TBAA) in which the compiler has access to the entire program except for the standard libraries. TBAA assumes a type safe programming language such as Modula 3 [Nelson 1991] or Java [Sun Microsystems Computer Corporation 1995] that does not support arbitrary pointer type casting, which is supported ACM Transactions on Programming Languages and Systems, Vol. TBD, No. TDB, Month Year. Using Types to Analyze and Optimize Object Oriented Programs 5 TYPE T = OBJECT f, ....
NELSON, G., Ed. 1991. Systems Programming with Modula-3. Prentice Hall, New Jersey.
....already been adopted for programming languages. Soft typing [Wright and Cartwright 1997] is one attempt to combine the advantages of untyped and typed programming languages. Modula 3 is strongly typed but provides loopholes in order to achieve the flexibility needed for writing systems programs [Nelson 1991]. A checker for typing annotations could combine the advantages of type checking with the generality of set theory, but building it is a research project. Now, if one wants the advantages of type checking, one must use a typed formalism. 4.2.2 Verification by Machine. Although not all ....
Nelson, G. (Ed.) 1991. Systems Programming with Modula-3. Series in Innovative Technology. Prentice-Hall, Inc., Englewood Cli#s, New Jersey.
....subscript i 2. BACKGROUND We now present some assumptions and terminology that we will use in the rest of the paper. All of our analyses assume the entire program is available unless otherwise stated. Section 2. 1 describes what memory references look like in the language that we analyze, Modula3 [Nelson 1991]. Section 2.2 describes how method invocations give rise to polymorphism in Modula 3 programs. 2.1 Memory Reference Basics Table I lists the three kinds of memory references in Modula 3 programs, their names, and a short description of each. 1 Without loss of generality, we assume that all ....
....4.2 gives algorithms for resolving monomorphic sites. 3. TYPE BASED ALIAS ANALYSIS This section describes type based alias analyses (TBAA) in which the compiler has access to the entire program except for the standard libraries. TBAA assumes a type safe programming language such as Modula 3 [Nelson 1991] or Java [Sun Microsystems Computer Corporation 1995] that does not support arbitrary pointer type casting, which is supported in C and C . We first describe three progressively more powerful versions of TBAA and then conclude with their complexity. Using Types to Analyze and Optimize ....
NELSON, G., Ed. 1991. Systems Programming with Modula-3. Prentice Hall, New Jersey.
....that will kill the child if the parent is interrupted. Indeed, programming in the presence of asynchronous exceptions is notoriously dicult, so much so that Modula 3, for example, simply outlaws them. Instead, well behaved threads regularly poll an alert ag, and commit suicide if it is set [Nelson, 1991]. Haskell di ers from Modula in two ways that are relevant here. First, there are fewer side e ects, so there are fewer windows of vulnerability to worry about. Second, there are large parts of purely functional code that we would like to be able to interrupt and can indeed do so safely but ....
Nelson, G., editor (1991). Systems Programming with Modula-3. Prentice Hall, Englewood Clis, NJ.
....developing the ideas originated by Simula. Particularly relevant to Chapter 3, Smalltalk executed programs by compiling them onto an abstract machine. There are several languages which adopted objects into a non objectoriented core. These include C (Stroustrup 1991) and Modula 3 (Nelson 1991), and one could argue Java (Sun Microsystems Computer Corporation 1995a) belongs in this list too. The language Self (Agesen, Bak, Chambers, Chang, Holzle, Maloney, Smith, Ungar, and Wolczko 1993) promoted prototype based object orientation, where objects are created and manipulated directly, ....
Nelson, G. (Ed.) (1991). Systems programming with Modula-3. Prentice Hall.
....alias analysis and method resolution. Section 9 concludes. 2. TYPE BASED ALIAS ANALYSIS This section describes type based alias analyses (tbaa) in which the compiler has access to the entire program except for the standard libraries. tbaa assumes a type safe programming language such as Modula 3 [Nelson 1991] or Java [Sun Microsystems Computer Corporation 1995] that does not support arbitrary pointer type casting which is supported in C and C . We begin with our terminology, and then discuss using type declarations, object field and array access semantics, and modifications to the set of possible ....
Nelson, G., Ed. 1991. Systems Programming with Modula-3. Prentice Hall, New Jersey.
....block or subroutine. Thus the burden is on the programmer to find each exit from the block, and make sure the state is restored. Language support for setting the state precisely in the scope of a block would be very useful here. Modula 3 is one language that implements this idea for trap handlers [Nelson 1991]. There are a number of minor points that need to be considered when implementing the IEEE standard in a language. Since x x = 0 for all x, 1 ( 0) 0) 0. However, 0) 0, thus x should not be defined as 0 x. The introduction of NaNs can be confusing, because a NaN is never equal ....
Nelson, G. 1991. Systems Programming With Modula-3, Prentice-Hall, Englewood Cliffs, NJ.
....via loads and stores. As a result, extensions do not incur costly address space switches when they interact with the kernel. SPIN relies on language facilities to protect the system from extensions (and extensions from each other) Extensions are written using the safe subset of Modula 3 [6], which enforces type safety. Relying on the language to enforce safe extension behavior is more efficient than relying on hardware mechanisms [1] because much of the protection overhead is paid at compile time or link time. We have added new features to the safe subset of Modula 3, because it ....
....of an interface. An instance of RTCode.InterfaceType uniquely identifies a particular implementation of that interface at runtime. 1 The exception model of Modula 3 requires that each procedure explicitly state what exceptions it can raise, although a note on page 29 of the Modula 3 book [6] does imply the existence of an implicit exception. A statement on page 12 states that an implementation may reflect checked runtime errors as exceptions. SPIN requires that it does so. 5 The procedure MODULE UNIT returns the RTCode.ModuleType of the calling module, which is used to give a ....
G. Nelson, editor. "Systems Programming with Modula-3". Series in Innovative Technology. Prentice Hall, Englewood Cliffs, NJ, 1991.
....or subr outine. Thus the bur den is on the programmer to find each exit fr om the block, and make sur e the state is restored. Language support for setting the state pr ecisely in the scope of a block would be very useful her e. Modula 3 is one language that implements this idea for trap handlers [Nelson 1991]. There are a number of minor points that need to be consider ed when implementing the IEEE standard in a language. Since x x = 0 for all x, 1 ( 0) 0) 0. However, 0) 0, thus x should not be defined as 0 x. The introduction ofNaNs can be confusing, because a NaN is never equal to ....
Nelson, G. 1991.Systems Programming W ith Modula-3, Prentice-Hall, Englewood Cliffs, NJ.
....is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and or specific permission. c fl 1994 ACM xxxx xxxx xx xxxx xxxx xx.xx 2 Delta B. Liskov and J. Wing Myrhaug, and Nygaard 1970] C [Stroustrup 1986] Modula 3[Nelson 1991], and Trellis Owl[Schaffert, Cooper, Bullis, Kilian, and Wilpolt 1986] subtypes are used to broaden the assignment statement. An assignment x: T : E is legal provided the type of expression E is a subtype of the declared type T of variable x. Once the assignment has occurred, x will be used ....
.... via the contra covariance rules, such as those used in languages like Trellis Owl [Schaffert, Cooper, Bullis, Kilian, and Wilpolt 1986] Emerald[Black, Hutchinson, Jul, Levy, and Carter 1987] Quest [Cardelli 1988] Eiffel [Meyer 1988] POOL [America 1990] and to a limited extent Modula 3 [Nelson 1991]. Our rules place constraints not just on the signatures of an object s methods, but also on their behavior. Our work is most similar to that of America [1991] who has proposed rules for determining based on type specifications whether one type is a subtype of another. 28 Delta B. Liskov and J. ....
Nelson, G. 1991. Systems Programming with Modula-3. Prentice Hall.
....persistent objects can occur and may be stored into the registers, stacks, static areas, and heap memory. Mostlycopying reachability based persistence is entirely flexible with respect to the implementation of these mechanisms. For example, in our initial implementation of persistence for Modula 3 [Nelson 1991] we are using mostly copying persistence with Texas style pointer swizzling at page fault time [Singhal et al. 1992; Wilson and Kakkad 1992] as our underlying swizzling and faulting mechanism above the Mneme persistent object store [Moss and Sinofsky 1988; Moss 1990a; 1990b] We have designed ....
NELSON, G., Ed. 1991. Systems Programming with Modula-3. Prentice Hall.
....functionalities which can be abstracted from modern high level languages. The CRS uses C as the common intermediate form for all languages. Such usage of C has been applied successfully to several programming languages, for instance Cedar, Common Lisp and Scheme at Xerox PARC [4] Modula3 [13] and C at DEC SRC, Linda and also to Prolog [20] Though convenient for portability, the use of C as intermediate form is not essential to the approach, and in fact the fundamental requirements are agreement on procedure call conventions and access to the facilities provided by the CRS (memory, ....
G. Nelson, editor "Systems Programming with Modula3", Prentice Hall, 1991.
....advantages, they are eliminated from further discussion. Therefore, only cases 1 6 of Table 1 are examined. If two or more queues have equal priority, the scheduler chooses one arbitrarily. This encourages a style of programming where signals are used as hints [Lampson and Redell 1980, p. 111][Nelson 1991, p. 102] In this approach, a task may signal a condition whenever it might be true; the signalled task is responsible for checking whether it actually is true. This is a cautious approach to concurrency control, where the signalled and signaller tasks can make no assumptions about order of ....
....statement is embedded in a loop such as do not W q wait q od the postcondition W q is established regardless of the precondition. This coding style corresponds to using signals as hints (see Section 3. 1) These simplified semantics are essentially the ones adopted in Modula 2 and Modula 3 [Nelson 1991] . A point worth noting is that, since all references to the lengths of queues have been eliminated, an implementation is free to awaken more than one task with one signal. The implementation of condition variables in Modula 2 and Modula 3 takes advantage of this and occasionally, for the sake of ....
[Article contains additional citation context not shown here]
NELSON, G., Ed. 1991. Systems Programming with Modula-3. Prentice-Hall, Inc.
....the present paper uses a restriction along the lines of name matching. In particular, types are simply identifiers, and the subtype relation is simply a given partial order among those identifiers. This is much like the classes in Java [Gosling et al. 1996] or the branded object types in Modula 3 [Nelson 1991]. But in contrast to languages like Java or Modula 3, fields and methods are declared separately from types in the language considered in this paper. This is also done in Cecil [Chambers 1997] and Ecstatic [Leino 1997] Not only does this simplify the treatment without loss of applicability to ....
Nelson, Greg, Editor 1991. Systems Programming with Modula-3. Series in Innovative Technology. Prentice-Hall, Englewood Cliffs, NJ.
....supply code that can fetch tokens using the proper byte order, which is usually the byte order of the machine the application runs on. Matching statements in ldb The debugger ldb uses matching statements to disassemble machine code and to help implement breakpoints. ldb is written in Modula 3 (Nelson 1991). It uses an object type to represent an instruction stream of a program being debugged, and it uses unsigned integers to refer to locations in such streams. Here are the code fragments that give the toolkit s translator the representation of streams: address type is Word.T address add using ....
Nelson, Greg, editor. 1991. Systems Programming with Modula-3. Englewood Cliffs, NJ: Prentice Hall.
....which render the checkpoint useless. Second, a typical checkpoint contains a large amount of information that is of no use in later executions. 2.3. Data Structure Copying There are many examples of persistence mechanisms that work by copying the closure of a data structure to an external medium [27,38]. The application typically invokes a write operation on a data value which traverses the graph of objects reachable from the value, and writes it to disc in a flattened form. At a later stage, the flattened data structure can be read in, giving a new copy of the data structure. Depending on the ....
G. Nelson (ed), "Systems Programming with Modula --3", Prentice Hall, 1991
....will become more pronounced relative to total execution time. However, the various mechanisms should retain their rankings with respect to one another, since their absolute costs will remain the same (modulo shifting and possibly spurious hardware cache effects) Some languages (e.g. Modula 3 [Nelson, 1991; Harbison, 1992] C [Stroustrup, 1986] do not enforce the pure object oriented style of execution that enables residency checks to be piggy backed upon method invocation. Operations on an object can be performed without necessarily invoking a method on it. This means that explicit residency ....
Nelson, G., editor (1991). Systems Programming with Modula-3. Prentice Hall, New Jersey.
....garbage collection. With the development of techniques for conservative garbage collection, the use of garbage collection has become feasible also for languages which are not well behaved with respect to pointers. Even so, current implementations limit the use of pointers: for instance in Modula3 [11] there are traced pointers to collected objects and untraced pointers to uncollected objects an uncollected object can t contain an untraced pointer. One problem still needs to be addressed: interacting with the collector, which in general assumes full control of memory management. The fact ....
G. Nelson, editor "Systems Programming with Modula3", Prentice Hall, 1991.
....library provides a representation of streams that should be convenient for many encoding applications. The toolkit has four parts. The translator takes a program with embedded matching statements and translates these statements into ordinary code. It handles programs written in C or Modula 3 [Nelson 1991]. The generator generates encoding and relocation procedures in C. These procedures call code in the library. The library implements both instruction streams and relocatable addresses, which refer to locations within the streams. The checker checks specifications for consistency with existing ....
Nelson, G., Ed. 1991. Systems Programming with Modula-3. Prentice Hall, Englewood Cliffs, NJ.
No context found.
Nelson, G. (Ed.) (1991). Systems programming with Modula-3. Prentice Hall.
No context found.
Nelson, G., editor, "Systems Programming with Modula-3," Prentice Hall Series in Innovative Technology, Prentice Hall, Englewood Cli#s, New Jersey, 1991.
No context found.
Nelson, G., editor, "Systems Programming with Modula-3," Prentice Hall, 1991.
No context found.
Nelson, G.: `Systems Programming with Modula-3', (Prentice-Hall, 1991) 14
No context found.
Greg Nelson (ed.), "Systems Programming with Modula-3", Prentice Hall, 1991.
First 50 documents
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