Proofs and types
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
On functors expressible in the polymorphic typed lambda calculus
Information and Computation
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
A little Java, a few patterns
Making the future safe for the past: adding genericity to the Java programming language
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Featherweight Java: a minimal core calculus for Java and GJ
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
SableCC, an Object-Oriented Compiler Framework
TOOLS '98 Proceedings of the Technology of Object-Oriented Languages and Systems
Transition predicate abstraction and fair termination
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Java as a functional programming language
TYPES'02 Proceedings of the 2002 international conference on Types for proofs and programs
Proceedings of the ACM SIGPLAN workshop on Generic programming
The visitor pattern as a reusable, generic, type-safe component
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Weaving generic programming and traversal performance
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
SSDGP'06 Proceedings of the 2006 international conference on Datatype-generic programming
Modular domain-specific language components in scala
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Scala for generic programmers: Comparing haskell and scala support for generic programming
Journal of Functional Programming
Optimization of visitor performance by reflection-based analysis
ICMT'11 Proceedings of the 4th international conference on Theory and practice of model transformations
Automatic assessment of software documentation quality
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Extensibility for the masses: practical extensibility with object algebras
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Hi-index | 0.00 |
In object-oriented languages, the Visitor pattern can be used to traverse tree-like data structures: a visitor object contains some operations, and the data structure objects allow themselves to be traversed by accepting visitors. In the polymorphic lambda calculus (System F), tree-like data structures can be encoded as polymorphic higher-order functions. In this paper, we reconstruct the Visitor pattern from the polymorphic encoding by way of generics in Java. We sketch how the quantified types in the polymorphic encoding can guide reasoning about visitors in general.