| Suresh Jagannathan. Metalevel building blocks for modular systems. ACM TOPLAS, 16(3):456--492, May 1994. |
....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.
....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.
....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.
....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.
....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.
....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.
....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.
....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)
....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.
....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.
....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.
....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.
....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.
....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.
....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.
No context found.
Suresh Jagannathan. Metalevel building blocks for modular systems. ACM TOPLAS, 16(3):456--492, May 1994.
No context found.
Jagannathan S. (1994) Metalevel Building Blocks for Modular Systems. ACM TOPLAS 16(3).
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