Lazy Evaluation for OCL

The Object Constraint Language (OCL) is a central component in modeling and transformation languages such as the Unified Modeling Language (UML), the Meta Object Facility (MOF), and Query View Transformation (QVT). OCL is standardized as a strict functional language. In this article, we propose a lazy evaluation strategy for OCL. We argue that a lazy evaluation semantics is beneficial in some model-driven engineering scenarios for: i) lowering evaluation times on very large models; ii) simplifying expressions on models by using infinite data structures (e.g., infinite models); iii) increasing the reusability of OCL libraries. We implement the approach on the ATL virtual machine EMFTVM.

[1]  Jim Steel,et al.  Model interoperability in building information modelling , 2009, Software & Systems Modeling.

[2]  Peter Henderson,et al.  A lazy evaluator , 1976, POPL.

[3]  Jordi Cabot,et al.  Towards a general composition semantics for rule-based model transformation , 2011, MODELS'11.

[4]  Arun Lakhotia,et al.  Program comprehension , 1999 .

[5]  Olivier Barais,et al.  Active operations on collections , 2010, MODELS'10.

[6]  John Hughes,et al.  Why Functional Programming Matters , 1989, Comput. J..

[7]  F. Jouault,et al.  Program Comprehension , 2009 .

[8]  Manuel Clavel,et al.  Building an Efficient Component for OCL Evaluation , 2008 .

[9]  Jean Bézivin,et al.  ATL: A model transformation tool , 2008, Sci. Comput. Program..

[10]  Jordi Cabot,et al.  Lazy execution of model-to-model transformations , 2011, MODELS'11.

[11]  Juha-Pekka Tolvanen,et al.  AUTOMATED PRODUCTION OF FAMILY MEMBERS : LESSONS LEARNED , 2022 .

[12]  Ákos Horváth,et al.  Incremental evaluation of model queries over EMF models , 2010, MODELS'10.

[13]  Simon L. Peyton Jones,et al.  Lazy v. Yield: Incremental, Linear Pretty-Printing , 2012, APLAS.

[14]  Jean-Sébastien Sottet,et al.  An AmmA/ATL Solution for the GraBaTs 2009 Reverse Engineering Case Study , 2009 .

[15]  Manuel Clavel,et al.  ECEASST Building an Efficient Component for OCL Evaluation , 2008, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

[16]  Walid Taha,et al.  How to add laziness to a strict language without even being odd , 1998 .

[17]  Dániel Varró,et al.  Streaming Model Transformations By Complex Event Processing , 2014, MoDELS.

[18]  Matthias Felleisen,et al.  Profiling for laziness , 2014, POPL.

[19]  Matthias Felleisen,et al.  A call-by-need lambda calculus , 1995, POPL '95.

[20]  Jean Bézivin,et al.  Optimization Patterns for OCL-Based Model Transformations , 2009, MoDELS.

[21]  Jesús Sánchez Cuadrado A proposal to improve performance of ATL collections , 2010 .

[22]  Benoît Combemale,et al.  Formally defining and iterating infinite models , 2012, MODELS'12.