Issue 6559: Issue: Virtual machine (ocl2-rtf) Source: (, ) Nature: Uncategorized Issue Severity: Summary: Description: The OCL 2.0 specification should be behaviour-oriented and not implementation-oriented (see section 4.3). Rationale: The idea of using OCL to describe itself is interesting from the research point of view, but unfortunately OCL is not a suitable metalanguage to define the meaning of other textual languages. I think that the best thing to do is to define a virtual machine and to describe the behaviour of the virtual machine using natural language. This technique was successfully used for languages like C, C++, Java, C#, and Prolog. I see no reasons why such a technique would fail for OCL. After all, OCL is less complex than modern programming language like C++, Java, or C#. A proper description and implementation of the OCL virtual machine will create all the conditions to have a language that is platform/tool independent. Resolution: The specification can no doubt be improved. Most criticisms concern inconsistency and lack of formaility. Moving to "natural language" seems a retrograde approach. Work in progress attempts to remove inconsistency from auto-generation from models, and to improve formality by using an exposition of the semantics that can be checked by Isabelle. Disposition: Closed, no change Revised Text: Actions taken: November 11, 2003: received issue December 23, 2013: closed issue Discussion: This is a request to improve language definition. Should better be solved in a RTF. End of Annotations:===== ssue: Virtual machine Description: The OCL 2.0 specification should be behaviour-oriented and not implementation-oriented (see section 4.3). Rationale: The idea of using OCL to describe itself is interesting from the research point of view, but unfortunately OCL is not a suitable metalanguage to define the meaning of other textual languages. I think that the best thing to do is to define a virtual machine and to describe the behaviour of the virtual machine using natural language. This technique was successfully used for languages like C, C++, Java, C#, and Prolog. I see no reasons why such a technique would fail for OCL. After all, OCL is less complex than modern programming language like C++, Java, or C#. A proper description and implementation of the OCL virtual machine will create all the conditions to have a language that is platform/tool independent.