OOMatch: Pattern Matching as Dispatch in Java

dc.contributor.authorRichard, Adam
dc.date.accessioned2007-09-11T17:21:03Z
dc.date.available2007-09-11T17:21:03Z
dc.date.issued2007-09-11T17:21:03Z
dc.date.submitted2007
dc.description.abstractWe present a new language feature, specified as an extension to Java. The feature is a form of dispatch, which includes and subsumes multimethods, but which is not as powerful as general predicate dispatch. It is, however, intended to be more practical and easier to use than the latter. The extension, dubbed OOMatch, allows method parameters to be specified as patterns, which are matched against the arguments to the method call. When matches occur, the method applies; if multiple methods apply, the method with the more specific pattern overrides the others. The pattern matching is very similar to that found in the "case" constructs of many functional languages, with an important difference: functional languages normally allow pattern matching over variant types (and other primitives such as tuples), while OOMatch allows pattern matching on Java ob jects. Indeed, the wider goal here is the study of the combination of functional and ob ject-oriented programming paradigms. Maintaining encapsulation while allowing pattern matching is of special importance. Class designers should have the control needed to prevent implementation details (such as private variables) from being exposed to clients of the class. We here present both an informal "tutorial" description of OOMatch, as well as a formal specification of the language, and a proof that the conditions specified guarantee run-time safety.en
dc.identifier.urihttp://hdl.handle.net/10012/3217
dc.language.isoenen
dc.pendingfalseen
dc.publisherUniversity of Waterlooen
dc.subjectpredicate dispatchen
dc.subjectdynamic dispatchen
dc.subjectpattern matchingen
dc.subjectmultimethodsen
dc.subjectJavaen
dc.subject.programComputer Scienceen
dc.titleOOMatch: Pattern Matching as Dispatch in Javaen
dc.typeMaster Thesisen
uws-etd.degreeMaster of Mathematicsen
uws-etd.degree.departmentSchool of Computer Scienceen
uws.peerReviewStatusUnrevieweden
uws.scholarLevelGraduateen
uws.typeOfResourceTexten

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
thesis.pdf
Size:
413.23 KB
Format:
Adobe Portable Document Format

License bundle

Now showing 1 - 1 of 1
No Thumbnail Available
Name:
license.txt
Size:
251 B
Format:
Item-specific license agreed upon to submission
Description: