# How Does It Work?

QVTr and QVTc are programming languages, so you will want to edit them, execute them and debug them.

### Editing

Eclipse QVTd provides QVTr, QVTc and QVTi editors developed using Xtext. The QVTc editor may be used to view or maintain the intermediate QVTu, QVTm and QVTp models.

The editor may be opened conventionally by double clicking a *.qvtr, *.qvtc, or *.qvti text file name in an Explorer view. This displays the source text with syntax highlighting and an outline of the Abstract Syntax.

The QVTc and QVTi editors may also be used to view *.qvtcas and *.qvtias XMI files as source text.

#### Status

These editors have been available since QVTd 0.9.0. They are useful, but currently have only limited well-formedness validation.

Editing *.qvtcas and *.qvtias files should be possible but is not recommended in the current release.

Hopefully 1.0.0 (Oxygen) will offer UMLX as a graphical alternative to the QVTr textual exposition of a transformation.

### Execution

The 0.14.0 release provides one UMLX, one QVTr and one QVTc example project that can be installed and executed. However execution functionality is very new and not suitable for more than experimental use.

#### Status

QVTi execution has been available since 0.11.0 (Luna). It demonstrates the extensibility of the Eclipse OCL interpreter, Java code generator and debugger. QVTi is a low level intermediate; it is not intended as a primary programming language.

A very preliminary form of QVTc execution was available in 0.12.0 (Mars) using an Epsilon prototype of the transformation chain.

0.13.0 (Neon) introduces a Java re-implementation of the full transformation chain so that QVTr and QVTc transformations can be executed. It is only suitable for researchers.

The current execution supports only creation of output models. Checking, updated, incremental, in-place execution and views are work in progress.

0.14.0 (Neon) has much better transformaion, scheduling and execution but functionality such as RElation overriding and In-Place transformation are largely missing and certainly not usefully functional.

Hopefully 1.0.0 (Photon) will have more substantial functionality and will be used internally to replace some of the manual Java transformations by QVTr / UMLX transformations.

### Debugger

The QVTi debugger extends the OCL debugger.

#### Status

The further extension to provide QVTc and QVTr debugging is work in progress.