Paisley: pattern matching à la carte

  • Authors:
  • Baltasar Trancón y Widemann;Markus Lepper

  • Affiliations:
  • University of Bayreuth, Germany, GmbH, Germany; GmbH, Germany

  • Venue:
  • ICMT'12 Proceedings of the 5th international conference on Theory and Practice of Model Transformations
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Professional development of software dealing with structured models requires more systematic approach and semantic foundations than standard practice in general-purpose programming languages affords. One remedy is to move to domain-specific environments. Here, instead, we present a tool for the implementation of pattern matching as fundamental means of automated data extraction from complex models in a general-purpose programming language. The interface is simple but, thanks to elaborate and rigorous design, is also light-weight, portable, non-invasive, type-safe, modular and extensible. It is compatible with object-oriented data abstraction and has full support for nondeterminism by backtracking. The tool comes as a library consisting of two levels: elementary pattern constructs (generic, highly reusable) and pattern bindings for particular data models (specific, fairly reusable, user-definable). Applications use the library code in a small number of idiomatic ways, making pattern-matching code declarative in style (yet retaining richer host-language semantics), easily writable, readable and maintainable. Library and idiom together form a tightly embedded domain-specific language; no extension of the host language is required. The current implementation is in Java, but assumes only standard object-oriented features, and can hence be ported to other mainstream languages.