File Download
  Links for fulltext
     (May Require Subscription)
Supplementary

Conference Paper: EVF: An Extensible and Expressive Visitor Framework for Programming Language Reuse

TitleEVF: An Extensible and Expressive Visitor Framework for Programming Language Reuse
Authors
KeywordsVisitor Pattern
Object Algebras
Modularity
Domain-Specific Languages
Issue Date2017
PublisherSchloss Dagstuhl--Leibniz-Zentrum fuer Informatik
Citation
The 31st European Conference on Object-Oriented Programming (ECOOP 2017), Barcelona, Spain, 18-23 June 2017. In In Müller, P (ed.). LIPICS - Leibniz International Proceedings in Informatics, 2017, v. 74, article no. 29; pp. 29:1–29:32 How to Cite?
AbstractObject Algebras are a design pattern that enables extensibility, modularity, and reuse in mainstream object-oriented languages such as Java. The theoretical foundations of Object Algebras are rooted on Church encodings of datatypes, which are in turn closely related to folds in functional programming. Unfortunately, it is well-known that certain programs are difficult to write, and may incur performance penalties when using Church-encodings/folds. This paper presents EVF: an extensible and expressive Java Visitor framework. The visitors supported by EVF generalize Object Algebras and enable writing programs using a generally recursive style rather than folds. The use of such generally recursive style enables users to more naturally write programs, which would otherwise require contrived workarounds using a fold-like structure. EVF visitors retain the type-safe extensibility of Object Algebras. The key advance in EVF is a novel technique to support extensible external visitors. Extensible external visitors are able to control traversals with direct access to the data structure being traversed, allowing dependent operations to be defined modularly without the need of advanced type system features. To make EVF practical, the framework employs annotations to automatically generate large amounts of boilerplate code related to visitors and traversals. To illustrate the applicability of EVF we conduct a case study, which refactors a large number of non-modular interpreters from the “Types and Programming Languages” (TAPL) book. Using EVF we are able to create a modular software product line (SPL) of the TAPL interpreters, enabling sharing of large portions of code and features. The TAPL software product line contains several modular operations, which would be non-trivial to define with standard Object Algebras.
DescriptionECOOP 2017 ECOOP Research Papers: Language and Library Design
Persistent Identifierhttp://hdl.handle.net/10722/301423

 

DC FieldValueLanguage
dc.contributor.authorZhang, W-
dc.contributor.authorDos Santos Oliveira, BC-
dc.date.accessioned2021-07-27T08:10:51Z-
dc.date.available2021-07-27T08:10:51Z-
dc.date.issued2017-
dc.identifier.citationThe 31st European Conference on Object-Oriented Programming (ECOOP 2017), Barcelona, Spain, 18-23 June 2017. In In Müller, P (ed.). LIPICS - Leibniz International Proceedings in Informatics, 2017, v. 74, article no. 29; pp. 29:1–29:32-
dc.identifier.urihttp://hdl.handle.net/10722/301423-
dc.descriptionECOOP 2017 ECOOP Research Papers: Language and Library Design-
dc.description.abstractObject Algebras are a design pattern that enables extensibility, modularity, and reuse in mainstream object-oriented languages such as Java. The theoretical foundations of Object Algebras are rooted on Church encodings of datatypes, which are in turn closely related to folds in functional programming. Unfortunately, it is well-known that certain programs are difficult to write, and may incur performance penalties when using Church-encodings/folds. This paper presents EVF: an extensible and expressive Java Visitor framework. The visitors supported by EVF generalize Object Algebras and enable writing programs using a generally recursive style rather than folds. The use of such generally recursive style enables users to more naturally write programs, which would otherwise require contrived workarounds using a fold-like structure. EVF visitors retain the type-safe extensibility of Object Algebras. The key advance in EVF is a novel technique to support extensible external visitors. Extensible external visitors are able to control traversals with direct access to the data structure being traversed, allowing dependent operations to be defined modularly without the need of advanced type system features. To make EVF practical, the framework employs annotations to automatically generate large amounts of boilerplate code related to visitors and traversals. To illustrate the applicability of EVF we conduct a case study, which refactors a large number of non-modular interpreters from the “Types and Programming Languages” (TAPL) book. Using EVF we are able to create a modular software product line (SPL) of the TAPL interpreters, enabling sharing of large portions of code and features. The TAPL software product line contains several modular operations, which would be non-trivial to define with standard Object Algebras.-
dc.languageeng-
dc.publisherSchloss Dagstuhl--Leibniz-Zentrum fuer Informatik-
dc.relation.ispartofEuropean Conference on Object-Oriented Programming (ECOOP), 2017-
dc.relation.ispartofIPICS - Leibniz International Proceedings in Informatics-
dc.rightsThis work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.-
dc.rights© Weixin Zhang and Bruno C. d. S. Oliveira-
dc.subjectVisitor Pattern-
dc.subjectObject Algebras-
dc.subjectModularity-
dc.subjectDomain-Specific Languages-
dc.titleEVF: An Extensible and Expressive Visitor Framework for Programming Language Reuse-
dc.typeConference_Paper-
dc.identifier.emailDos Santos Oliveira, BC: bruno@cs.hku.hk-
dc.identifier.authorityDos Santos Oliveira, BC=rp01786-
dc.description.naturepublished_or_final_version-
dc.identifier.doi10.4230/LIPIcs.ECOOP.2017.29-
dc.identifier.scopuseid_2-s2.0-85037815140-
dc.identifier.hkuros323717-
dc.identifier.volume74-
dc.identifier.spage29:1-
dc.identifier.epage29:32-
dc.identifier.eissn1868-8969-
dc.publisher.placeDagstuhl, Germany-

Export via OAI-PMH Interface in XML Formats


OR


Export to Other Non-XML Formats