Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF "Technology" (Ecore Tools, EMFatic, etc)  » [Announce] EMF4CPP, a C++ EMF implementation
[Announce] EMF4CPP, a C++ EMF implementation [message #623003] Wed, 23 June 2010 00:03 Go to next message
diego sevilla is currently offline diego sevillaFriend
Messages: 11
Registered: June 2010
Junior Member
EMF4CPP (formerly Ecore2CPP) is a C++ implementation and type mapping for the Eclipse Modeling Framework core, the Ecore metamodel.

The current release allows to generate C++ code from Ecore metamodels, and to parse and serialize models and metamodels from and into XMI documents. Also, a partially implemented reflective API for generated metamodels is provided.

EMF4CPP consists of two parts: a source code generator from Ecore metamodels to C++ and two runtime support libraries. One of the runtime support libraries implements the Ecore metamodel (libemf4cpp-ecore). The other one allows to parse and serialize modeles in XMI format (libemf4cpp-ecorecpp). The generator is currently implemented using Xpand and Xtend.

This is our first step at providing a set of tools for MDD (Model-Driven Development) in C++ as an alternative to the Java world offered by Eclipse tools. We would like to explore common C++ idioms, paradigms and tools (such as template metaprogramming or Boost.Spirit) to provide tools for managing models, writing Domain-Specific Languages (DSLs), and Model-to-Text (M2T), Model-to-Model (M2M), and Text-to-Model (T2M) transformations.

Two direct advantages can be that C++ programmers can write their data model using Ecore and the Eclipse tools to finally generate code with EMF4CPP, and also, memory consumption and efficiency is usually better in EMF4CPP than in Java, as our preliminary results show.

The EMF4CPP development distribution (that can be downloaded from the EMF4CPP page, http://catedrasaes.inf.um.es/trac/wiki/EMF4CPP) consists of four Eclipse projects: emf4cpp.generator, emf4cpp.tests, emf4cpp.xtext and emf4cpp.xtext2qi. The first one contains a C++ source code generator from metamodels conforming to Ecore. The second one contains, as subdirectories, some metamodels we use to test our implementation, and some emf4cpp-based utilities we are developing. A relevant utility we are developing is a Python interpreter, called PyEcore, that allows to use EMF4CPP from Python scripts. The third one is a bootstrap implementation of a ANTLR3 grammars generator from Xtext grammars. The last one is an under development Boost Sprit Qi grammars generator from Xtext grammars.

The code is still being actively developed, but we encourage all programmers that want a port of the great EMF tooling to C++ to contact us and test the tools, provide feedback or even code. We hope this utility to be of help to the community.

EMF4CPP is offered under the LGPL license, and can be downloaded from its main web page: http://catedrasaes.inf.um.es/trac/wiki/EMF4CPP It is part of the "Cátedra SAES UMU", a joint research venture between SAES (http://www.electronica-submarina.com) and the University of Murcia.

We would like to convert this project into an Eclipse Incubator project of some kind, but we don't know exactly if this would be possible or who to contact to be able to do so. We would be very grateful if someone can point us who to contact.

For further information, don't hesutate to contact Andrés Senac (mailto:andres.senac@um.es) or Diego Sevilla (mailto:dsevilla@um.es).
Re: [Announce] EMF4CPP, a C++ EMF implementation [message #623005 is a reply to message #623003] Wed, 23 June 2010 07:43 Go to previous messageGo to next message
Cedric Brun is currently offline Cedric BrunFriend
Messages: 431
Registered: July 2009
Senior Member
Hi Diego,

We can help you to make this highly interesting project an Eclipse one,
first you'll have to change the license to EPL (which is quite close to
LGPL) and then go through the process of submitting a proposal :

http://www.eclipse.org/projects/dev_process/development_proc ess.php#6_2_1_Pre-
Proposal

You'll need 2 mentors being part of the Eclipse Architecture Council for
your proposal, I'd gladly be one of those :)

Cédric

diego sevilla wrote:

> EMF4CPP (formerly Ecore2CPP) is a C++ implementation and type mapping for
> the Eclipse Modeling Framework core, the Ecore metamodel.
>
> The current release allows to generate C++ code from Ecore metamodels, and
> to parse and serialize models and metamodels from and into XMI documents.
> Also, a partially implemented reflective API for generated metamodels is
> provided.
>
> EMF4CPP consists of two parts: a source code generator from Ecore
> metamodels to C++ and two runtime support libraries. One of the runtime
> support libraries implements the Ecore metamodel (libemf4cpp-ecore). The
> other one allows to parse and serialize modeles in XMI format
> (libemf4cpp-ecorecpp). The generator is currently implemented using Xpand
> and Xtend.
>
> This is our first step at providing a set of tools for MDD (Model-Driven
> Development) in C++ as an alternative to the Java world offered by Eclipse
> tools. We would like to explore common C++ idioms, paradigms and tools
> (such as template metaprogramming or Boost.Spirit) to provide tools for
> managing models, writing Domain-Specific Languages (DSLs), and
> Model-to-Text (M2T), Model-to-Model (M2M), and Text-to-Model (T2M)
> transformations.
>
> Two direct advantages can be that C++ programmers can write their data
> model using Ecore and the Eclipse tools to finally generate code with
> EMF4CPP, and also, memory consumption and efficiency is usually better in
> EMF4CPP than in Java, as our preliminary results show.
>
> The EMF4CPP development distribution (that can be downloaded from the
> EMF4CPP page, http://catedrasaes.inf.um.es/trac/wiki/EMF4CPP) consists of
> four Eclipse projects: emf4cpp.generator, emf4cpp.tests, emf4cpp.xtext and
> emf4cpp.xtext2qi. The first one contains a C++ source code generator from
> metamodels conforming to Ecore. The second one contains, as
> subdirectories, some metamodels we use to test our implementation, and
> some emf4cpp-based utilities we are developing. A relevant utility we are
> developing is a Python interpreter, called PyEcore, that allows to use
> EMF4CPP from Python scripts. The third one is a bootstrap implementation
> of a ANTLR3 grammars generator from Xtext grammars. The last one is an
> under development Boost Sprit Qi grammars generator from Xtext grammars.
>
> The code is still being actively developed, but we encourage all
> programmers that want a port of the great EMF tooling to C++ to contact us
> and test the tools, provide feedback or even code. We hope this utility to
> be of help to the community.
>
> EMF4CPP is offered under the LGPL license, and can be downloaded from its
> main web page: http://catedrasaes.inf.um.es/trac/wiki/EMF4CPP It is part
> of the "Cátedra SAES UMU", a joint research venture between SAES
> (http://www.electronica-submarina.com) and the University of Murcia.
>
> We would like to convert this project into an Eclipse Incubator project
> of some kind, but we don't know exactly if this would be possible or who
> to contact to be able to do so. We would be very grateful if someone can
> point us who to contact.
>
> For further information, don't hesutate to contact Andrés Senac
> (mailto:andres.senac@um.es) or Diego Sevilla (mailto:dsevilla@um.es).


http://cedric.brun.io news and articles on eclipse and eclipse modeling.
Re: [Announce] EMF4CPP, a C++ EMF implementation [message #623010 is a reply to message #623003] Thu, 24 June 2010 13:47 Go to previous message
Ed Merks is currently offline Ed MerksFriend
Messages: 33113
Registered: July 2009
Senior Member
Diego,

This sounds cool. Cedric and I can mentor your project and help with
hosting it at Eclipse.


diego sevilla wrote:
> EMF4CPP (formerly Ecore2CPP) is a C++ implementation and type mapping
> for the Eclipse Modeling Framework core, the Ecore metamodel.
>
> The current release allows to generate C++ code from Ecore metamodels,
> and to parse and serialize models and metamodels from and into XMI
> documents. Also, a partially implemented reflective API for generated
> metamodels is provided.
>
> EMF4CPP consists of two parts: a source code generator from Ecore
> metamodels to C++ and two runtime support libraries. One of the
> runtime support libraries implements the Ecore metamodel
> (libemf4cpp-ecore). The other one allows to parse and serialize
> modeles in XMI format (libemf4cpp-ecorecpp). The generator is
> currently implemented using Xpand and Xtend.
>
> This is our first step at providing a set of tools for MDD
> (Model-Driven Development) in C++ as an alternative to the Java world
> offered by Eclipse tools. We would like to explore common C++ idioms,
> paradigms and tools (such as template metaprogramming or Boost.Spirit)
> to provide tools for managing models, writing Domain-Specific
> Languages (DSLs), and Model-to-Text (M2T), Model-to-Model (M2M), and
> Text-to-Model (T2M) transformations.
>
> Two direct advantages can be that C++ programmers can write their data
> model using Ecore and the Eclipse tools to finally generate code with
> EMF4CPP, and also, memory consumption and efficiency is usually better
> in EMF4CPP than in Java, as our preliminary results show.
>
> The EMF4CPP development distribution (that can be downloaded from the
> EMF4CPP page, http://catedrasaes.inf.um.es/trac/wiki/EMF4CPP) consists
> of four Eclipse projects: emf4cpp.generator, emf4cpp.tests,
> emf4cpp.xtext and emf4cpp.xtext2qi. The first one contains a C++
> source code generator from metamodels conforming to Ecore. The second
> one contains, as subdirectories, some metamodels we use to test our
> implementation, and some emf4cpp-based utilities we are developing. A
> relevant utility we are developing is a Python interpreter, called
> PyEcore, that allows to use EMF4CPP from Python scripts. The third one
> is a bootstrap implementation of a ANTLR3 grammars generator from
> Xtext grammars. The last one is an under development Boost Sprit Qi
> grammars generator from Xtext grammars.
>
> The code is still being actively developed, but we encourage all
> programmers that want a port of the great EMF tooling to C++ to
> contact us and test the tools, provide feedback or even code. We hope
> this utility to be of help to the community.
>
> EMF4CPP is offered under the LGPL license, and can be downloaded from
> its main web page: http://catedrasaes.inf.um.es/trac/wiki/EMF4CPP It
> is part of the "Cátedra SAES UMU", a joint research venture between
> SAES (http://www.electronica-submarina.com) and the University of Murcia.
>
> We would like to convert this project into an Eclipse Incubator
> project of some kind, but we don't know exactly if this would be
> possible or who to contact to be able to do so. We would be very
> grateful if someone can point us who to contact.
>
> For further information, don't hesutate to contact Andrés Senac
> (mailto:andres.senac@um.es) or Diego Sevilla (mailto:dsevilla@um.es).


Ed Merks
Professional Support: https://www.macromodeling.com/
Previous Topic:MSc in software engineering thesis help
Next Topic:hiding and showing operations of a class in Ecore Diagram editor doesn't resize class
Goto Forum:
  


Current Time: Fri Mar 29 08:25:41 GMT 2024

Powered by FUDForum. Page generated in 0.03034 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top