Comparison of code generation tools

Comparison of code generation tools

This article compares variable metamodel code generation tools[clarification needed]. Fixed metamodel code generation tools, such as UML tools, are excluded (see List of UML tools).

Name Creator OS First public release Latest stable version Software license Open source
GenerateXY DotXY Windows 5.1 Freeware No
Acceleo Obeo cross-platform (Java / Eclipse) 2006 3.1.0 / 2011-06-23 Eclipse Public License Yes
actifsource actifsource GmbH cross-platform (Java / Eclipse) 4.6.3 / 2011-08-09 Eclipse Public License Yes
Agile Platform OutSystems 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
Autogen Bruce Korb Unix like, Apple, WinNT [1] 1999 5.11 / 2010-07-25 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 Yes
DMS Software Reengineering Toolkit Semantic Designs Windows 2001 2.0 Proprietary No
EntiPro EntiCraft Windows Proprietary No
Genshi (templating language)[2] Edgewall Software cross-platform (Python) 2006-08-03 0.5.1 / 2008-07-09
Iron Speed Designer Iron Speed, Inc. Windows 2001 8.0.1 / 2011-03-11 Proprietary No
JCodeBox cross-platform (Java) Proprietary No
Jinja (Template engine)[3] Pocoo team cross-platform (Python) 2.1.1 BSD Yes
Kid (templating language)[4] Ryan Tomayko cross-platform (Python) 0.9.6 / 2006-12-20
Mako Michael Bayer cross-platform (Python) 0.2.3 / 2008-05-12 MIT Yes
Microsoft Visual Studio LightSwitch Microsoft Windows 2011 2011-07-26 Proprietary No
M-Power mrc cross-platform (Java) 2004 Proprietary No
MOLGENIS Morris Swertz[5] cross-platform (Java) 2004 3.3 LGPLv3 Yes
MyGeneration Windows Yes
OpenMDX 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 Microsoft Windows 2005 2010 Proprietary No
Umple University of Ottawa cross-platform (Java / Eclipse) 2010 1.12 / 2011-04-21 MIT license Yes
Velocity apache[6] Apache Software Foundation cross-platform (Java) 1.6.2 / 2009-03-19 Apache License 2.0 Yes

Technical

Name Implementation Language Active; Passive [7] Model[8] Typical input Other input Typical output
GenerateXY Java Active Tier User-defined Models XML, CSV, Java, ... (extensible) Any textual language, predefined modules for Java, HTML, XML
Acceleo Java Active Tier User-defined EMF based models (UML, Ecore, user defined metamodels) Any EMF based input (Xtext DSLs, GMF graphical models, etc.) Any textual language.
actifsource 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 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
Autogen C Active Tier Autogen definitions (lists of key-value pairs or hierarchical data arranged like C structs), Autogen templates (fixed output plus inline macros for conditional or repetitive emission of code blocks or evaluation of Bourne shell 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 machines in C
Cog Python Active[9] 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 Several code generation DSLs (attribute grammars, tree patterns, source-to-source rewrites) Active DSLs represented as abstract syntax 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 C# / VB.NET Active Tier Database schema CSS ASP.NET (Full application, including C# code, VB code, XML, Stored Procedures, etc.)
Jostraca Java Active [10] 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 Complete Silverlight application (Desktop or Web)
MyGeneration .NET
PHPRunner PHP/ASP/C#/VB.NET Active Tier Database schema 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 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 Passive T4 Template/Text File Any text format such as XML, XAML, 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 [11] Tier Any code Java Java
XDocLet Active[12] Munger JavaDoc EJB support beans
  1. ^ GNU/Linux, BSD, Apple's OS/X, SVR4-5, HPUX, SCO OpenServer and Solaris. It is expected that it will work on any reasonably modern UNIX system with an ANSI-compliant C compiler. It also runs under WinNT, provided you have CygWin and Guile loaded.
  2. ^ Great tutorial
  3. ^ http://jinja.pocoo.org
  4. ^ http://www.kid-templating.org
  5. ^ Swertz, Morris A.; de Brock, E. O. (Bert); van Hijum, Sacha A. F. T.; de Jong, Anne; Buist, Girbe; Baerends, Richard J. S.; Kok, Jan; Kuipers, Oscar P. et al. (2004). "Molecular Genetics Information System (MOLGENIS): alternatives in developing local experimental genomics databases". Bioinformatics 20 (13): 2075–83. doi:10.1093/bioinformatics/bth206. PMID 15059831. 
  6. ^ http://velocity.apache.org
  7. ^ "Active generators build code that you should not modify or should only modify in specifically marked sections which are held safe during a re-generation cycle... Passive generators build code once and then it’s up to you to maintain the code long-run. "
  8. ^ Type based on input: Code munger, Inline code expander, Mixed code generator, Partial class generator, Tier generator
  9. ^ The output area for each generator (between the]] and end lines) is deleted, and the output of running the Python code is inserted in its place.]
  10. ^ Jostraca should be used primarily for active code generation.
  11. ^ Open source tools are available that make the task of developing passive code generators all but trivial. One such offering is Velocity from the Apache Software Foundation.
  12. ^ MockDoclet is the base of XDocLet"MockDoclet is an active code generation tool for automatically generating mock objects"

Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Look at other dictionaries:

  • Code generation — may refer to: Code generation (compiler), a mechanism to produce the executable form of computer programs, such as machine code, in some automatic manner Automatic programming (source code generation), the act of generating source code based on… …   Wikipedia

  • Code generation (compiler) — In computer science, code generation is the process by which a compiler s code generator converts some intermediate representation of source code into a form (e.g., machine code) that can be readily executed by a machine (often a computer).… …   Wikipedia

  • Comparison of C Sharp and Java — The correct title of this article is Comparison of C# and Java. The substitution or omission of the # sign is because of technical restrictions. Programming language comparisons General comparison Basic syntax Basic instructions …   Wikipedia

  • Comparison of C Sharp and Visual Basic .NET — The correct title of this article is Comparison of C# and Visual Basic .NET. The substitution or omission of the # sign is because of technical restrictions. Programming language comparisons General comparison Basic syntax Basic instructions …   Wikipedia

  • Comparison of JavaScript frameworks — Contents 1 Comparison of JavaScript frameworks 1.1 Rationale 1.2 Table of Javascript Frameworks 2 See also …   Wikipedia

  • Comparison of application virtual machines — This article lists some software virtual machines that are typically used for allowing application bytecode to be portably run on many different computer architectures and operating systems. The application is usually run on the computer using an …   Wikipedia

  • Comparison of EDA software — Comparison of Electronic Design Automation (EDA) software Contents 1 Free and Open Source Software (FOSS) 2 Proprietary software 3 Comparison of EDA packages 4 See …   Wikipedia

  • Comparison of Nvidia graphics processing units — For information on AMD (previously ATI) graphics processing units, see Comparison of AMD graphics processing units. This page contains general information about Nvidia s GPUs and videocards based on official Nvidia specifications. Contents 1… …   Wikipedia

  • Comparison of issue-tracking systems — This article is a comparison of issue tracking systems which are notable, including bug tracking systems, help desk and service desk issue tracking systems, and asset management systems. The comparison includes client server application,… …   Wikipedia

  • Comparison of the Java and .NET platforms — Contents 1 Legal issues 1.1 Standardization 1.2 License 1.2.1 Java 1.2.2 .NET …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”