LanguageMix
From Teslacore
Contents |
Introduction
The LanguageMix is a matrix showing the relationships between Programming Languages and Virtual Machines
It is also available in matrix form at Google Docs: Language Mix
The following list shows the how a given programming language can be interpreted or compiled by another programming language. In the second part the focus is on how the ByteCode of a given Virtual Machine and eventually its associated library is implemented in another Language or Virtual Machine.
Online it is possible to find speed and size tests of programs written in different languages:
- minilight
- Box2D is available in C++, Flash and Javascript for example
- scripting-language
Language
BASIC
C
- C: CH is a C/C++ interpreter
- C: TinyC is an embedded C compiler
- Flash/AVM: Adobe Alchemy is a C to Flash/AVM translator using [LLVM]
- Java: NestedVM and before mips2java converts C/C++ into Java bytecode
C++
- C++ CINT is THE C/C++ Open Source interpreter
- C: CH is a C/C++ Commercial Interpreter
- C/C++: AngelScript a C/C++ style language with some variations
- Flash/AVM: Adobe Alchemy is a C/C++ to Flash/AVM translator
C#
- C#: Mono C# Compiler
D
- LLVM: LDC
Java
- Lua-Java Bridge: LuaJava
- Python-Java Bridge: JPype
- PHP-Java Bridge: php-java-bridge
EcmaScript
See also efforts on cross implementation JavaScript APIs (commonjs.org and list of implementations)
JavaScript
- C: SpiderMonkey
- C++: TraceMonkey
- C++: V8
- C++: SquirrelFish
- C++: Tamarin
- PHP: J4P5 and PHPJS
- C#: ScriptSharp
- Java: Rhino
- JavaScript: ECMAScript4
- Python-SpiderMonkey Bridge: python-spidermonkey
- Perl-SpiderMonkey Bridge: [1]
See also the list of JavaScript implementations from Wikipedia
Lua
- C: Lua
- Lua Java Bridge: LuaJava
- LLVM: [2] Lua over LLVM
- CLI: LUA2IL
- .NET bridge: LuaInterface
- JIT: luajit
- Javascript translator: lua2js
MATLAB M
Pascal
Perl
- Perl-SpiderMonkey Bridge: [3]
Python
- C: CPython
- C++ conversion: [4]
- JVM: Jython
- .NET: IronPython
- JavaScript: CoffiePie
- LLVM: Unladen Swallow
- Python-Java Bridge: JPype
- Python-SpiderMonkey Bridge: python-spidermonkey
PHP
- C: PHP
- Java: Quercus
- LLVM: Building a JIT compiler for PHP in 2 day RoadSend
- PHP to C++: HipHop by FaceBook
- PHP-Java Bridge: php-java-bridge
Ruby
Scheme
- Flash: [5]
Virtual Machines
JVM
LLVM
CLI/.NET
AVM3
The Flash ActionScript3 VM
NekoVM
- C: NekoVM
Comments
