Comparison of code generation tools
Encyclopedia
This article compares variable metamodel code generation tools . Fixed metamodel code generation tools, such as UML
tools, are excluded (see List of UML tools).
Unified Modeling Language
Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...
tools, are excluded (see List of UML tools).
Name | Creator | OS | First public release | Latest stable version | Software license | Open source |
---|---|---|---|---|---|---|
GenerateXY GenerateXY MDD/MDA Framework GenerateXY is a pragmatic framework for MDA/MDD. It allows to specify model-to-model and model-to-text transformations. No constraint is imposed on the target code that can can have any structure in any language... |
DotXY | Windows | 5.1 | Freeware | No | |
Acceleo Acceleo Acceleo is an open source code generator of the Eclipse Foundation that allow people to use a model driven approach to build application from models. It is an implementation of the standard from the Object Management Group for model to text transformation named MOFM2T.- Early versions :The project... |
Obeo | cross-platform (Java / Eclipse) | 2006 | 3.1.0 / 2011-06-23 | Eclipse Public License Eclipse Public License The Eclipse Public License is an open source software license used by the Eclipse Foundation for its software. It replaces the Common Public License and removes certain terms relating to litigations related to patents.... |
Yes |
Accelerator Accelerator (Software) The Accelerator is a collection of development solutions for IBM i and Windows platforms using LANSA, and/or Microsoft .Net technologies provided by Surround Technologies... |
Surround Technologies | Windows (C# / .NET) | 2007 | 3.0 | Proprietary | No |
actifsource Actifsource Actifsource is a domain specific modeling workbench. It is realized as plug-in for the software development environment Eclipse. Actifsource supports the creation of multiple domain models which can be linked together. It comes with a UML-like graphical editor to create domain specific languages... |
actifsource GmbH | cross-platform (Java / Eclipse) | 4.6.3 / 2011-08-09 | Eclipse Public License Eclipse Public License The Eclipse Public License is an open source software license used by the Eclipse Foundation for its software. It replaces the Common Public License and removes certain terms relating to litigations related to patents.... |
Yes | |
Agile Platform | OutSystems OutSystems OutSystems is a multinational software company which operates in the agile software development market. The company’s mission is to provide technology that speeds up and reduces the costs of the delivery and management of web business applications using agile methodologies.OutSystems' flagship... |
Windows | 2001 | 5.1.1.0 / 2010-11-30 | Proprietary | No |
Apeel PHP Code Generator Pro | City Business Logic | Windows | 2001 | 11.03b / 2011-09-04 | Proprietary | No |
AtomWeaver | Isomeris | Windows | 2010 | 1.2.2 / 2011-06-09 | Proprietary | No |
GNU AutoGen GNU AutoGen AutoGen is a tool designed to simplify the creation and maintenance of programs that contain large amounts of repetitious text. It is especially valuable in programs that have several blocks of text that must be kept synchronized.... |
Bruce Korb | Unix like, Apple, WinNT | 1999 | 5.12 / 2011-06-26 | GPL | Yes |
CodeGenerator360 | Windows (Online Tool) | 2011 | Freeware | No | ||
CodeSmith | Windows | Proprietary | No | |||
Code OnTime | Code On Time LLC | Windows (c# / .NET) | Freeware and Subscription | No | ||
Cog | Ned Batchelder | cross-platform (Python) | 2.1 | MIT license MIT License The MIT License is a free software license originating at the Massachusetts Institute of Technology . It is a permissive license, meaning that it permits reuse within proprietary software provided all copies of the licensed software include a copy of the MIT License terms... |
Yes | |
DMS Software Reengineering Toolkit DMS Software Reengineering Toolkit The DMS Software Reengineering Toolkit is a proprietary set of program transformation tools available for automating custom source program analysis, modification, translation or generation of software systems for arbitrary mixtures of source languages for large scale software systems.DMS has been... |
Semantic Designs | Windows | 2001 | 2.0 | Proprietary | No |
EntiPro | EntiCraft | Windows | Proprietary | No | ||
Genshi (templating language) Genshi (templating language) Genshi is a template engine for XML-based vocabularies written inPython. Genshi is used to easily insert generated output into XML-based languages, usually HTML, and reuse elements between documents... |
Edgewall Software | cross-platform (Python) | 2006-08-03 | 0.5.1 / 2008-07-09 | ||
Iron Speed Designer Iron Speed Designer Iron Speed, Inc. publishes a database rapid application development product called Iron Speed Designer. This product builds database and reporting applications for the Cloud, Web and Microsoft SharePoint environments... |
Iron Speed, Inc. | Windows | 2001 | 8.0.1 / 2011-03-11 | Proprietary | No |
JCodeBox | cross-platform (Java) | Proprietary | No | |||
Jinja (Template engine) Jinja (Template engine) Jinja is a template engine for the Python programming language. It is similar to the Django template engine but provides Python-like expressions while ensuring that the templates are evaluated in a sandbox. It's a text-based template language and thus can be used to generate any markup as well as... |
Pocoo team | cross-platform (Python) | 2.1.1 | BSD | Yes | |
Kid (templating language) Kid (Templating Language) Kid is a simple template engine for XML-based vocabularies written in Python. Kid claims to have many of the best features of XSLT, TAL, and PHP, but "with much of the limitations and complexity stamped out".... |
Ryan Tomayko | cross-platform (Python) | 0.9.6 / 2006-12-20 | |||
Mako Mako -Biology:*Isurus, the mako shark genus, consisting of two living and several fossil species:**Shortfin mako shark, Isurus oxyrinchus, the more common mako**Longfin mako shark, Isurus paucus, the rarer mako-Places:*Mako, Ethiopia, a town in Ethiopia... |
Michael Bayer | cross-platform (Python) | 0.2.3 / 2008-05-12 | MIT | Yes | |
Microsoft Visual Studio LightSwitch | Microsoft Microsoft Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions... |
Windows | 2011 | 2011-07-26 | Proprietary | No |
M-Power M-Power m-Power is software which automates enterprise web application development and modernizes legacy business applications. m-Power uses a point-and-click interface to create enterprise web applications. Applications created by m-Power run on any database or platform that supports Java.- History... |
mrc MRC MRC may refer to:in government,* Medical Reserve Corps, US network of community-based units sponsored by the Office of the Surgeon General... |
cross-platform (Java) | 2004 | Proprietary | No | |
MOLGENIS | Morris Swertz | cross-platform (Java) | 2004 | 3.3 | LGPLv3 | Yes |
MyGeneration | Windows | Yes | ||||
OpenMDX OpenMDX OpenMDX is an open source model-driven architecture software platform, a framework suited for domain-driven design . It is based on the Object Management Group's MDA standards. OpenMDX supports Java SE, Java EE, and .NET runtime environments... |
cross-platform (Java) | 2004-01-28 | 2.4 / 2009-03-26 | BSD | Yes | |
[PHPRunner] | Xlinesoft | Windows | 2003 | 5.3 / 2010-10-15 | Proprietary | No |
T4 Text Template Transformation Toolkit Microsoft's Text Template Transformation Toolkit is a template based text generation framework included with Visual Studio. T4 source files are usually denoted by the file extension ".tt".... |
Microsoft Microsoft Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions... |
Windows | 2005 | 2010 | Proprietary | No |
Umple | University of Ottawa University of Ottawa The University of Ottawa is a bilingual, research-intensive, non-denominational, international university in Ottawa, Ontario. It is one of the oldest universities in Canada. It was originally established as the College of Bytown in 1848 by the Missionary Oblates of Mary Immaculate... |
cross-platform (Java / Eclipse) | 2010 | 1.12 / 2011-04-21 | MIT license MIT License The MIT License is a free software license originating at the Massachusetts Institute of Technology . It is a permissive license, meaning that it permits reuse within proprietary software provided all copies of the licensed software include a copy of the MIT License terms... |
Yes |
Velocity apache | Apache Software Foundation Apache Software Foundation The Apache Software Foundation is a non-profit corporation to support Apache software projects, including the Apache HTTP Server. The ASF was formed from the Apache Group and incorporated in Delaware, U.S., in June 1999.The Apache Software Foundation is a decentralized community of developers... |
cross-platform (Java) | 1.6.2 / 2009-03-19 | Apache License Apache License The Apache License is a copyfree free software license authored by the Apache Software Foundation . The Apache License requires preservation of the copyright notice and disclaimer.... 2.0 |
Yes |
Technical
Name | Implementation Language | Active; Passive | Model | Typical input | Other input | Typical output |
---|---|---|---|---|---|---|
GenerateXY GenerateXY MDD/MDA Framework GenerateXY is a pragmatic framework for MDA/MDD. It allows to specify model-to-model and model-to-text transformations. No constraint is imposed on the target code that can can have any structure in any language... |
Java | Active | Tier | User-defined Models | XML, CSV, Java, ... (extensible) | Any textual language, predefined modules for Java, HTML, XML |
Acceleo Acceleo Acceleo is an open source code generator of the Eclipse Foundation that allow people to use a model driven approach to build application from models. It is an implementation of the standard from the Object Management Group for model to text transformation named MOFM2T.- Early versions :The project... |
Java | Active | Tier | User-defined EMF Eclipse Modeling Framework Eclipse Modeling Framework is an Eclipse-based modeling framework and code generation facility for building tools and other applications based on a structured data model... based models (UML, Ecore, user defined metamodels) |
Any EMF based input (Xtext DSLs, GMF graphical models, etc.) | Any textual language. |
Accelerator Accelerator (Software) The Accelerator is a collection of development solutions for IBM i and Windows platforms using LANSA, and/or Microsoft .Net technologies provided by Surround Technologies... |
C# | Active | Tier | Database schema Database schema A database schema of a database system is its structure described in a formal language supported by the database management system and refers to the organization of data to create a blueprint of how a database will be constructed... |
XML Schema, Templates and configuration tables | C#, WPF, Silverlight, ASP.NET, WCF, WebServices(complete application) |
actifsource Actifsource Actifsource is a domain specific modeling workbench. It is realized as plug-in for the software development environment Eclipse. Actifsource supports the creation of multiple domain models which can be linked together. It comes with a UML-like graphical editor to create domain specific languages... |
Java | Active | Tier | User-defined Models | Import from UML, Ecore. | Any textual language. |
Agile Platform | .Net | Active | Tier | User defined models based on the OutSystems visual modeling language | Java, C#, Javascript | ASP.Net and JEE |
Apeel PHP Code Generator Pro | Delphi | Passive | Tier | Database schema Database schema A database schema of a database system is its structure described in a formal language supported by the database management system and refers to the organization of data to create a blueprint of how a database will be constructed... |
PHP, HTML, CSS | Full Application - PHP, CSS, Apeel Open Source Framework. |
AtomWeaver | C++, Lua | Active | Tier | Tree models built using a cooperative template system, based on the ABSE modeling approach | Code in any language | Any textual language |
GNU AutoGen GNU AutoGen AutoGen is a tool designed to simplify the creation and maintenance of programs that contain large amounts of repetitious text. It is especially valuable in programs that have several blocks of text that must be kept synchronized.... |
C | Active | Tier | Autogen definitions (lists of key-value pairs or hierarchical data arranged like C structs Struct (C programming language) A struct in C programming language is a structured type that aggregates a fixed set of labelled objects, possibly of different types, into a single object.A struct declaration consists of a list of fields, each of which can have any type... ), Autogen templates (fixed output plus inline macros for conditional or repetitive emission of code blocks or evaluation of Bourne shell Bourne shell The Bourne shell, or sh, was the default Unix shell of Unix Version 7 and most Unix-like systems continue to have /bin/sh - which will be the Bourne shell, or a symbolic link or hard link to a compatible shell - even when more modern shells are used by most users.Developed by Stephen Bourne at AT&T... or Scheme expressions) |
XML, CGI data | Output determined by template (any language or even plain text); additional support for emitting header guards, certain licenses, option parsers, and finite state machine Finite state machine A finite-state machine or finite-state automaton , or simply a state machine, is a mathematical model used to design computer programs and digital logic circuits. It is conceived as an abstract machine that can be in one of a finite number of states... s in C |
Cog | Python | Active | Inline | Any code | Java C# C++ C Perl Python Ruby TCL Javascript Fortran Lisp Scheme Cobol XSLT JSP PHP Yacc SQL XML System Configuration Files | |
CodeGenerator360 | C# | Active | Tier | Database Schema | XML Schema | Stored Procedures, .NET DAL, C# ASP.NET Pages, Visual Studio 2010 Solution and Project Files |
CodeOnTime | C# | Active | Database Tables | Templates and Various XML configuration tables | C# ASP.NET | |
C++ Middleware Writer | C++ | Active | DSL instance / Middle file | Include files | C++ marshalling code | |
DMS Software Reengineering Toolkit DMS Software Reengineering Toolkit The DMS Software Reengineering Toolkit is a proprietary set of program transformation tools available for automating custom source program analysis, modification, translation or generation of software systems for arbitrary mixtures of source languages for large scale software systems.DMS has been... |
Several code generation DSLs (attribute grammars, tree patterns, source-to-source rewrites) | Active | DSLs represented as abstract syntax Abstract syntax The abstract syntax of data is its structure described as a data type , independent of any particular representation or encoding.... trees |
DSL instance | Well-formed output language code fragments | Any programming language (proven for C, C++, Java, C#, PHP, COBOL) |
gSoap | C / C++ | WSDL specifications | C / C++ code that can be used to communicate with WebServices. XML with the definitions obtained. | |||
Iron Speed Designer Iron Speed Designer Iron Speed, Inc. publishes a database rapid application development product called Iron Speed Designer. This product builds database and reporting applications for the Cloud, Web and Microsoft SharePoint environments... |
C# / VB.NET | Active | Tier | Database schema Database schema A database schema of a database system is its structure described in a formal language supported by the database management system and refers to the organization of data to create a blueprint of how a database will be constructed... |
CSS | ASP.NET (Full application, including C# code, VB code, XML, Stored Procedures, etc.) |
Jostraca | Java | Active | Tier | Any code | Java | Any code; Java, JSP |
JCodeBox | Java | Tier | Java | Java (Full Web Application) | ||
Microsoft Visual Studio LightSwitch | C# / VB.NET | Active | Tier | Database schema Database schema A database schema of a database system is its structure described in a formal language supported by the database management system and refers to the organization of data to create a blueprint of how a database will be constructed... |
Complete Silverlight application (Desktop or Web) | |
MyGeneration | .NET | |||||
PHPRunner | PHP/ASP/C#/VB.NET | Active | Tier | Database schema Database schema A database schema of a database system is its structure described in a formal language supported by the database management system and refers to the organization of data to create a blueprint of how a database will be constructed... |
PHP, ASPX, HTML, CSS, | PHP, ASP, ASP.NET (Full Web application, including C#, VB.NET, PHP, ASP code, HTML, Javascript, CSS, etc.) |
Pro*C | Inline | SQL in C | C | |||
Spring Roo Spring Roo Spring Roo is an open source software tool that uses convention-over-configuration principles to provide rapid application development of Java-based enterprise software. The resulting applications use common Java technologies such as Spring Framework, Java Persistence API, Java Server Pages, Apache... |
Java | Active | Tier | Java and automatically-introspected project metadata | Shell commands | Java (Full Web Application including Java source, AspectJ source, XML, JSP, Spring application contexts, build tools, property files etc.) |
T4 Text Template Transformation Toolkit Microsoft's Text Template Transformation Toolkit is a template based text generation framework included with Visual Studio. T4 source files are usually denoted by the file extension ".tt".... |
Passive | T4 Template/Text File Text file A text file is a kind of computer file that is structured as a sequence of lines of electronic text. A text file exists within a computer file system... |
Any text format such as XML XML Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards.... , XAML XAML Extensible Application Markup Language is a declarative XML-based language created by Microsoft used for initializing structured values and objects. It is available under Microsoft's Open Specification Promise... , C# files or just plain text files. |
|||
Umple | Java | Active | Tier | Java, PHP, Ruby with embedded Umple code | Pure Umple code describing associations, patterns, state machines etc. | Java, PHP, Ruby, ECcore, Umlet, Yuml, Textuml, JSON, Papyrus XMI |
Velocity apache | Java | Passive | Tier | Any code | Java | Java |
XDocLet | Active | Munger | JavaDoc | EJB support beans |