| Todd Millstein and Craig Chambers. Modular statically typed multimethods. In Proceedings of the Thirteenth European Conference on Object-Oriented Programming (ECOOP'99), volume 1628 of Lecture Notes in Computer Science, pages 279--303, Lisbon, Portugal, June 1999. Springer Verlag. |
....being symmetric. Generalizing to multimethods (any methods where dynamic dispatch depends on more than one argument) a multimethod is symmetric if all dispatching arguments are treated uniformly, that is, no argument has priority for determining an appropriate method. Millstein and Chambers [7] presented Dubious, an objectoriented core language with symmetric multimethods. Dubious uses a module system to reason about extensibility and features a static type system which ensures that programs that type check do not throw message not understood or message ambiguous errors. Functions are ....
Todd Millstein and Craig Chambers. Modular statically typed multimethods. In Proceedings of the Thirteenth European Conference on Object-Oriented Programming (ECOOP'99), volume 1628 of Lecture Notes in Computer Science, pages 279--303. Springer Verlag, 1999.
....techniques (e.g. visitor design pattern, aspect) thanks to its modular architecture and has generic visualization tools. Our visitor approach is strongly based on this research work [20] and very close to other developments [9,16,18] We essentially use a simpli ed version of the multi methods [7,19] instead of using accept methods. In this way, it is possible: to obtain much more readable visitor programs (i.e. without cast) thanks to the xpro le speci cations, to get a simple kind of adaptative programming [12,17] dedicated to our applications thanks to the tree traversal ....
T. Millstein and C. Chambers. Modular statically typed multimethods. In R. Guerraoui, editor, Proceedings ECOOP'99, LCNS 1628, pages 279303, Lisbon, Portugal, June 1999. Springer-Verlag.
....Conventional inheritance cannot be used to enhance these classes because it suffers from an extensibility problem [7] implementation added to a class by creating a new subclass is not also added to the original class s existing subclasses. In Jiazzi, we solve these problems with open classes [5, 19], which are classes that can be enhanced with new implementation without modifying their original source code. New implementation added to an open class are also added to the open class s existing subclasses. Open classes are implemented through linking in Jiazzi, and do not require changes to the ....
T. Millstein and C. Chambers. Modular statically typed multimethods. In Proc. of ECOOP, pages 279--303, July 1999.
....techniques (e.g. visitor design pattern, aspect) thanks to its modular architecture and has generic visualization tools. Our visitor approach is strongly based on this research work [21] and very close to other developments [10,17,19] We essentially use a simplied version of the multi methods [8,20] instead of using accept methods. In this way, it is possible: 16 Document BUS XSLT transformation BML document BML player VIEW XSLT XSLT transformation SERVLET XSLT APPLET WEB SERVICE WSDL CLIENT C# .net HTTP SOAP Fig. 26. How to access to SmartTools . to obtain much more ....
T. Millstein and C. Chambers. Modular statically typed multimethods. In R. Guerraoui, editor, Proceedings ECOOP'99, LCNS 1628, pages 279--303, Lisbon, Portugal, June 1999. Springer-Verlag.
....static and dynamic semantics in a consistent manner, independently of the base language. 1. INTRODUCTION Several propositions have been made to type check multimethods. Cecil [19] has a powerful type system, and the issue of modular type checking has been explored extensively in that framework [20]. However, its polymorphic type system is not even known to be decidable. ML [4] is a decidable type system for multi methods for which type checking is known to be tractable. Unfortunately, it does not infer types for lambda expressions. In this paper, we present a decidable type system for a ....
....of its parents. In our presentation, this corresponds to restrict implementations to only one pattern on the rst argument. It is then sucient to check that whenever a new type is de ned, all necessary implementations are also provided. More elaborate restrictions for multi methods are studied in [20]. We discuss brie y the issue of inference for open generic functions in Appendix A.3.1. 3.3 ML ML [3, 4] is a rank 1 polymorphic constrained type system. It has been developed to type an extension of ML with multi methods and object orientation. However, it requires type annotations on ....
[Article contains additional citation context not shown here]
T. Millstein and C. Chambers. Modular statically typed multimethods. In Proceedings of the Thirteenth European Conference on Object-Oriented Programming (ECOOP'99), volume 1628 of Lecture Notes in Computer Science, pages 279-303, Lisbon, Portugal, June 1999. Springer Verlag.
....to the concept of multimethods [2] In a language supporting multimethods, such as Cecil [5] stand alone messages could be emulated by introducing an additional dispatch parameter modeling the originating module. Despite recent progress regarding type safety and modularity of multimethods [32], the concept is not yet supported in mainstream languages. Stand alone messages are conceptually simpler than multimethods because they only rely on the established notion of modules and add no additional concerns for separate compilation. They also maintain the established object oriented ....
Todd Millstein and Craig Chambers. Modular statically typed multimethods. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP), volume 1628 of Lecture Notes in Computer Science, pages 279--303. Springer-Verlag, June 1999. 33
....techniques (e.g. visitor design pattern, aspect) thanks to its modular architecture and has generic visualisation tools. Our visitor approach is strongly based on this research work [23] and very close to other developments [11, 19, 21] We essentially use a simpli ed version of the multi methods [22, 9] instead of using accept methods. In this way, it is possible: to obtain much more readable visitor programs (i.e. without cast) thanks to the xpro le speci cations, to get a simple kind of adapative programming [15, 20] dedicated to our applications thanks to the tree traversal ....
T. Millstein and C. Chambers. Modular statically typed multimethods. In R. Guerraoui, editor, Proceedings ECOOP'99, LCNS 1628, pages 279303, Lisbon, Portugal, June 1999. Springer-Verlag.
....whose semantics is related to object state. Nevertheless, for operations that depend on the kind of component or on the relations between objects, late binding on all arguments is sometimes more suitable. This feature is known as multipolymorphism and could be achieved with multi methods [8, 6, 4, 16, 18, 7, 9]. This paper presents a simple implementation of multi methods in an optional package that does not extends the core language nor modi es the Java Virtual Machine (JVM) semantics. This Java Multi Method Framework (JMMF) package is a pure Java API that intensively uses the re ection mechanism of ....
....type. Thus, the DAG is completed with this special type which annotation is directly constructed from methods pro le. Then at invocation time, the disambiguation process is exactly the same as the one of classical argument types. 8 Related works There exists a lot of works on multi methods [1, 8, 6, 3, 18], but in this section we will focus on works concerning the introduction of multi methods in Java. We will present these works in chronological order. Boyland and Castagna [4] rst proposed to extend Java with parasitic methods which provide some special form of late binding on all parameters. ....
Todd Millstein and Craig Chambers. Modular statically typed multimethods. In ECOOP'99 proceedings, number 1628 in LNCS, pages 279-303, Lisbon, Portugal, June 1999.
....whose semantics is related to object state. Nevertheless, for operations that depend on the kind of component or on the relations between objects, late binding on all arguments is sometimes more suitable. This feature is known as multi polymorphism and could be achieved with multi methods [8, 7, 5, 13, 15]. This paper presents a optional package providing Java with multi methods without extending the core language nor modifying the Java Virtual Machine (JVM) semantics. This Java Multi Method Framework (JMMF) package is a pure Java API that uses the re ection mechanism of the language. This choice ....
....de nition. Our approach intensively uses the Java re ection mechanism rather than dynamically producing parts of code (generation of instanceof tests) The relative eciency and the usability of JMMF validate our choice of using re ection. With respect to other research works on multi method [1, 4, 5, 15] that address typing issues, ours focus on implementation eciency and on the simplicity of design and use rather than on static type checking. The most important issue of this framework is that it provides the programmer with an easy way to design and maintain algorithm speci cation. In ....
Todd Millstein and Craig Chambers. Modular statically typed multimethods. In ECOOP'99 proceedings, number 1628 in LNCS, pages 279-303, Lisbon, Portugal, June 1999.
....whose semantics is related to object state. Nevertheless, for operations that depend on the kind of component or on the relations between objects, late binding on all arguments is sometimes more suitable. This feature is known as multi polymorphism and could be achieved with multi methods [8, 7, 5, 13, 15]. This paper presents a optional package providing Java with multi methods without extending the core language nor modifying the Java Virtual Machine (JVM) semantics. This Java Multi Method Framework (JMMF) package is a pure Java API that uses the re ection mechanism of the language. This choice ....
....de nition. Our approach intensively uses the Java re ection mechanism rather than dynamically producing parts of code (generation of instanceof tests) The relative eciency and the usability of JMMF validate our choice of using re ection. With respect to other research works on multi method [1, 4, 5, 15] that address typing issues, ours focus on implementation eciency and on the simplicity of design and use rather than on static type checking. The most important issue of this framework is that it provides the programmer with an easy way to design and maintain algorithm speci cation. In ....
Todd Millstein and Craig Chambers. Modular statically typed multimethods. In Proceedings of European Conference on Object-Oriented Programming (ECOOP 99), number 1628 in LNCS, pages 279-303, Lisbon, Portugal, June 1999.
....we can make a research contribution is designing support for separation of concerns in the context of a high level, orthogonal object oriented language. A module system for Cecil would preserve the language s support for multi methods, open objects and static types, building on existing research [MC99] to allow separate compilation. It would support first class, parameterized, hierarchical modules with a separate linking language powerful enough to express software architecture. Modules would express different interfaces to clients, extenders, and perhaps privileged clients. The language ....
Todd Millstein and Craig Chambers. Modular Statically Typed Multimethods. Proc. 13th European Conference on Object-Oriented Programming, Lisbon, Portugal, June 1999.
....type of all method arguments into account. Like views, multi methods can be defined independently of their argument classes. But multi methods are more general than views in that they abandon the concept of a distinguished receiver argument and in that they require multiple dispatch. Open objects [MC99] are an idiom of multi methods which is comparable to views. Like views, Haskell s type classes allow a distributed definition of functionality over data types. Qualification of type variables in a qualified type corresponds to F bounded qualification of views [CCH 89] A number of di#erent ....
Todd Millstein and Craig Chambers. Modular statically typed multimethods. In Proc. ECOOP, number 1628 in LNCS, pages 279--303. Springer Verlag, June 1999.
....shedding new light on how those languages achieve modular typechecking. Despite the imposed requirements, EML s classes and functions are still able to simultaneously express traditional functional and OO extensibility idioms. The requirements are adapted from our earlier work on Dubious [20, 21], a calculus designed to explore modular typechecking for OO languages based on multimethods. The rest of the paper is organized as follows. Section 2 describes EML by example. Section 3 discusses the challenges for performing modular implementation side typechecking in EML and presents our ....
.... is described by the following grammar, which includes class instances, function values, and tuple values: v : Ct = v (v) In the presence of multiple implementation inheritance, other kinds of ambiguities that elude modular detection can arise, necessitating an extra requirement [21]. However, multiple interface inheritance, as in Java, cannot cause such ambiguities. 11 Ct = t C) concrete(C) rep(Ct(E 0 ) Ct(E 0 ) E NEW 0 = v 0 ,V = E,V 1 = E 1 0 = v 0 ,V = E # ,V 1 = E 1 E REP (v 0 , E,E 1 ) v 0 , E # , E 1 ) E TUP E # 1 E 2 ....
[Article contains additional citation context not shown here]
T. Millstein and C. Chambers. Modular statically typed multimethods. Information and Computation, 175(1):76--118, May 2002.
....shedding new light on how those languages achieve modular typechecking. Despite the imposed requirements, EML s classes and functions are still able to simultaneously express traditional functional and OO extensibility idioms. The requirements are adapted from our earlier work on Dubious [20, 21], a calculus designed to explore modular typechecking for OO languages based on multimethods. The rest of the paper is organized as follows. Section 2 describes EML by example. Section 3 discusses the challenges for performing modular implementation side typechecking in EML and presents our ....
....class. OO languages allow a new subclass to be added to an existing class, along with associated overriding methods that have the new subclass as their receiver. To formulate this idiom in EML we employ a function s owner position, which generalizes a similar notion in the Dubious language [20]. A function s owner position has some properties in common with the receiver position in standard OO languages. Rather than forcing the owner position to be the first argument to a function, it can be specified as an arbitrary (and arbitrarily nested) position of the argument, via the # in a ....
[Article contains additional citation context not shown here]
T. Millstein and C. Chambers. Modular statically typed multimethods. In R. Guerraoui, editor, ECOOP '99 -- Object-Oriented Programming 13th European Conference, Lisbon Portugal, volume 1628 of Lecture Notes in Computer Science, pages 279-- 303. Springer-Verlag, New York, NY, June 1999.
No context found.
Todd Millstein and Craig Chambers. Modular statically typed multimethods. In Proceedings of the Thirteenth European Conference on Object-Oriented Programming (ECOOP'99), volume 1628 of Lecture Notes in Computer Science, pages 279--303, Lisbon, Portugal, June 1999. Springer Verlag.
No context found.
T. Millstein and C. Chambers. Modular Statically Typed Multimethods. Information and Computation, 175(1):76--118, 2002.
No context found.
T. Millstein and C. Chambers. Modular statically typed multimethods. In R. Guerraoui, editor, Proceedings ECOOP'99, LCNS 1628, pages 279--303, Lisbon, Portugal, June 1999. Springer-Verlag.
No context found.
T. Millstein and C. Chambers. Modular statically typed multimethods. In R. Guerraoui, editor, Proceedings ECOOP'99, LCNS 1628, pages 279--303, Lisbon, Portugal, June 1999. Springer-Verlag.
No context found.
Todd Millstein and Craig Chambers. Modular statically typed multimethods. In R. Guerraoui, editor, Proceedings ECOOP'99, LCNS 1628, pages 279--303, Lisbon, Portugal, June 1999. Springer-Verlag.
No context found.
T. Millstein and C. Chambers. Modular statically typed multimethods. In R. Guerraoui, editor, Proceedings ECOOP'99, LCNS 1628, pages 279303, Lisbon, Portugal, June 1999. Springer-Verlag.
No context found.
T. Millstein, C. Chambers, Modular statically typed multimethods, in: Proceedings of the European Conference on Object-Oriented Programming (ECOOP), Vol. 1628 of Lecture Notes in Computer Science, Springer-Verlag, 1999, pp. 279--303.
No context found.
T. Millstein, C. Chambers, Modular statically typed multimethods, in: Proceedings of the European Conference on Object-Oriented Programming (ECOOP), Vol. 1628 of Lecture Notes in Computer Science, Springer-Verlag, 1999, pp. 279--303.
No context found.
T. Millstein and C. Chambers. Modular statically typed multimethods. In R. Guerraoui, editor, ECOOP '99 --- Object-Oriented Programming 13th European Conference, Lisbon Portugal, volume 1628 of Lecture Notes in Computer Science, pages 279--303. Springer-Verlag, New York, NY, June 1999.
No context found.
T. Millstein and C. Chambers. Modular statically typed multimethods. In R. Guerraoui, editor, Proceedings ECOOP'99, LCNS 1628, pages 279--303, Lisbon, Portugal, June 1999. Springer-Verlag.
No context found.
Todd D. Millstein and Craig Chambers. Modular statically typed multimethods. In Proceedings of the 1999.
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