34 citations found. Retrieving documents...
Appel, A. W. and D. B. MacQueen, Separate compilation for Standard ML, in: design and implementation (1994), pp. 13--23.

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents

Applicative Functors and Fully Transparent Higher-Order Modules - Leroy (1995)   (73 citations)  (Correct)

....functors predicted by the operational approach [13] Also, even though the abstract approach is syntactic in nature and therefore highly compatible with separate compilation [10] code fragments with free functor identifiers could be supported better (see section 2. 4 for an example) MacQueen [13, 1] claims that the problem with higher order functors is serious enough to invalidate the abstract approach and justify the recourse to complicated stamp based descriptions of higher order functors and separate compilation mechanisms. The work presented in this paper is an attempt to solve two of ....

A. W. Appel and D. B. MacQueen. Separate compi- lation for Standard ML. In Programming Language Design and Implementation 1996.


Using Parameterized Signatures to Express Modular Structure - Jones (1996)   (32 citations)  (Correct)

.... makes this approach very powerful too powerful in fact to permit compile time type checking without careful restrictions and extensions to ensure a suitable phase distinction [7] and to support features like sharing [14] Even then, it is still not possible to support true separate compilation [2] or to use modules as firstclass wlues [22, 12] Manifest types (transluscent sums) 6, 13] are an attempt to bridge the gap between the weak and strong sum approaches described above. A module type c = r. Complex c is much like an existential, except that it exposes the fact that a particular ....

....to types, and describes the compiletime part of the functor. As the example above shows, it is sometimes necessary to inspect the implementation of a structure to find the value of a type component. Not surprisingly, this means that it is impossible to provide true separate compilation for SML [2]. Even the smartest recompilation scheme proposed by Shao and Appel [26] does not permit true separate compi lation because it delays some type checking, and hence the detection of some type errors, to link time. The need for type sharing constraints in functor definitions is nrotivated by ....

Andrew W. Appel and David B. MacQueen. Separate compilation for Standard ML. In Conference on Pvgramming Language Design and Implementation, Orlando, FL, June 1994.


Mixin Modules - Duggan, Sourelis (1996)   (64 citations)  (Correct)

....of initialization is left undefined. This is clearly unacceptable in ML like languages, where variables are immutable and bound to clearly defined initial values. In fact current implementations of Standard ML modules explicitly rely on the absence of circularities in the initialization of modules [2]. Essentially the semantics of module composition in Standard ML (and almost all other module languages) is based on functor application. This is so even if functors are not explicitly involved; in the SML NJ implementation of linking [2] an ordinary ML structure is implemented as a function ....

....absence of circularities in the initialization of modules [2] Essentially the semantics of module composition in Standard ML (and almost all other module languages) is based on functor application. This is so even if functors are not explicitly involved; in the SML NJ implementation of linking [2], an ordinary ML structure is implemented as a function which is applied to a vector of imports at link time, and produces a vector of exports. Mixin modules introduce a new form of module composition, based on merging the fixed points of recursive definitions. Within the body of the mixin, all ....

Andrew Appel and David MacQueen. Separate compilation for Standard ML. In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 13-23. ACM Press, June 1994. SIGPLAN Notices vol- ume 30, number 6.


Applicative Functors and Fully Transparent Higher-Order Modules - Leroy (1995)   (73 citations)  (Correct)

....functors predicted by the operational approach [13] Also, even though the abstract approach is syntactic in nature and therefore highly compatible with separate compilation [10] code fragments with free functor identi ers could be supported better (see section 2. 4 for an example) MacQueen [13, 1] claims that the problem with higher order functors is serious enough to invalidate the abstract approach and justify the recourse to complicated stamp based descriptions of higher order functors and separate compilation mechanisms. The work presented in this paper is an attempt to solve two of ....

A. W. Appel and D. B. MacQueen. Separate compilation for Standard ML. In Programming Language Design and Implementation 1994.


: Mechanisms for Secure Modular Programming in Java - Bauer, Appel, Felten (2003)   (3 citations)  (Correct)

....remain private. Some programming languages provide adequate support for this model of programming. C [9] allows the separation of interfaces from implementations and even the hiding of representations [10] although without enforcing it as programming discipline. Modula 3 [11] and Standard ML [12]doa good job of both separating interfaces from implementations and supporting ADTs. Java, in its native form, is lacking in both respects. Java supports modular programming at both the class level and the package level. At the class level, the interface facility of the language provides support ....

Appel AW, MacQueen DB. Separate compilation for Standard ML. ACM Conference on Programming Language Design and Implementation, June 1994. ACM Press: New York, NY, 1994; 13--23.


A Compilation Manager for SML/NJ - User Manual - Blume (1997)   (Correct)

....other libraries. Unlike make, which is meant to be a general purpose tool not aimed at a specific language, CM provides automatic dependency analysis and a form of separate compilation known as cutoff recompilation [ATW94] The compilation manager uses the hooks provided by SML NJ s open compiler [AM94] and translates SML sources to produce binary object files called binfiles. The SML sources themselves can be the result of executing other programs, which is accounted for by CM s tools mechanism. Examples of such tools are the version control system RCS [Tic85] the parser generator ML Yacc ....

Andrew W. Appel and David B. MacQueen. Separate compilation for Standard ML. In Proc. SIGPLAN '94 Symp. on Prog. Language Design and Implementation, volume 29, pages 13--23. ACM Press, June 1994.


CM - The SML/NJ Compilation and Library Manager - User Manual - Blume (2002)   (12 citations)  (Correct)

....use CM are composed of separate libraries. Libraries are collections of ML compilation units. These collections themselves can be internally sub structured using CM s notion of library components. CM offers the following features to the programmer: separate compilation and type safe linking [AM94] hierarchical modularity [BA99] automatic dependency analysis [Blu99] optimization of the compilation process via cutoff recompilation techniques [ATW94] management of program libraries, distinguishing between libraries that are under development and libraries that are stable ....

....Manager) HLPR94b] and SC (for Separate Compilation) HLPR94a] CM owes many ideas to SC and IRM. Separate compilation in the SML NJ system heavily relies on mechanisms for converting static environments (i.e. the compiler s symbol tables) into linear byte stream suitable for storage on disks [AM94]. However, unlike all its predecessors, the current implementation of CM is integrated into the main compiler and no longer relies on the Visible Compiler interface. 45 A CM description file syntax A.1 Lexical Analysis The CM parser employs a context sensitive scanner. In many cases this ....

Andrew W. Appel and David B. MacQueen. Separate compilation for Standard ML. In Proc. SIGPLAN '94 Symp. on Prog. Language Design and Implementation, volume 29, pages 13--23. ACM Press, June 1994.


A Proof Method for the Correctness of Modularized 0CFA - Lee, Yi, Paek (2002)   (Correct)

....E analyze M 1 1 1 decl sig A ffi 1 Fig. 2. Incremental model for modular analysis. Module M 2 uses names declared in M 1 , and M 3 uses those of M 1 and M 2 . 3 Incremental Model for Modular Analysis We assume that a modular analysis works inside an incremental compilation environment [7]. A module consists of variable declarations ( x =e ) and a signature that lists a subset of the declared variables visible from other modules. Module M directly depends on another module M 0 , written M 0 M , iff M uses variables of M 0 . We assume an acyclic dependency between modules ....

....signature that lists a subset of the declared variables visible from other modules. Module M directly depends on another module M 0 , written M 0 M , iff M uses variables of M 0 . We assume an acyclic dependency between modules and we analyze modules in sequence by their topological order [7]. In cases that modules have a cyclic dependency, 1) we can consider mutually dependent modules as one unit of a modular analysis, or (2) we repeat analyzing mutually dependent modules until their analyses reach to a fixpoint. In this paper, we do not consider cyclic module dependencies. Figure 2 ....

A. W. Appel, D. B. MacQueen, Separate compilation for Standard ML, in: Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation, 1994, pp. 13--23.


A Compilation Manager for Standard ML of New Jersey - Harper, Pfenning, Lee, Rollins (1994)   (11 citations)  (Correct)

....we provide a mechanism for structuring collections of sources into what are called source groups. The design of the compilation manager (CM) presented here is closely bound to the visible compiler primitives of Standard ML of New Jersey, described in a companion paper by Appel and MacQueen [2]. In particular we rely on the SML NJ primitives for manipulating compile and run time environments, and for creating and using compilation units. These primitives provide the fundamental mechanisms needed to build a type safe CM that does not rely on hidden internal symbol table mechanisms or ....

....the source, and the result environment represents the bindings exported by the source. See The Definition of Standard ML [11] for a precise explanation of the role of environment in the semantics of SML. The followingsignaturesummarizes some importantoperations onenvironmentsprovidedbySML NJ: [2] signature ENVIRONMENT = sig type environment val layerEnv :environment environment environment val filterEnv :environment symbol list environment val pervasives :environment val topLevel :environment ref end The function layerEnv combines two environments by layering the first ....

[Article contains additional citation context not shown here]

Andrew W. Appel and David B. MacQueen. Separate Compilation for Standard ML. In ACM Symposium on Programming Language Design and Implementation, June 1994.


Using Parameterized Signatures to Express Modular Structure - Jones (1996)   (32 citations)  (Correct)

.... makes this approach very powerful too powerful in fact to permit compile time type checking without careful restrictions and extensions to ensure a suitable phase distinction [7] and to support features like sharing [14] Even then, it is still not possible to support true separate compilation [2] or to use modules as firstclass values [22, 12] ffl Manifest types (transluscent sums) 6, 13] are an attempt to bridge the gap between the weak and strong sum approaches described above. A module type 9c = Complex c is much like an existential, except that it exposes the fact that a ....

....to types, and describes the compiletime part of the functor. As the example above shows, it is sometimes necessary to inspect the implementation of a structure to find the value of a type component. Not surprisingly, this means that it is impossible to provide true separate compilation for SML [2]. Even the smartest recompilation scheme proposed by Shao and Appel [26] does not permit true separate compilation because it delays some type checking, and hence the detection of some type errors, to link time. The need for type sharing constraints in functor definitions is motivated by similar ....

Andrew W. Appel and David B. MacQueen. Separate compilation for Standard ML. In Conference on Programming Language Design and Implementation, Orlando, FL, June 1994.


... : Using Nondeterministic Choice as Part of a Deterministic.. - Blume (2000)   (Correct)

....N 0 N 0 B[N 0 =x] 0 V (M N) 0 V (App ) Figure 12: Classical natural semantics for the call by value calculus. 14 3 A real world example: Cross module inlining The SML NJ compiler [2] represents compilation units as closed functions that map imported values to exported values [3]. This fact can be exploited to conveniently express cross module inlining by manipulating the terms that represent these closed functions in intermediate language [4] If the source code of compilation unit U 2 has a free reference to a variable x exported from U 1 , then F 2 the function ....

Andrew W. Appel and David B. MacQueen. Separate compilation for Standard ML. In Proc. SIGPLAN '94 Symp. on Prog. Language Design and Implementation, volume 29, pages 13--23. ACM Press, June 1994.


A Shared-Memory Multiprocessor Implementation of.. - Suciu, Huelsbergen (1994)   (Correct)

....without programmer annotation; polymorphic types enable code reuse since, for example, a single polymorphic function can be used to map functions over different lists with different element types. Additionally, SML has a powerful typed module system that admits safe separate recompilation [AM94] Since ML types and modules are used heavily in the following exposition, we describe their pertinent features here. In addition to the base types int, real, bool, string, and unit 2 , ML permits user defined data types (e.g. a list data type) tuples, records, and function types. To ....

A. Appel and D. B. MacQueen. Separate compilation for standard ml. In ACM Sigplan Conference on Programming Language Design and Implementation, June 1994.


Simple objects for Standard ML - Reppy, Riecke (1996)   (23 citations)  (Correct)

....features. In general, our object types fit into SML in a natural fashion. For instance, type checking and compiling can proceed incrementally; it is not necessary to know the subtypes of an object type when compiling uses of the type, and hence interactive SML programming and separate compilation [AM94] are not affected by the addition of object types. SML allows type definitions, such as datatype declarations, to be parameterized. The list type definition on page 2 is one example of such a type constructor. We would like to extend the subtyping relation to instances of such constructors; for ....

Appel, A. W. and D. B. MacQueen. Separate compilation for Standard ML. In Conference Record of the 1994 ACM Conference on Programming Language Design and Implementation, June 1994, pp. 13--23.


Mechanisms for Secure Modular Programming in Java - Bauer, Appel, Felten (1999)   (3 citations)  Self-citation (Appel)   (Correct)

....private. Some programming languages provide adequate support for this model of programming. C [KR88] allows the separation of interfaces from implementations and even the hiding of representations [Han96] though without enforcing it as programming discipline. Modula3 [Nel91] and Standard ML [AM94] do a good job of both separating interfaces from implementations and supporting ADTs. Java, in its native form, is lacking in both respects. Java supports modular programming at both the class level and the package level. At the class level the interface facility of the language provides support ....

Andrew W. Appel and David B. MacQueen. Separate compilation for Standard ML. In ACM Conference on Programming Language Design and Implementation, pages 13--23, June 1994.


Axiomatic Bootstrapping: A guide for compiler hackers - Appel (1994)   (2 citations)  Self-citation (Appel)   (Correct)

....Standard ML of New Jersey (SML NJ) system, explaining the difficulties and how to manage them. Bin files. Source files are transated by SML NJ into bin files; 1 each bin file contains the executable machine code for the corresponding source, and the exported static environment for that source [1]. For example, if a source file defines two structures S and T , each with several components, then the static part of the bin file is a description of the structures S and T : the names and types of their components and substructures. The static part of the bin files is an ML data structure, ....

A. W. Appel and D. B. MacQueen. Separate compilation for Standard ML. In Proc. SIGPLAN '94 Symp. on Prog. Language Design and Implementation, page (to appear). ACM Press, June 1994.


An Implementation of Higher-Order Functors - Pierre Cr'egut David (1994)   (2 citations)  Self-citation (Macqueen)   (Correct)

....Local stamps have a scope associated with a particular elaboration process such as the instantiation of a functor parameter signature or the elaboration of a functor body. Global stamps must be unique and persistent, because they are used for type safe linkage of separate compilation units (see [AM94]) They are implemented by intrinsic persistent identifiers, which are 128 bit values computed by hashing the static environment data structure for a compilation unit. Stamps are stored in a data structure called the core that is described in the paragraphs on signatures and structures below. ....

Andrew Appel and David MacQueen. Separate compilation for Standard ML. In Proc. 1994 ACM Conf. on Programming Language Design and Implementation, New York, 1994. ACM Press.


Hierarchical Modularity - Blume, Appel (1998)   (1 citation)  Self-citation (Appel)   (Correct)

....Cardelli [1997] presents an excellent discussion of the problems that arise with modules and separate compilation. His notion of a linkset is used as a framework for describing and reasoning about consistent, type safe linking. Type safe linking, for example provided by SML NJ s visible compiler [Appel and MacQueen 1994], is a prerequisite of our analysis of the linking problem, but not the focus. In place of Cardelli s linksets our notation uses functions to express operations on environments and equations for describing their properties. They directly correspond to actual operations on real symbol tables and ....

Appel, A. W. and MacQueen, D. B. 1994. Separate compilation for Standard ML. In Proc. SIGPLAN '94 Symp. on Prog. Language Design and Implementation. SIGPLAN Notices 29, 6 (June), 13--23.


Lambda-Splitting: A Higher-Order Approach to Cross-Module.. - Blume, Appel (1997)   (22 citations)  Self-citation (Appel)   (Correct)

....checking already imposes an ordering on compilation steps, guaranteeing that whenenver a module B refers to something exported from module A, then A must be compiled before B, thereby ensuring that inlining information from A will be available at the time when B is compiled. Appel and MacQueen [AM94] describe how Standard ML of New Jersey implements separate compilation. Since this is the basis for our approach we will summarize it here: 1 In this paper we use the term module to always refer to compilation units, not to elements of the SML module language. A compilation unit consists of a ....

Andrew W. Appel and David B. MacQueen. Separate compilation for Standard ML. In Proc. SIGPLAN '94 Symp. on Prog. Language Design and Implementation, pages 13--23. ACM Press, June 1994.


Lambda-Splitting: A Higher-Order Approach to Cross-Module.. - Blume, Appel (1996)   (22 citations)  Self-citation (Appel)   (Correct)

....higher order functions. This allows us to view cross module 1 in 1 In this paper we use the term module to always refer to compilation units, not to elements of the SML module language. lining as a problem of manipulating such functions expressed in calculus. Appel and MacQueen [AM94] describe how Standard ML of New Jersey implements separate compilation. Since this is the basis for our approach we will summarize it here: A compilation unit consists of a number of definitions for types, values, signatures, structures, and functors. Types and signatures are relevant only for ....

Andrew W. Appel and David B. MacQueen. Separate compilation for Standard ML. In Proc. SIGPLAN '94 Symp. on Prog. Language Design and Implementation, pages 13-- 23. ACM Press, June 1994.


Axiomatic Bootstrapping: A guide for compiler hackers - Appel (1994)   (2 citations)  Self-citation (Appel)   (Correct)

....worth a whole paper to talk about bootstrapping the Standard ML of New Jersey (SML NJ) compiler Bin files: Source files are transated by SML NJ into bin files; 2 each bin file contains the executable machine code for the corresponding source, and the exported static environment for that source. [1] For example, if a source file defines two structures S and T , each with several components, then the static part of the bin file is a description of the structures S and T : the names and types of their components and substructures. The static part of the bin files is an ML data structure, ....

Andrew W. Appel and David B. MacQueen. Separate compilation for Standard ML. In Proc. SIGPLAN '94 Symp. on Prog. Language Design and Implementation, page (to appear). ACM Press, June 1994.


Generic Pickling and Minimization - Tack, Kornstaedt, Smolka (2005)   (1 citation)  (Correct)

No context found.

Appel, A. W. and D. B. MacQueen, Separate compilation for Standard ML, in: design and implementation (1994), pp. 13--23.


C∀, a Study in Evolutionary Design in Programming Languages - Jaramillo (2004)   (Correct)

No context found.

Andrew W. Appel and David B. MacQueen. Separate compilation for standard ML. In SIGPLAN Conference on Programming Language Design and Implementation, pages 13-23, 1994.


Program Fragments, Linking, and Modularization - Cardelli (1997)   (Correct)

No context found.

Appel, A.W. and D.B. MacQueen, Separate compilation for Standard ML. Proc. 1994.


HPGP: High-Performance Generic Programming for Computational.. - Hong, Schreiner (1997)   (1 citation)  (Correct)

No context found.

Andrew W. Appel and David B. MacQueen. Separate Compilation for Standard ML. Technical Report CS-TR-452-94, Princeton University, March 1994.


Language Support for Mobile Agents - Knabe (1995)   (34 citations)  (Correct)

No context found.

Andrew W. Appel and David B. MacQueen, June 1994. Separate compilation for Standard ML. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 13--23, Orlando, FL.

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