Foundations, Applications and Tools for Bidirectional Transformation


Dez 23

New papers accepted for publication at PEPM'14 and FASE'14.

Aug 26

Tool demo accepted for publication at ASE'13: Nuno Macedo, Tiago Guimarães, and Alcino Cunha, Model Repair and Transformation with Echo.

Mar 18

Our FASE'13 paper on Implementing QVT-R Bidirectional Model Transformations using Alloy is one of the nominated for best paper at ETAPS.

Feb 1

Paper accepted for publication at BX'13: N. Macedo, H. Pacheco, A. Cunha, and J. N. Oliveira: Composing Least-change Lenses.

Dec 21

Two new students have joined the project team as BI grant holders. Nuno Sousa will be working on bidirectionalizing spreadsheet formulas, and Tiago Guimarães will help in the implementation of a QVT-R bidirectional transformation tool.

Dec 18

Paper accepted for publication at FASE'13: N. Macedo and A. Cunha: Implementing QVT-R Bidirectional Model Transformations using Alloy.

Oct 10

Two 6 month grants available to work on bidirectional transformations!

Jun 16

Paper accepted for publication at RAMICS'12: N. Macedo, H. Pacheco and A. Cunha: Relations as executable specifications: taming partiality and non-determinism using invariants.

Jun 1

Paper accepted for publication at the post-proceedings of BX'12: H. Pacheco, A. Cunha and Z. Hu. Delta Lenses over Inductive Types.

Old News

Summary [5000]

With the ever growing list of programming languages and software development frameworks, transforming a data model into a different format is essential to "bridge the gap" between technology layers and enable information sharing among applications. Ideally, these transformations should be bidirectional, allowing changes to a model to be safely propagated to another. The naive approach to bidirectional transformation (BT) is to engineer two unidirectional transformations together and manually prove that they are consistent according to the required round-tripping axioms. This gives rise to maintenance problems, besides being notoriously expensive and error-prone: any change in a data format implies a redefinition of both transformations, and a new consistency proof. A better approach is to design a domain-specific language in which one expression denotes both transformations, ensured consistent by construction.

The BT research community is growing by the day, with new languages and frameworks being proposed to tackle the most diverse scenarios [8]. This project aims to extend such coverage and propose effective BT frameworks for three relevant application domains: model-driven engineering (MDE), spreadsheet validation and transformation, and language-based editors (LBEs) defined with attribute grammars (AGs).

MDE prescribes the use of automatic model transformations to generate correct implementations by step-wise refinement of high-level platform independent models. Managing model inconsistency is a key issue and several ad-hoc techniques for model/code synchronization and round-trip engineering have been proposed. BT address this problem upfront, and increasing effort is being dedicated by the MDE community to the design of bidirectional model transformation languages. Unfortunately, these are still plagued with semantic ambiguities or expressiveness limitations that outlaw many interesting problems. A main aim of this project is thus to define a model transformation language with precise bidirectional semantics, expressive enough to handle classic MDE scenarios.

Spreadsheets are widely used by non-professional programmers to develop business applications. These programmers vastly outnumber the professional ones and create millions of spreadsheets every year. Spreadsheets are quite flexible, but they are also very error prone. Spreadsheet models specifying the business logic can prevent errors and improve users productivity. Unfortunately, manually synchronizing such models and instances is a complex task. Moreover, the spreadsheet model may evolve over time and, therefore, the data has to be adapted to conform to the new model. In this project we intend to apply BTs not only to automate such synchronization and evolution, but also to allow collaborative editing of different views of the same spreadsheet.

The definition of LBEs is a well-known application of AGs. The AG and the derived editor define a unidirectional transformation: users can edit the source program and the target one is automatically (and incrementally) synchronized after user interaction; however, they are still unable to synchronize the source program after a change in the target. This problem could be addressed by developing a BT system for AGs. Surprisingly, despite the existence of prototype bidirectional LBEs, little work has been done in defining generic BT mechanisms specifically for AGs. That is the research direction we intend to follow in this project, and we expect such a mechanism to be a major contribution to the overall AG community.

Common to these application domains is the fact that models cannot be captured by pure hierarchical (tree-like) data structures. Of course, they can be represented in XML-like formats by relying on internal key references to model circularity or sharing between elements. Although effective BT frameworks have been proposed to handle hierarchical models, no generic and effective framework has yet been proposed for non-hierarchical ones. We intend to do so by relying on the point-free (PF) relational calculus, a quantifier free formalization of first-order logic, popularized in the algebra of programming community. This calculus deals naturally with non-determinism and partiality, two key issues in the formalization of BTs. It is also amenable to calculation thanks to its purely equational reasoning style, which opens interesting opportunities for BT optimization.

The project team is widely known for its expertise with the PF calculus [3,28], namely its application to the formalization and optimization of BTs for inductive data types [1,2,29,30,31]. By combining this expertise with other key competences on AGs [5,35,36] and spreadsheet transformation and reverse-engineering [4,32], we believe to be well positioned to carry out the proposed tasks. This expectation is supported by the endorsement of some of the top researchers in the field, who will act as consultants to the project.

Sumário [5000]

Com o crescente número de linguagens de programação e ambientes de desenvolvimento de software, a transformação de dados entre diferentes formatos é essencial para fazer a interface entre camadas tecnológicas e partilhar informação entre aplicações. Idealmente, estas transformações devem ser bidireccionais: mudanças em cada um dos modelos devem ser correctamente propagadas para o outro. A abordagem mais simples às transformação bidireccional (TB) consiste em criar duas transformações unidireccionais e provar manualmente que são consistentes segundo certos axiomas. Esta abordagem acarreta problemas de manutenção, além de ser trabalhosa e propícia a erros: mudanças num formato implicam a redefinição de ambas as transformações e uma nova prova de consistência. Uma abordagem mais interessante consiste na criação de uma linguagem de domínio específico em que uma expressão denota ambas as transformações, consistentes por construção.

A investigação em TB tem crescido significativamente, originando várias linguagens e frameworks para os mais diversos cenários [8]. Este projecto tenciona estender esse conhecimento, propondo novas técnicas para três domínios de aplicação específicos: engenharia orientada aos modelo (EOM), validação e transformação de folhas de cálculo (FC) e editores orientados à linguagem (EOL) definidos por gramáticas de atributos (GAs).

A EOM propõe o uso de transformações automáticas para a geração de implementações por refinamento de modelos de alto nível. Gerir a inconsistência é um problema central, e várias técnicas foram proposta para assegurar a sincronização entre código/modelo e para engenharia reversa. A comunidade de EOM tem procurado resolver este problema propondo várias linguagens para TB. Infelizmente, estas linguagens sofrem de ambiguidades semânticas ou limitações de expressividade, que impedem a sua aplicação em problemas reais. Um dos objectivos deste projecto é definir uma linguagem para TB de modelos com uma semântica bidireccional precisa, suficientemente expressiva para abordar casos de estudo clássicos da EOM.

As FCs são normalmente utilizadas por programadores não-profissionais no desenvolvimento de aplicações de negócio. Esta classe de programadores supera largamente a dos programadores profissionais e é responsável pela criação de milhões de FCs todos os anos. As FCs oferecem um ambiente de programação flexível mas também muito propício a erros. Modelos de FCs que especifiquem a lógica de negócio podem prevenir erros e melhorar a produtividade, mas sincronizar manualmente esses modelos com as respectivas instâncias é uma tarefa complexa: nomeadamente, o modelo pode evoluir com o tempo, devendo os dados ser adaptados nesse processo. Neste projecto pretende-se aplicar TBs não apenas para automatizar essa sincronização e evolução, mas também para permitir a edição colaborativa de diferentes vistas da mesma FC.

A definição de EOLs é uma aplicação bem conhecida das GAs. Os editores implementados com GAs definem uma transformação unidirecional: ao editar o programa de origem, o destino é automaticamente sincronizado; no entanto, não é possível sincronizar o programa de origem após alterações no destino. Este problema pode ser solucionado com a criação de um sistema de TB para GAs. Apesar da existência de protótipos bidireccionais para EOLs, pouco trabalho existe sobre mecanismos de bidireccionalização genéricos para GAs. Este projecto pretende desenvolver um tal mecanismo, devendo o mesmo constituir uma contribuição importante para a comunidade de GAs em geral.

Comum a estes domínios de aplicação é o facto de os modelos não poderem ser representados por estruturas de dados puramente hierárquicas. Podem por exemplo ser representados em formatos tipo XML, mas recorrendo a referências internas para modelar a circularidade ou partilha entre elementos. Apesar de já existirem frameworks de TB eficazes para modelos hierárquicos, não foram ainda propostas frameworks genéricas e igualmente eficazes para os seus homólogos não-hierárquicos. Pretendemos resolver esse problema recorrendo ao cálculo relacional point-free (PF), uma formalização sem quantificadores da lógica de primeira ordem popularizada na comunidade da álgebra de programação. Além de lidar naturalmente com questões chave em TB, tais como o não-determinismo ou a parcialidade, este formalismo facilita a automação devido ao estilo de cálculo puramente equacional, abrindo perspectivas para optimização de TBs.

A equipa do projecto é bem conhecida pela sua experiência no cálculo PF [3,28], em especial na sua aplicação à formalização e optimização de TBs para tipos de dados inductivos [1,2,29,30,31]. Combinando este conhecimento com outras competências chave em GAs [5,35,36] e na transformação e engenharia-reversa de FCs [4,32], acreditamos estar aptos para atingir os objectivos propostos. Esta expectativa é suportada pelo apoio de vários investigadores de topo na área, que aceitaram ser consultores do projecto.

Literature Review [6000]

Several programming languages have been designed with bijectivity in mind, being thus trivially bidirectional. Bijectivity is a too strong requirement for bidirectionality, unable to cover many interesting model transformation scenarios. However, even this restricted semantics is usually not formally guaranteed, like in biXid [26], or postulated modulo unimportant details, such as XSugar [19].

A distinctive contribution to the field is the tree transformation language proposed Foster et al [7], whose building blocks are the so-called lenses. Unlike bijective languages, a lens can describe a data abstraction (involving a forward get function and a backward put function) that satisfies formal round-tripping axioms ensuring predictable bidirectional behavior. Essentially, lenses provide a solution to the well-known view-update problem for databases: given an update on the target view, how to reasonably translate it to the source model? Restricted solutions to this problem have emerged since the late 70's, namely based on the so-called constant complement approach [16].

After that seminal work, the same authors have proposed bidirectional lens-based languages for other data models, namely: relational database schemas [10], based on a type system with functional dependencies and giving bidirectional semantics to standard relational algebra operators; strings [20], based on a type system for regular expressions, where each lens combinator denotes an operator such as union, concatenation or Kleene-star. Other authors have capitalized on the lens framework. For example, Hidaka et al have recently proposed a bidirectional graph transformation language [15], by giving a formal bidirectional semantics to the UnQL graph query language.

To ensure that BTs satisfy the prescribed round-tripping axioms it is typical to restrict their domains with type invariants [7,3]. Another approach could be to ignore redundant model details, such as whitespaces in XSugar [19]. Quotient lenses [12] propose loosening the existing lens properties modulo equivalence relations to make them insensitive to such details. Lenses are purely state-based, ignoring the actual editing operations that lead to an update in the view. Sometimes this originates misaligned updates in the source model. Matching lenses [11] attempt to solve this problem by keeping track of the provenance of each element of the view. A more general update-based framework, where put actually receives the update delta and not only the resulting state has been abstractly formulated [13].

Most of these works are asymmetric, in the sense that there is a prescribed direction for update propagation. A more general symmetric framework have been proposed by Meertens for the construction of constraint maintainers for user interfaces [8]: a symmetric BT includes two procedures that, given changes to one model, propagate them to the other in order to satisfy a given consistency relation. Model-driven BT languages, such as Triple Graph Grammars (TGGs) [14] and the Object Management Group (OMG) own Queries, Views and Transformations Relations (QVT-R) use a similar approach: the user specifies a mapping between meta-model elements and a symmetric BT is derived automatically. Unfortunately, unlike in Meertens approach, it is unclear which are the round-tripping axioms guaranteed by such languages and how exactly a BT is derived from the constraint specification, as pointed out in [23].

BTs also play an important role as low-level constructs to build synchronization systems with meaningful properties. A classic example is the usage of lenses at the core of the Harmony [7] synchronization system for heterogeneous data. This connection is explored further in [25], where QVT-R bidirectional maintainers, together with a model differing approach, are used to build a model synchronizer for EMF models.

Mu et al have studied the automatic inversion of transformations defined in a PF language of injective functions, to be used in a bidirectional XML editor. To deal with duplication and view updating, they consider editing tags in the view and weaker round-tripping axioms. A follow-up work attempted the automatic syntactic derivation of put from get in a restricted functional language [24]. A purely semantic approach to the same problem, that does not restrict the syntax of the get function, was proposed in [17]. Both these approaches suffer from restricted updatability, since the inferred put is highly partial. To alleviate this problem, they were later combined [22], ending up with increased updatability for the intersection of both languages (and ensuring the same round-tripping axioms as lenses).

Our research team has been quite successful in using a PF approach to specify and reason about BT. We have shown how data refinements can be used to formalize two-level BT (of schemas and related instances) [2]. A type-safe implementation of this technique was developed in the functional programming language Haskell, leading to the 2LT (Two-Level Transformation) framework. 2LT was later used to define automated refinement strategies for the XML-to-SQL [31] and Spreadsheets-to-SQL [32] scenarios. More recently, we have also proposed a point-free formalization of lenses over inductive types [1]. The PF calculus is particularly well-suited for automated program calculation and optimization due to its purely equational reasoning style. This allowed us to develop effective systems for BT optimization of data refinements [30] and lenses [29], solving a long-standing inefficiency problem characterizing compositional bidirectional languages.

A modest effort at the classification and standardization of existing BT approaches is reported in [8]. Diskin has proposed an algebraic framework [9] in which some bidirectional axiomatizations can be compared and analyzed in terms of their round-tripping axioms. Nevertheless, a deeper multi-perspective survey on BT is still missing.

Plan and Methods [10000]

The problem of defining BTs over hierarchical or tree-like data models can be considered more or less solved. Frameworks providing consistent bidirectional updating for such models abound, ranging from Foster et al lenses over trees [7] to our own work on bidirectional data refinement and lenses over inductive data types [1,2]. A typical application of these framework is the transformation of simple XML documents, without any circularity or any kind of sharing. Unfortunately, these data models are not rich enough to handle the application domains of this project. For example, software models are essentially sets of relations, better depicted as graphs instead of trees. Of course XML interchange formats can be defined for these, but they rely on references to connect different elements of the model, and thus cannot be properly transformed within the above frameworks.

Effective solutions for specific non-hierarchical models have been proposed, namely for defining views over relational databases with functional dependencies [10], but its not clear how they can be generalized to other kinds of models. Due to its relevance to the MDE community, several bidirectional model transformation frameworks have been proposed, namely TGGs and QVT-R. Unfortunately, they lack a clear formal bidirectional semantics, and it is not clear how to ensure consistency between the derived forward and backward transformations. The first complete language-based framework for general bidirectional graph transformations was recently proposed [15] by means of a formal bidirectional semantics to UnCal, the graph algebra that supports the well-known UnQL graph query language. It turns out that the bidirectional semantics proposed in this framework is extremely complex, making it very difficult to reason about the resulting transformations and define optimization laws. Moreover, it suffers from contrived updatability, either by forcefully meeting the consistency laws or due to non-reflectable changes in the target.

Our research team has been quite successful in using the functional point-free (PF) calculus to specify and reason about BTs. This variable free formalization of typed lambda-calculus enabled us to provide elegant formalizations of both bidirectional data refinements [2] and lenses for inductive types [1]. The PF calculus is particularly well-suited for automated program calculation and optimization due to its purely equational reasoning style. This allowed us to develop an effective system for BT definition and optimization, the Two-Level Transformation (2LT) framework, solving the inefficiency problem that characterizes most compositional bidirectional languages [29,30].

However, even with all advantages of the PF style, this functional calculus is not ideal to formalize BTs. A much better alternative is the PF relational calculus, a quantifier free formalization of first-order logic, popularized in the algebra of programming community. By generalizing to a relational setting we obtain a higher degree of freedom in the calculus, since partiality and non-determinism become natural modeling concepts. Since these concepts are central in BT, and relations are natural abstractions to talk about software models, we believe this calculus has strong potential to lay the foundations for a new generic framework for BT of non-hierarchical models. That is precisely the objective of task 2, one of key tasks that will kickstart the project. We intend to deploy this generic framework as an extension to 2LT, taking advantage of the type-safety provided by the Haskell implementation language. Likewise to all tools to be delivered by this project, the new 2LT will be made available as open-source software, to foster its adoption by the overall community.

Following the work on solving the view-update problem for trees using lenses [7], the number of publications on BT increased exponentially. Frameworks have been developed for many different application scenarios, using various approaches and formalisms, and providing substantially different guarantees to the end-user. Although this is a good sign of the vitality and relevance of the area, we believe time has come to tame this cacophony and present a clear and unified view on most of these works. Such unification could bring benefits both to end-users and the research community: given a particular problem, the former could have an easier time deciding which bidirectional system to apply; and the latter could have a common ground for an effective comparison of proposed solutions. Task 1 intends to show the adequacy of the PF relational calculus to serve as esperanto of this research community, by using it as an unifying formalism in which to recast many of the existing approaches. The key deliverable of this task will be a comprehensive survey on BT, using the PF relational calculus to compare the semantics and laws of different systems.

Upon completion of task 2, the proposed generic framework for BT of non-hierarchical models will be used to develop high-level tools and languages to tackle our three application domains:

  • Spreadsheets are mainly used by non-professional programmers that are primarily focused on building a solution for their domain-specific problem, instead of programming per se. Thus, the main deliverable of task 3 will be a BT plugin for a popular spreadsheet programming system, namely Excel. The idea is to help users in a daily base by providing them with tools to support more advanced interactions with spreadsheet systems. In this particular case, the plugin would allow the user to evolve and synchronize different versions of the same spreadsheet. A technique for defining spreadsheet models on top of the common framework must be devised. Another key issue is validation: several case studies will be developed to validate and improve the proposed plugin.
  • The key deliverable of task 4 is a Model Driven Architecture (MDA) compliant bidirectional model transformation language. As such, we intend it to be compatible with the OMG Meta-Object Facility (MOF) standard, and ideally be deployed as a subset of an already established high-level model transformation language, such as QVT Relational (QVT-R). A mapping from MOF to the common framework must be defined. Ditto for the transformation rules of the high-level language - our relational calculus approach seems promising to handle the highly declarative and non-deterministic character of such rules. For the validation of the proposed language, we intend to use case-studies like the classic class-diagram to database schema and viewpoint modeling for UML.
  • The first objective of task 5 will be the deployment of the common BT framework as an extension to Silver, an extensible modern attribute grammar system that supports higher-order and reference attributes. This will provide a specialization of these results in a framework in which tree-shaped graphs predominate. The system will be used in the NSF supported projects of Van Wyk to build a bidirectional language-based editor for ANSI C, a key deliverable of the task. These efforts will provide proper evaluation and validation of the key deliverable of task 2.

Running in parallel to all this work, task 6 aims specifically at disseminating the project results. A web site of the project is planned, including an interactive presentation of the results of the survey delivered by task 1 and web interfaces to all the project tools. The BT community currently lacks a site to collect, organize and disseminate information about all aspects of this research field, and we believe this effort could be an embryo of such site. We also intend to write a cookbook with BT case studies, to aid future programmers solve their specific problems using the proposed tools. Finally, we believe the community has grown large enough to have its own dedicated symposium. Building on our past experience organizing international events, we intend to organize the first international symposium on BT, thus asserting our research team as a key interlocutor in the field.

A key aspect of this project proposal concerns the integration of young researchers in a team focused around a clear and pragmatic research objective. Together with the 4 senior researchers, 3 young post docs and 1 phd student will participate in the project. At the time of writing this proposal, 2 of the post docs were finishing their thesis on related topics. The thesis of the phd student falls entirely within the scope of the proposal, and will be a key deliverable of the project. Moreover, the team will be complemented with 5 young master students working mainly on tool development, for whom 5 BI grants are being requested.

This proposal was reviewed and endorsed by the following top researchers of the area, which also accepted to be consultants of the project:

  • Zhenjiang Hu, from the National Institute of Informatics (Japan), one of the most prolific authors in the field [15,22,24,25], responsible for the first attempt at solving the BT problem for graphs [15].
  • Nate Foster, from Cornell University (USA), the key researcher responsible for the seminal work on lenses [7,11,12,20].
  • Janis Voigtländer, from University of Bonn (Germany), a top researcher on functional programming that first showed the possibility of semantic bidirectionalization [17,22].


Description of the Management Structure

Most management effort will be dedicated to ensure that tasks proceed according to the established plan, and that milestones are delivered on time. Special care will be taken with critical milestones, on which other tasks depend. That is the case of milestone 1, the common BT framework required for tasks 3, 4 and 5.

The following activities are planed in order to ensure coordination between team members:

  • Apart from the standard kick-off general meeting, monthly meetings will be held with all members active in the project at the time;
  • Each of these meetings will be complemented with a technical presentation by one of the project members; these talks will be open to the research community and each project member is required to give at least one such talk;
  • Apart from the public web-site of the project to be developed in task 6, a private collaborative site will be launched at the start of the project, to allow documents sharing and to scribble current research ideas;

To maximize the revenue from the project budget, the following measures will be taken:

  • Submissions to conferences will follow according to a plan defined by the PI, in order to avoid spending the mission budget in events which are not relevant to the project; this plan will mainly include first tier international conferences such as Principles of Programming Languages (POPL), Functional Programming (ICFP), Model Driven Engineering Languages And Systems (MODELS), Foundations of Software Engineering (FSE), and other similar events.
  • To fully benefit from consultants expertise, each visit will start with a one-day informal workshop where all active team members are expected to give a short talk; by these we expect the consultant to get acquainted with the overall project status, thus increasing the potential for effective and relevant scientific discussions;
  • Apart from the usual meetings with their designated supervisors, all BI grant holders will be requested to submit a monthly progress report to the PI to ensure that the research plan is progressing as expected.

One senior management official will be designated by each partner to help with financial planning, and progress/final reports to FCT.

Milestone list

  1. Framework for bidirectional transformations of non-hierarchical models
  2. Excel plugin for bidirectional spreadsheet transformation
  3. MDA compliant bidirectional model transformation language
  4. Bidirectional language-based editor
  5. International symposium on bidirectional transformation
  6. Cookbook with bidirectional transformation case studies.


See proposed timeline attached.

Past Publications [5]

[1] Hugo Pacheco, Alcino Cunha: Generic Point-free Lenses. MPC 2010: 331-352.

[2] Alcino Cunha, José Nuno Oliveira, Joost Visser: Type-Safe Two-Level Data Transformation. FM 2006: 284-299.

[3] José Nuno Oliveira: Transforming Data by Calculation. GTTSE 2007: 134-195.

[4] Jácome Cunha, Joost Visser, Tiago Alves, João Saraiva: Type-safe Evolution of Spreadsheets. FASE 2011. (to appear)

[5] Eric Van Wyk, Derek Bodin, Jimin Gao, Lijesh Krishnan: Silver: An extensible attribute grammar system. Sci. Comput. Program. 2010: 39-54.

Bibliographic References [30]

[6] Daniel M. Yellin. Attribute grammar inversion and source-to-source translation. Book in the LNCS series, nº 302.

[7] J. Nathan Foster, Michael B. Greenwald, Jonathan T. Moore, Benjamin C. Pierce, Alan Schmitt: Combinators for bidirectional tree transformations: A linguistic approach to the view-update problem. ACM Trans. Program. Lang. Syst. 29(3): (2007)

[8] Krzysztof Czarnecki, J. Nathan Foster, Zhenjiang Hu, Ralf Lämmel, Andy Schürr, James F. Terwilliger: Bidirectional Transformations: A Cross-Discipline Perspective. ICMT 2009: 260-283.

[9] Zinovy Diskin: Algebraic Models for Bidirectional Model Synchronization. MoDELS 2008: 21-36.

[10] Aaron Bohannon, Benjamin C. Pierce, Jeffrey A. Vaughan: Relational lenses: a language for updatable views. PODS 2006: 338-347.

[11] Davi M. J. Barbosa, Julien Cretin, Nate Foster, Michael Greenberg, Benjamin C. Pierce: Matching lenses: alignment and view update. ICFP 2010: 193-204.

[12] J. Nathan Foster, Alexandre Pilkiewicz, Benjamin C. Pierce: Quotient lenses. ICFP 2008: 383-396.

[13] Zinovy Diskin, Yingfei Xiong, Krzysztof Czarnecki: From State- to Delta-Based Bidirectional Model Transformations. ICMT 2010: 61-76.

[14] Andy Schürr, Felix Klar: 15 Years of Triple Graph Grammars. ICGT 2008: 411-425.

[15] Soichiro Hidaka, Zhenjiang Hu, Kazuhiro Inaba, Hiroyuki Kato, Kazutaka Matsuda, Keisuke Nakano: Bidirectionalizing graph transformations. ICFP 2010: 205-216.

[16] François Bancilhon, Nicolas Spyratos: Update Semantics of Relational Views. ACM Trans. Database Syst. 6(4): 557-575 (1981).

[17] Janis Voigtländer: Bidirectionalization for free! (Pearl). POPL 2009: 165-176.

[18] Lambert Meertens. Designing constraint maintainers for user interaction, 1998. Unpublished manuscript.

[19] Claus Brabrand, Anders Møller, Michael I. Schwartzbach: Dual syntax for XML languages. Inf. Syst. 33(4-5): 385-406 (2008).

[20] Aaron Bohannon, J. Nathan Foster, Benjamin C. Pierce, Alexandre Pilkiewicz, Alan Schmitt: Boomerang: resourceful lenses for string data. POPL 2008: 407-419.

[21] João Saraiva and Doaitse Swierstra. Generating Spreadsheet-like Tools from Strong Attribute Grammars. GPCE 2003: 307-323.

[22] Janis Voigtländer, Zhenjiang Hu, Kazutaka Matsuda, Meng Wang: Combining syntactic and semantic bidirectionalization. ICFP 2010: 181-192.

[23] Perdita Stevens: Bidirectional model transformations in QVT: semantic issues and open questions. Software and System Modeling 9(1): 7-20 (2010).

[24] Kazutaka Matsuda, Zhenjiang Hu, Keisuke Nakano, Makoto Hamana, Masato Takeichi: Bidirectionalization transformation based on automatic derivation of view complement functions. ICFP 2007: 47-58.

[25] Yingfei Xiong, Hui Song, Zhenjiang Hu, Masato Takeichi: Supporting Parallel Updates with Bidirectional Model Transformations. ICMT 2009: 213-228.

[26] Shinya Kawanaka, Haruo Hosoya: biXid: a bidirectional transformation language for XML. ICFP 2006: 201-214.

[27] Paulo F. Silva, José Nuno Oliveira: 'Galculator': functional prototype of a Galois-connection based proof assistant. PPDP 2008: 44-55.

[28] Alcino Cunha, Jorge Sousa Pinto: Point-free Program Transformation. Fundam. Inform. 66(4): 315-352 (2005).

[29] Alcino Cunha and Hugo Pacheco. Calculating with Lenses: Optimising Bidirectional Transformations. PEPM 2011.

[30] Alcino Cunha, Joost Visser: Strongly Typed Rewriting For Coupled Software Transformation. Electr. Notes Theor. Comput. Sci. 174(1): 17-34 (2007).

[31] Pablo Berdaguer, Alcino Cunha, Hugo Pacheco, Joost Visser: Coupled Schema Transformation and Data Conversion for XML and SQL. PADL 2007: 290-304.

[32] Jácome Cunha, João Saraiva, Joost Visser: From spreadsheets to relational databases and back. PEPM 2009: 179-188.

[33] João Paulo Fernandes and João Saraiva: Tools and Libraries to Model and Manipulate Circular Programs. PEPM 2007: 102-111.

[34] Matthijs Kuiper and João Saraiva: Lrc - A Generator for Incremental Language-Oriented Tools. CC 1998: 298-301.

[35] João Saraiva, S. Doaitse Swierstra, Matthijs F. Kuiper: Functional Incremental Attribute Evaluation. CC 2000: 279-294.

Research team

  • Manuel Alcino Cunha (J01280889FH)
  • José Nuno Oliveira (J007694082R)
  • João Alexandre Saraiva (J0061444XJX3)
  • Eric Van Wyk (J54551846092)
  • João Paulo Fernandes (J004089R6XU4)
  • Jácome Miguel Cunha (J042095115DO)
  • Hugo Pereira Pacheco (J506826DXX1K)
  • Nuno Moreira Macedo (J5527957W367)

Scientific activity diffusion actions

Diffusion of the project results to the overall community will mainly be carried out via the project website. We also intend to invite some IT companies to attend some of the monthly talks and workshops with the consultants. We will target companies with particular interest in the application domains of the project. The monthly talks will also be open and advertised to relevant research communities.

Human resources rationale

The main deliverables of this project are BT tools and languages. Four grants are being requested to support their implementation. BI1 is assigned to task 2 to support the implementation of the common BT framework. BI2 is assigned to task 3 to develop an Excel plugin for bidirectional spreadsheet transformation. BI3 is assigned to task 4 to support the implementation of the parser and compiler of the proposed bidirectional model transformation language. BI4 is assigned to task 5 for implementation of a LBE for ANSI C. Each of these grant holders is expected to deliver a master thesis. An additional BI grant is being requested to develop the web-site proposed on task 6. The requested amount includes the mandatory insurances.

Missions rationale

10 of the expected deliverables are papers in international conferences. Although it is not possible to predict exactly in which conferences these papers will be accepted, the PI will define a publication plan that mostly covers first tier events relevant to the project area (such as POPL, ICFP, MODELS, or FSE). Since many of these events are planned to occur outside Europe, we ask for an average of EUR 2000 per mission in order to support travel, registration, and living expenses.

Consultants rationale

Zhenjiang Hu, from the National Institute of Informatics (Japan), one of the most prolific authors in the field, responsible for the first attempt at solving the BT problem for graphs. A visit of at least one weak is planned in the second year of the project to discuss research questions related to tasks 4 and 5, two application domains in which this author has done some work. Given the required intercontinental flight, we request an amount of EUR 3000 to support travel and accommodation expenses.

Nate Foster, from Cornell University (USA), the key researcher responsible for the seminal work on lenses. A visit of at least one weak is planned in the first year of the project to actively involve this researcher in the survey to be delivered in task 1, and discuss the generalization of lenses to non-hierarchical models as planned in task 2. Given the required intercontinental flight, we request an amount of EUR 3000 to support travel and accommodation expenses.

Janis Voigtländer, from University of Bonn (Germany), a top researcher on functional programming that first showed the possibility of semantic bidirectionalization. Two visits of at least one weak each are planned. The first will occur early in project to actively involve this researcher in the survey to be delivered in task 1. The second is planned for the second year to discuss issues related to task 3. The planned travel and accommodation expenses for each visit amount to EUR 1500.

Equipment rationale

Apart from personal computers and the standard IT infrastructure, the project has no special equipment requirements. All senior researchers and PhD students already own personal computers. The participant institutions also own web/mail/disk servers to host the project web-site and support the project development. The requested money is necessary only to acquire three new personal computers for the grant holders, for whom the participant institutions currently have no up-to-date machines.

  Attachment Action Size Date Who Comment
xls budget-fatbit.xls props, move 33.5 K 22 Feb 2011 - 14:56 AlcinoCunha  
pdf timeline-fatbit.pdf props, move 55.8 K 16 Feb 2011 - 15:27 AlcinoCunha  
xls timeline-fatbit.xls props, move 38.0 K 22 Feb 2011 - 14:57 AlcinoCunha  
r85 - 23 Feb 2011 - 14:20:09 - AlcinoCunha
This site is powered by the TWiki collaboration platform Copyright © by the contributing authors. Ideas, requests, problems? Send feedback.
Syndicate this site RSSATOM