ECOOP 2007 – Object-Oriented Programming

Volume 4609 of the series Lecture Notes in Computer Science pp 273-298

Matching Objects with Patterns

  • Burak EmirAffiliated withEPFL, 1015 Lausanne
  • , Martin OderskyAffiliated withEPFL, 1015 Lausanne
  • , John WilliamsAffiliated withLanguage Computer Corporation, Richardson TX 75080

* Final gross prices may vary according to local VAT.

Get Access


Data in object-oriented programming is organized in a hierarchy of classes. The problem of object-oriented pattern matching is how to explore this hierarchy from the outside. This usually involves classifying objects by their run-time type, accessing their members, or determining some other characteristic of a group of objects. In this paper we compare six different pattern matching techniques: object-oriented decomposition, visitors, type-tests/type-casts, typecase, case classes, and extractors. The techniques are compared on nine criteria related to conciseness, maintainability and performance. The paper introduces case classes and extractors as two new pattern-matching methods and shows that their combination works well for all of the established criteria.