18 citations found. Retrieving documents...
Suresh Jagannathan. Metalevel building blocks for modular systems. ACM TOPLAS, 16(3):456--492, May 1994.

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:
Dynamic Rebinding for Marshalling and Update, with .. - Bierman, Hicks..   (Correct)

....classes of variable (one treated statically and one dynamically) or one class of variable, with some other way of specifying which are rebound in any particular marshal unmarshal instance. Two classes were used in some related systems, though not motivated by marshalling [LLMS00, LF93, Dam98, Jag94] discussed further in 5) The disadvantages of the two class choice are: a) it is less flexible than our use of marks, in which di#erent marshals and unmarshals can refer to di#erent marks, e.g. in the examples of 3.6; and (b) if the types or usage forms of the two classes di#er, then ....

....to static scoping with explicit rebinding, the quasi static scoping Scheme extension of Lee and Friedman [LF93] and the #N calculus of Dami [Dam98] both have two classes of variable with a rebinding primitive that specifies new bindings for individual variables. Jagannathan s Rascal language [Jag94] maintains both a static environment and a public environment, corresponding again to two variable classes. The barrier, reify, and reflect operations allow explicit manipulation of the variables bound by an entire term context. Outside the above classification, MIT Scheme also permits explicit ....

Suresh Jagannathan. Metalevel building blocks for modular systems. ACM TOPLAS, 16(3):456--492, May 1994.


Dynamic Rebinding for Marshalling and Update, with.. - Bierman, Hicks.. (2003)   (Correct)

....classes of variable (one treated statically and one dynamically) or one class of variable, with some other way of specifying which are rebound in any particular marshal unmarshal instance. Two classes were used in some related systems, though not motivated by marshalling [LLMS00, LF93, Dam98, Jag94] discussed further in 5) The disadvantages of the two class choice are: a) it is less flexible than our use of marks, in which different marshals and unmarshals can refer to different marks, e.g. in the 3.6 examples; and (b) if the types or usage forms of the two classes differ, then changing ....

....to static scoping with explicit rebinding, the quasi static scoping Scheme extension of Lee and Friedman [LF93] and the #N calculus of Dami [Dam98] both have two classes of variable with a rebinding primitive that specifies new bindings for individual variables. Jagannathan s Rascal language [Jag94] maintains both a static environment and a public environment, corresponding again to two variable classes. The barrier, reify, and reflect operations allow explicit manipulation of the variables bound by an entire term context. Outside the above classification, MIT Scheme also permits explicit ....

Suresh Jagannathan. Metalevel building blocks for modular systems. ACM TOPLAS, 16(3):456--492, May 1994.


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

....in Java, the constructor that instantiates a class depends on the constructor for the superclass. Other languages, such as 244 definitions = type defn datatype de.in value de.in type de]n = type t : a signature = sig imports exports depends dependency r dependency t t Figure 16: Syntax for UNITe (type equations) tde 1 tdi 1 tde2 , tdi 2 Xe2:Te2 Xe2 e2 :qXe2lTel Xel. iel: Tel Te2 sig[il, el, dil , del , bl ] sig[i2, e, di, de2, b2] Figure 17: Subtyping in UNIT, signatures ML, support type equations that introduce new types without explicit ....

....To prevent these cycles, signatures must include information about dependencies between imported and exported types. The dependency information can be used to verify that cychc definitions are not created in hnking expressions. UNITe extends UNITe with type dependencies and equations. Figure 16 defines syntax extensions for UNIT, including a new signature form that contains a depends clause. The dependency declaration te . ti means that an exported type t depends on an imported type ti. When two units are linked with a compound expression, tracing the set of dependencies can ensure ....

[Article contains additional citation context not shown here]

JAGANNATHAN, S. Metalevel building blocks for modu- lar systems. ACM Transactions on Programming Languages and Systems 16, 3 (May 1994), 456-492.


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

....3.1, our unit model incorporates ideas from distinct language communities, particularly those using packages and ML style modules. The Scheme and ML communities have produced a large body of work exploring variations on the standard module system, especially variations for higher order modules [6, 15, 33, 39, 50, 53, 54, 57, 82]. Duggan and Sourelis [18] have investigated mixin modules for specifying recursive and extensible definitions across modules; their approach is 65 different from ours in its emphasis on extensible datatypes. Crary, Harper, and Puri [14] model an extension of ML functors that allows mutually ....

....bringing together modules and classes focuses on unifying the constructs within a single model. Lee and Friedman [50, 51] investigate languages that work directly on variables and bindings, which provides a theoretical foundation for implementing both modules and classes. Similarly, Jagannathan [39] and Miller and Rozas [61] propose first class environments as a common mechanism. Bracha [7] explores mixins for both modular and object oriented programming; Ancona and Zucca [5] provide a categorical treatment of this view. Our work is complementary to all of the above work, because we ....

Jagannathan, S. Metalevel building blocks for modular systems. ACM Transactions on Programming Languages and Systems, 16(3):456--492, May 1994.


An Application Framework for Module Composition Tools - Banavar, Lindstrom (1996)   (10 citations)  (Correct)

....uniform use of first class values and the expression oriented nature of Scheme. Consequently, we argue that the incorporation of CM into a module system for Scheme can be very beneficial. There is previous work on Scheme module systems based on reflective operations on first class environments [18]; however, the CMS module system is different in its approach and scope, please see [3] Module definition and encapsulation. A module in CMS is a Scheme value that is created with the mk module primitive. It consists of a set of attributes (symbolbinding pairs) with no order significance. ....

Suresh Jagannathan. Metalevel building blocks for modular systems. ACM Transactions on Programming Languages and Systems, 16(3):456--492, May 1994.


A Layered Object Oriented Programming Language - Clark (1997)   (Correct)

....in producing this report: ffl Cook [8] 9] 10] 12] 13] 11] has been very influential in identifying the underlying concepts of OOPLs and was responsible for first reporting the correspondence between various occurrences of self reference in OOPLS and the Y combinator. ffl [1] 18] 25] [17] were responsible for first reporting the correspondence between environment reification and inheritance. ffl [4] 2] 3] have all developed elegant record calculi as a basis for OOPLs, although in most cases these works are more interested in the type theory behind object languages. ffl The ....

Jagannathan, S. 1994 Metalevel Building Blocks for Modular Systems. ACM TOPLAS 16 3.


Transforming Sequences using Threaded Morphisms - Clark Department Of   (Correct)

....f) containing a binding environment e and a function closure f . The result is a new function closure which is the same as f except that the binding environment has been replaced with e. The primitive components necessary to provide environment reification are discussed at more length in [11] [9] and [3] The infix operator , extends the binding environment of a function closure let e , f = I(e (R(f) f) The operator class constructs classes from a superclass c and an extension x which defines attribute names and methods let class(c; x) v 1 ; v 2 ) let (o 1 ; a 1 ) c(v 1 ) ....

Jagannathan, S. (1994) "Metalevel Building Blocks for Modular Systems" ACM TOPLAS 16 3 456 -- 492.


Metaclasses and Reflection in Smalltalk - Clark (1997)   (Correct)

....features. See [20] 15] and [17] for more recent work on particlar aspects of metaclasses in object oriented programming languages. The use of first class identifier binding environments as a basis for objects and related programming language features is described in [23] 1] 18] 11] 12] [22] and [29] There is a collection of literature describing elegant record (environment) calculi used as the basis of object oriented programming language semantics including [8] 9] 10] and [21] The issues of reflection in object oriented programming languages has been developed from an abstract ....

Jagannathan, S. Metalevel Building Blocks for Modular Systems. ACM TOPLAS 16 3. (1994)


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

....3.1, our unit model incorporates ideas from distinct language communities, particularly those using packages and ML style modules. The Scheme and ML communities have produced a large body of work exploring variations on the standard module system, especially variations for higher order modules [6, 15, 33, 39, 50, 53, 54, 57, 82]. Duggan and Sourelis [18] have investigated mixin modules for specifying recursive and extensible definitions across modules; their approach is 65 different from ours in its emphasis on extensible datatypes. Crary, Harper, and Puri [14] model an extension of ML functors that allows mutually ....

....bringing together modules and classes focuses on unifying the constructs within a single model. Lee and Friedman [50, 51] investigate languages that work directly on variables and bindings, which provides a theoretical foundation for implementing both modules and classes. Similarly, Jagannathan [39] and Miller and Rozas [61] propose first class environments as a common mechanism. Bracha [7] explores mixins for both modular and object oriented programming; Ancona and Zucca [5] provide a categorical treatment of this view. Our work is complementary to all of the above work, because we ....

Jagannathan, S. Metalevel building blocks for modular systems. ACM Transactions on Programming Languages and Systems, 16(3):456--492, May 1994.


Modular Object-Oriented Programming with Units and Mixins - Findler, Flatt (1998)   (53 citations)  (Correct)

....Work Much of the previous research on modules and classes focused on unifying the constructs. Lee and Friedman [26, 27] investigated languages that work directly on variables and bindings, which provides a theoretical foundation for implementing both modules and classes. Similarly, Jagannathan [21] and Miller and Rozas [29] proposed first class environments as a common mechanism. Bracha [3] has explored mixins for both modular and object oriented programming; Ancona and Zucca [1] provide a categorical treatment of this view. Our work is complementary to all of the above work, because we ....

Jagannathan, S. Metalevel building blocks for modular systems. ACM Transactions on Programming Languages and Systems, 16(3):456--492, May 1994.


An Application Framework For Compositional Modularity - Banavar (1995)   (4 citations)  (Correct)

....module systems facilitate the manipulation of namespaces. Given that namespaces exist as environments at run time, it seems natural to support modules themselves as first class entities. Additionally, this results in uniformity 16 of manipulable values. Languages such as Pebble [11] Rascal [40, 41], and others [72] support first class modules. It is worth mentioning that support for higher order modules does not necessarily mean that modules are first class. For instance, a higher order SML module system such as in ref. 35] might support functors with functor parameters, or higher order ....

....to be type correct in the presence of inheritance, without actually re typechecking the superclass. 19 Inheritance has traditionally been characterized as an operational mechanism. More recently, there have been some denotational characterizations of the notion of classes and inheritance [10, 24, 41]. The one that is relevant to this work is due to Cook, in whose original formulation [24] a class is viewed as a record abstracted over its own notion of what self means. References to symbols within the class are made via the abstracted self parameter. Furthermore, inheritance is viewed as an ....

[Article contains additional citation context not shown here]

Jagannathan, S. Metalevel building blocks for modular systems. ACM Transactions on Programming Languages and Systems 16, 3 (May 1994), 456-- 492.


Translation of First-Class Environments to Records - Nishizaki, Akama   (Correct)

....1) env) let ( x 1) the environment) The expression ( x 1) is not evaluated under the environment where it appears, but under the one where (the environment) appears. Therefore, the result is 2. This construct will support packaging of procedures (see [AS85] or object oriented programming [Jag94] Moreover we expect that first class environment mechanism gives us insight for integrating programming languages in other paradigms into a functional language, since the notion of environment is common among many programming languages. For example, since statements in imperative languages can be ....

Suresh Jagannathan. Metalevel building blocks for modular systems. ACM Transactions on Programming Languages and Systems, 16(3):456--492, 1994.


Compositionally Modular Scheme - Banavar, Lindstrom   (Correct)

....retroactive hiding operation. In the context of Scheme, it is natural to support modules as first class values. The uniformity and expressive power obtained by using first class modules was recognized in the early language Pebble [3] More recently, many other languages such as FX [19] and Rascal [12] also support first class modules. Some Scheme implementations support first class environments, which can be dynamically created and extended, and expressions evaluated within them. The environment can also be captured at any point by using a special primitive, such as the environment. However, ....

....by using a special primitive, such as the environment. However, such simple notions of environments are not very powerful the only useful operation defined on them is eval. A more powerful notion of first class environments with reflective operations has been proposed in the language Rascal [12]. While CMS and Rascal are similar in that they support operations on first class abstractions, the approaches used are entirely different. Rascal uses the approach of reflection, adaptation, and reification of first class environments. CMS uses the approach of module combination and adaptation ....

Suresh Jagannathan. Metalevel building blocks for modular systems. ACM Transactions on Programming Languages and Systems, 16(3):456--492, May 1994.


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

....2, our unit model incorporates ideas from distinct language communities, particularly those using packages and ML style modules. The Scheme and ML communities have produced a large body of work exploring variations on the standard module system, especially variations for higher order modules [2, 4, 12, 16, 18, 20, 21, 23, 29]. Duggan and Sourelis [5] have investigated mixin modules for specifying recursive and extensible definitions across modules; their work and ours have no overlap. Cardelli [3] anticipated the unit language s emphasis on module linking as well as module definition. Our unit model is more concrete ....

Jagannathan, S. Metalevel building blocks for modular systems. ACM Transactions on Programming Languages and Systems 16, 3 (May 1994), 456--492.


Sharing Code through First-class Environments - Queinnec, DeRoure (1996)   (7 citations)  (Correct)

....a program is implicitly parameterized with respect to its free variables. Therefore, to be able to share code, we must specify in which environments free variables must be found; this may be achieved through the existence of first class environments as in [BL84, RAM84, FF86, GJL87, MR91, Jag94, LF93] A code to be shared may then be represented by a module, a function that expects an environment providing the (locations of the) free variables that the program needs for its evaluation. The essence of our proposal is to offer two new special forms to handle first class environments i.e. ....

....it) iii ) are versatile enough to promote new useful programming techniques (modules, objects, etc. iv) may be exercised to explain the behavior of toplevel environments. Our proposal roughly stands as a new point among the pioneering works of [BL84, RAM84, FF86, GJL87, Lam88, CR90, MR91, Jag94, Tun92, LF93, DPS94] on module, exportation and importation systems. We improve on [LF93] since we are able to manage extensible environments and implicit sets of free variables with a much simpler semantics, while we offer some reflective features of [Jag94] without impeding compilation ....

[Article contains additional citation context not shown here]

Suresh Jagannathan. Metalevel building blocks for modular systems. ACM Transaction on Programming Languages and Systems, 16(3):456--492, May 1994.


Dynamic Rebinding for Marshalling and Update, with .. - Bierman, Hicks.. (2004)   (Correct)

No context found.

Suresh Jagannathan. Metalevel building blocks for modular systems. ACM TOPLAS, 16(3):456--492, May 1994.


The Meta-Modeling Language Calculus: Foundation Semantics for.. - Clark, Evans, Kent (2001)   (2 citations)  (Correct)

No context found.

Jagannathan S. (1994) Metalevel Building Blocks for Modular Systems. ACM TOPLAS 16(3).


Dynamic Rebinding for Marshalling and Update, with .. - Bierman, Hicks..   (Correct)

No context found.

Suresh Jagannathan. Metalevel building blocks for modular systems. ACM TOPLAS, 16(3):456--492, May 1994.

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