18 citations found. Retrieving documents...
S. Krishnamurthi, M. Felleisen, D. P. Friedman, "Synthesizing Object-Oriented and Functional Design to Promote Re-Use", European Conference on Object-Oriented Programming (ECOOP), Brussels, Belgium, July 1998.

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:
FC++: Functional tools for object-oriented tasks - Smaragdakis, McNamara (2000)   (Correct)

....to adapt it by creating a wrapper object) It has long been identified that functional techniques can be used in the implementation of design patterns. For instance, the Visitor pattern is often considered a way to program functionally in OO languages. The interested reader should see Reference [15] and its references for a discussion of Visitor. The Smalltalk class MessageSend (and its variants, see Reference [16] p.254) the C Standard Library functors, Alexandrescu s framework (Reference [12] Ch. 5) etc. are all trying to capture the generic concept of a function and use it in ....

S. Krishnamurthi, M. Felleisen, D. P. Friedman, "Synthesizing object-oriented and functional design to promote re-use", European Conference on Object-Oriented Programming (ECOOP), Brussels, Belgium, July 1998.


Modular Typechecking for Hierarchically Extensible.. - Millstein, Bleckner.. (2002)   (2 citations)  (Correct)

....is an extended version of the paper of the same name in the 2002 International Conference on Functional Programming, Pittsburgh, PA, October 4 6, 2002. 1 Introduction Many researchers have noted a difference in the extensibility benefits offered by the functional and object oriented (OO) styles [26, 8, 23, 10, 18, 14, 28]. Functional languages like ML allow new operations to be easily added to existing datatypes (by adding new fun declarations) without requiring access to existing code. However, new data variants cannot be added without a potentially whole program modification (since existing functions must be ....

S. Krishnamurthi, M. Felleisen, and D. P. Friedman. Synthesizing object-oriented and functional design to promote re-use. In E. Jul, editor, ECOOP'98--Object-Oriented Programming, 12th European Conference, Brussels, Belgium, volume 1445 of Lecture Notes in Computer Science, pages 91--113. Springer-Verlag, July 1998.


Implementing Extensible Compilers - Zenger, Odersky (2001)   (2 citations)  (Correct)

....requires both, extensibility of the datatype modelling the abstract syntax and the set of passes operating on this type. Furthermore it is often necessary to adapt existing passes. Flatt [12] calls this well known problem of extending data and operations simultaneously the extensibility problem [6, 7, 11, 12, 15, 17, 28]. Unfortunately, neither a functional nor an object oriented approach solves this problem in a satisfactory way. With an object oriented language such a datatype would be implemented as a set of classes sharing a common interface. We call these classes variants of the datatype. Whereas extending ....

....variants [14] and the extensible types of the ML2000 proposal [1] 31] compares both approaches with our work. Several papers discuss the extensibility of algebraic types in the context of building extensible interpreters in functional languages [19, 10, 8] Due to lack of space we refer to [17] for a short discussion. The literature also provides several modifications of the Visitor design pattern targeted towards extensibility. Krishnamurthi, Felleisen and Friedman introduce the composite design pattern Extensible Visitor [17] Their programming protocol keeps visitors open for later ....

[Article contains additional citation context not shown here]

S. Krishnamurthi, M. Felleisen, and D. Friedman. Synthesizing object-oriented and functional design to promote re-use. In European Conference on ObjectOriented Programming, pages 91--113, 1998.


Extensible Algebraic Datatypes with Defaults - Zenger, Odersky (2001)   (5 citations)  (Correct)

....been successfully applied in the implementation of an extensible Java compiler. Our technique allows for the reuse of existing components in compiler extensions without the need for any adaptations. 1. INTRODUCTION 1. 1 Extensibility Problem The extensibility problem has been extensively studied [5, 6, 10, 11, 16, 19, 22, 30]. It can be paraphrased as follows: Given a recursively defined set of data and operations on them, how can one add both new data variants and new operations on variants without changing or duplicating existing code This is not only an academic question. Extending a system by modifying source ....

....of both data and functions. But adding a new function is very tedious, since it requires that all variants have to be subclassed. Krishnamurthi, Felleisen and Friedman show that we can apply a similar coding scheme to the functional approach to make it also support variant extensions [19]. They describe the composite design pattern Extensible Visitor that keeps visitors open for later extensions. Whenever a new variant class is added, all existing visitors have to be subclassed in order to support this new variant. Otherwise a runtime error will appear as soon as an old visitor is ....

[Article contains additional citation context not shown here]

S. Krishnamurthi, M. Felleisen, and D. Friedman. Synthesizing object-oriented and functional design to promote re-use. In European Conference on Object-Oriented Programming, pages 91--113, 1998.


Bridging Functional and Object-Oriented Programming - Smaragdakis, McNamara   (Correct)

....is often considered more in line with the functional paradigm. Thus, Visitor can be seen as a way to program functionally in OO languages. This observation is old and has been made several times independently. We will not elaborate on the topic here the interested reader should consult [7] and its references for more information. Virtual Proxies. The Virtual Proxy pattern seeks to put off expensive operations until they are actually needed. For example, a word processor may load a document which contains a number of images. Since many of these images will reside on pages of the ....

S. Krishnamurthi, M. Felleisen, D. P. Friedman, "Synthesizing Object-Oriented and Functional Design to Promote Re-Use", European Conference on Object-Oriented Programming (ECOOP), Brussels, Belgium, July 1998.


Modeling Behavior with Personalities - Blando, Lieberherr, Mezini (1999)   (2 citations)  (Correct)

....However, these approaches are lower level with regard to modeling high level popular functions as compared to Personalities. None of them provides for guaranteed semantics of the popular behaviors and for declaring the interface expected from the personifying classes. The work presented in [12] also considers the need for synthesizing object oriented and functional decompositions. The visitor pattern [7] is considered as a technique for filling the gap. However, the problem with this approach is that each visitor needs to somehow declare to which types its popular behavior applies. It ....

Krishnamurthi S., Felleisen M., Friedman D. Synthesizing Object-Oriented and Functional Design to Promote Reuse. In Proceedings of ECOOP '98, Lecture Notes, 1998.


Modeling Behavior with Personalities - Luis Blando Karl (1999)   (2 citations)  (Correct)

....personifying classes. However, they provide more flexible behavior composition that could be used to implement Personalities instead of using delegation. In particular, Rondo and the context relationship approaches could be used in our future work on dynamic Personalities. The work presented in [10] also considers the need for synthesizing object oriented and functional decompositions. The visitor pattern [5] is considered as a technique for filling the gap. The visitor pattern could be used in our running example, as follows. First, each popular behavior will be modeled in a separate ....

Krishnamurthi Shiram, Felleisen Mathias, and Friedman Daniel. Synthesizing Object-Oriented and Functional Design to Promote Reuse. In Proceedings of ECOOP '98, Lecture Notes on Computer Science, Springer Verlag, 1998.


An Extensible and Object-Oriented Authorization Model.. - Jeong, Kim, Oh, Chung, .. (2000)   (Correct)

....s as a tree, a subject type can be based on a hierarchical classification scheme. In this case, a type is a node in the hierarchy and t s gives the set of subjects associated with that node. 1 For a concrete object oriented design of our mathematical model, we use the EX TENSIBLEVISITOR pattern [2], which is applicable only when the problem require recursively specified types of data and a collection of tools that operate on these data. We show how we can map the mathematical structures imposed by type sets and type functions into recursively specified data types and achieve the ....

S. Krishnamurthi, M. Felleisen, and D. P. Friedman. Synthesizing object-oriented and functional design to promote re-use. In Proceedings of the Twelfth European Conference on Object-Oriented Programming (ECOOP 98), 1998.


Modeling Behavior with Personalities - Blando, Lieberherr, al. (1999)   (2 citations)  (Correct)

....None of them provides for guaranteed semantics of the popular behaviors and for declaring the interface expected from the personifying classes. However, they provide more flexible behavior composition that could be used to implement Personalities instead of using delegation. The work presented in [12] also considers the need for synthesizing object oriented and functional decompositions. The visitor pattern [7] is considered as a technique for filling the gap. The visitor pattern could be used in our running example, as follows. First, each popular behavior will be modeled in a separate ....

Krishnamurthi S., Felleisen M., Friedman D. Synthesizing Object-Oriented and Functional Design to Promote Reuse. In Proceedings of ECOOP '98, Lecture Notes, 1998.


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

....Kuhne s [49] solution, which relies on generic procedures with double dispatching, can interfere with the hierarchical structure of the program. Palsberg and Jay s [65] solution is based on reflection operators and incurs a substantial run time penalty. Krishnamurthi, Felleisen, and Friedman [21, 48] propose an efficient solution that works with standard class mechanisms, but it requires the implementation (and maintenance) of a complex programming protocol. All of these solutions are partial because they do not address the reuse of clients. In contrast, the combination of units and mixins ....

....ffl ffi fi fl (a) Original Datatype Client ffl ffi fi fl Client ffl ffi fi fl (b) New Variant Client ffl ffi fi fl Client ffl ffi fi fl (c) New Operation Figure 2. 1 : Extensible programming on datatypes The remainder of this section develops a concrete example, an evolving shape program [21, 48]. Since Figure 2.1 can be approximated using conventional classes, we first use only language features available in a typical object oriented language. Classes are not enough, however; Section 2.2 introduces units and mixins to complete the solution. 11 (define Shape (interface ( draw) ....

Krishnamurthi, S., M. Felleisen and D. Friedman. Synthesizing object-oriented and functional design to promote re-use. In Proc. European Conference on Object-Oriented Programming, 1998.


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

....K uhne s [24] solution, which relies on generic procedures with double dispatching, can interfere with the hierarchical structure of the program. Palsberg and Jay s [32] solution is based on reflection operators and incurs a substantial run time penalty. Krishnamurthi, Felleisen, and Friedman [11, 23] propose an efficient solution that works with standard class mechanisms, but it requires the implementation (and maintenance) of a complex programming protocol. All of these solutions are partial because they do not address the reuse of clients. In contrast, the combination of units and mixins ....

....from (b) The new squares in the extension represent the implementation of the operation for each variant. The existing clients have not been modified, although they now refer to the extended variants. The remainder of this section develops a concrete example, an evolving shape program [11, 23]. Since Figure 1 can be approximated using conventional classes, we first use only language features available in a typical object oriented language. But, classes are not enough; Section 4 introduces units and mixins to complete the solution. 3.1 Shape Datatype Initially, our shape datatype ....

Krishnamurthi, S., M. Felleisen and D. Friedman. Synthesizing object-oriented and functional design to promote re-use. In Proc. European Conference on ObjectOriented Programming, 1998.


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

....Kuhne s [49] solution, which relies on generic procedures with double dispatching, can interfere with the hierarchical structure of the program. Palsberg and Jay s [65] solution is based on reflection operators and incurs a substantial run time penalty. Krishnamurthi, Felleisen, and Friedman [21, 48] propose an efficient solution that works with standard class mechanisms, but it requires the implementation (and maintenance) of a complex programming protocol. All of these solutions are partial because they do not address the reuse of clients. In contrast, the combination of units and mixins ....

....the extended variants. Client ffl ffi fi (a) Original Datatype Client ffl ffi fi ffi fi (b) New Variant Client ffl ffi fi ffi fi (c) New Operation Figure 2. 1 : Extensible programming on datatypes The remainder of this section develops a concrete example, an evolving shape program [21, 48]. Since Figure 2.1 can be approximated using conventional classes, we first use only language features available in a typical object oriented language. Classes are not enough, however; Section 2.2 introduces units and mixins to complete the solution. 11 [draw (lambda (window x y) ....

Krishnamurthi, S., M. Felleisen and D. Friedman. Synthesizing object-oriented and functional design to promote re-use. In Proc. European Conference on Object-Oriented Programming, 1998.


Behavioral Interface Contracts for Java - Findler, Felleisen (2000)   (5 citations)  Self-citation (Felleisen)   (Correct)

....of a method in a derived interface is quite useful. Consider the following pair of interfaces: interface I f Object visit (IVisitor i) g interface J extends I f Object visit (IVisitor i) pre fi instanceof JVisitorg g These two interfaces are extracted from the extensible visitor pattern [15]. The interface I defines a visit method that accepts instances of IVisitor. The J interface is derived from I and also has a visit method, except that it requires the arguments to be instances of JVisitor, an extension of IVisitor. Since the type system does not allow the derived visit method to ....

Krishnamurthi, S., M. Felleisen and D. P. Friedman. Synthesizing object-oriented and functional design to promote re-use. In European Conference on Object-Oriented Programming, pages 91--113, July 1998.


From Macros to Reusable Generative Programming - Krishnamurthi, Felleisen, Duba (1999)   (2 citations)  Self-citation (Krishnamurthi Felleisen)   (Correct)

....few type systems that type mixins in their own right and also support the traditional functional types that have been used to represent monadic information. Some of issues that arise from the interplay of types and extensibility are discussed in greater detail by Krishnamurthi, et al. [27]. We have purposely restricted our attention to Scheme, which has no native static type discipline. While the lack of a type system has obvious disadvantages, it has also had its benefits. Because there are no candidate type systems that can cleanly capture the properties we are interested in, ....

Krishnamurthi, S., M. Felleisen and D. P. Friedman. Synthesizing object-oriented and functional design to promote re-use. In European Conference on ObjectOriented Programming, pages 91--113, July 1998.


Implementing Extensible Theorem Provers - Fisler, Krishnamurthi, Gray (1999)   Self-citation (Krishnamurthi)   (Correct)

....fol datatype, or an extension thereof. This becomes problematic if the superclasses of the sc classes must be fixed when the classes are defined (as most object oriented languages require) Avoiding this problem requires either parameterized super classes [10] or complex programming protocols [21, 27] that simulate them. Thus, a naive object oriented organization handles datatype extensions naturally, but is clumsy for tool extensions. Fixing super classes at class definition time, rather than link time, is the main problem in this approach. A Functional Attempt:A traditional functional ....

....parser [7, 20] Object oriented solutions based on the Interpreter pattern can suffer from similar problems when the operation creates new instances of a recursively defined datatype. A Synthetic Solution: These problems with the object oriented and functional styles, noted by several researchers [8, 21, 22, 27, 30], illustrate how hardwired relationships between program entities hinders extensibility. Ideally, an implementation framework for extensible systems should allow flexible connections between classes, between components, and between related code fragments; the underlying principle is to separate ....

[Article contains additional citation context not shown here]

Krishnamurthi, S., M. Felleisen and D. P. Friedman. Synthesizing object-oriented and functional design to promote re-use. In European Conference on ObjectOriented Programming, pages 91--113, July 1998.


Toward a Formal Theory of Extensible Software - Krishnamurthi, Felleisen (1998)   (3 citations)  Self-citation (Krishnamurthi Felleisen)   (Correct)

....properties, we can design programming constructs that automatically endows the program with these properties and maintain code dependencies automatically. The design of such constructs should be guided by identifying properties, as discussed above. The approach is outlined by Krishnamurthi, et al. [18]. We have prototyped this idea, and will present the details in a forthcoming publication. 7 Related Work One of the earliest expositions of the idea of reusable software components is due to McIlroy. In his influential paper [22] McIlroy anticipated off the shelf software components that ....

....equivalence relation as we do in Section 3, and both use contexts, which are implicit (and constrained to disallow definitions) in our work. Our notion of extension is closely related to Felleisen s conservative extension and Mitchell s language extension. Krishnamurthi, Felleisen and Friedman [18] noticed the problem with the extensibility of the Interpreter pattern. The Extensible Interpreter presented in Section 4 is a variation on their Extensible Visitor. The Fun sequence in section Section 5 is based on the protocol presented by Cartwright and Felleisen [5] 8 Summary We have ....

Krishnamurthi, S., M. Felleisen and D. P. Friedman. Synthesizing object-oriented and functional design to promote re-use. In European Conference on ObjectOriented Programming, pages 91--113, 1998.


FC++: Functional Tools for Object-Oriented Tasks - Yannis Smaragdakis And   (Correct)

No context found.

S. Krishnamurthi, M. Felleisen, D. P. Friedman, "Synthesizing Object-Oriented and Functional Design to Promote Re-Use", European Conference on Object-Oriented Programming (ECOOP), Brussels, Belgium, July 1998.


Java as a Functional Programming Language - Anton Setzer Dept   (Correct)

No context found.

S. Krishnamurthi, M. Felleisen, and D. Friedman. Synthesizing objectoriented and functional design to promote re-use. In European Conference on Object-Oriented Programming, pages 91 -- 113, 1998.

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