SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages. SWIG is primarily used with common scripting languages such as Perl, PHP, Python, Tcl/Tk, and Ruby, however the list of supported languages also includes non-scripting languages such as C#, Common Lisp (CLISP, Allegro CL, UFFI), Java, Modula-3, OCAML, Octave, and R. Also several interpreted and compiled Scheme implementations (Guile, MzScheme, Chicken) are supported. SWIG is most commonly used to create high-level interpreted or compiled programming environments, user interfaces, and as a tool for testing and prototyping C/C++ software. SWIG can also export its parse tree in the form of XML and Lisp s-expressions.
SMC takes a state machine stored in an .sm file and generates the state pattern classes in fourteen programming languages. Its features include default transitions, transition arguments, transition guards, push/pop transitions, and Entry/Exit actions. It requires Java SE 1.6 or better.
X-develop is a multi-language, cross-platform IDE from Omnicore. X-develop targets the .NET platform, the Mono platform, and the Java platform. It offers advanced code analysis, project-wide on-the-fly error checking, refactoring, smart editing, fast code navigation capabilities, seamless version control system integration, and other productivity-boosting features for C#, Java, JavaServer Pages, J#, and Visual Basic.NET.
CocoXml is a combination of programming language scanner/parser generator (defined by .atg) and XML language scanner/parser generator (defined by .xatg). The generated sources can be updated by updating the .atg or .xatg. Source inclusion, automatic indentation, and backslash newline are supported. Some real usable scanners and parsers are provided for CExpr, JSON, Kconfig, patch, and RSS.
LayerD is an effort to develop an extensible framework for programming languages. It features unlimited compile time programmability, modular design, pluggable code generation, unified high level semantics, multiple source languages, integration of RAD tools with compilers and languages, development of domain specific languages, development of abstract software, extensive features for code generation and meta-programming. Its implementation is able to implement software for .NET and Java bytecode using one high level language that is extensible by programming compile time functionality. There is a Java front-end that allows programming for this new framework using a well known language.