forked from jashkenas/coffeescript
-
Notifications
You must be signed in to change notification settings - Fork 58
List of languages that compile to JS
omidkrad edited this page Dec 14, 2011
·
189 revisions
- CoffeeScript Unfancy JavaScript
- Coco A CoffeeScript dialect that aims to be more radical and practical, also acts as a test bed for features that get imported in CoffeeScript.
- Parsec CoffeeScript CS based on parser combinators. The project's aim is to add static metaprogramming (i.e. macros + syntax extensibility) to Coffee Script (CS), similar to how Metalua adds such features to Lua. The resulting compiler, once merged with the official compiler, should be usable as a drop-in replacement for it.
- Contracts.coffee A dialect of CoffeeScript that adds built-in support for contracts.
- Uberscript, a CoffeeScript fork that adds type annotations which are compiled to Google closure compiler type annotation comments.
- ToffeeScript A dialect of CoffeeScript that support Asynchronous Syntax, Symbol and Regexp operator =~
- JS11 JavaScript with augmented semicolon insertion, reduced punctuation, and limited sugar. Debugs line-for-line.
- Kaffeine Enhanced Syntax for JavaScript.
- Jack Making programming playful.
- move A simpler and cleaner programming language.
-
Narcissus Mozilla's experimental JavaScript compiler in JavaScript by Brendan Eich and others.
- CommonJS version in DoctorJS
- Jasy: Python port of Narcissus with some enhancements
- PyNarcissus Narcissus's parser ported to Python (used in pyjon)
- Traceur Google's vehicle for Javascript Language Design Experimentation
- EcmaScript 5 Parser (es-lab)
- EcmaScript 5 Parser (qfox)
- reflect.js Implementation of Mozilla's (SpiderMonkey) Parser API in JavaScript
- bdParse a JavaScript LL(1) parser in JavaScript
- parse-js common lisp javascript parser
- ZeParser
- Esprima Educational (but fast) ECMAScript parser with output compatible to Mozilla Parser API
- Closure Compiler An optimizing compiler. Can generate a (line/col)-number mappings file.
- UglifyJS
- Caja Compiles ES5/strict to ES3 and supports object-capabilities
- ADsafe Client-side static verifier and API, making third party scripts safe.
- FBJS Facebook JavaScript, used for scripting FBML (Facebook Markup Language) gadgets.
- Jacaranda Static verifier supporting object-capabilities.
- Microsoft Web Sandbox Technology preview of securing web content through isolation.
- Gatekeeper Microsoft Research project.
- Dojo Secure Framework for building secure mashups.
- Some of the ones listed below are also statically typed, such as mobl, GWT, JSIL, NS Basic, and Haxe.
- Dart by Google. C/Java-like syntax with optional typing.
- JavaScript++ adds pluggable type system and type inference, among other features
- SafeJS
- MileScript [commercial] A strongly-typed language similar to C# and Java, but which compiles to JS. free for non-profit, educational use.
- Mascara [commercial] Enhances JavaScript with powerful features like classes, namespaces and type-checking.
- Roy tries to meld JavaScript semantics with some features common in static functional languages
- Elm type-safe functional language that compiles to HTML, CSS, and JavaScript.
- Streamline.js Uses underscore (_) to stand for callbacks. This fork preserves line numbers for debugging.
- mobl The new language for programming the mobile web.
- StratifiedJS JavaScript + structured concurrency. See also apollo on that site.
- NarrativeJS JavaScript extension with asynchronous futures and promises.
- jwacs JavaScript With Advanced Continuation Support.
- Jscex Write simple JavaScript code, execute it asynchronously by compiling to monadic form.
- TameJS adds new keywords 'twait' and 'mkevent'
- async.js Async utilities for node and the browser
- ContextJS is an implementation of Context-oriented Programming for JavaScript.
- Objective-J Shares with JavaScript the same relationship that Objective-C has with the C programming language: that of being a strict, but small, superset.
- Mochiscript Object-oriented JavaScript with syntactic sugar. Released as a Ruby gem.
- jangaroo AS3 (ActionScript) to JavaScript.
- Flapjax Event-driven, reactive evaluation.
- jLang adds object oriented syntax, namespaces, operators overriding
- Restrict Mode
- TIScript gentle extension of JavaScript
- HotRuby Runs opcode, compiled by YARV on Ruby inside a web browser or in Flash.
- ColdRuby Compiler of Ruby 1.9 MRI bytecode, and a runtime written in JavaScript to aid in execution of Ruby code.
- rb2js Converts Ruby to JavaScript.
- RubyJS A successor to rb2js
- Red Writes like Ruby and runs like JavaScript
- Quby Used for game coding site, not open source.
- Opal Ruby to Javascript compiler.
- 8ball ruby-to-javascript source-to-source transformer
- PYXC-PJ [CS friend] Python to JS. Can generate a (line/col)-number mappings file.
- Pyjamas Python to JS.
- Pyjs Python to (readable) JS.
- Skulpt Python. Client side.
- PyCow Python to MooTools JS.
- PyvaScript Python-like syntax to JavaScript.
- GWT Google Web Toolkit, compiles java to javascript
- Java2Script Eclipse Java to JavaScript compiler plugin and JavaScript version of SWT
- j2js Java bytecode to JavaScript.
- Strongly-Typed Javascript (STJS) - Javascript code generator from a Java source. It is built as a Maven plugin.
- BicaJVM Javascript implementation of JVM
- scalagwt enhanced GWT (accepts jribble as well as java) plus scala to jribble.
- jsc [experimental] Recompile your .NET assembly to JavaScript, ActionScript, PHP or Java.
- JSIL MSIL (.NET bytecode) to Javascript
- Script# [commercial] Compiles C# to JS.
- Prefix in development
- BiwaScheme Scheme(R6RS) in JavaScript
- ClojureScript Clojure to JS, the official version. Supports the majority of Clojure including persistent datastructures.
- clojurejs Subset of Clojure to JS.
- EdgeLisp A Lisp in the tradition of Common Lisp
- Fargo Scheme in JavaScript
- Moby Scheme A Scheme running in JS.
- nconc scheme interpreter in javascript with stack-friendly tail calls and full call/cc
- Parenscript Subset of Common Lisp to JS.
- Ralph Lisp-1 dialect that compiles to JavaScript, inspired by Dylan
- scheme2js Scheme to JavaScript.
- Scriptjure Library for generating JavaScript from Clojure forms.
- Sibilant JavaScript with a lisp.
- Spock A Scheme to JavaScript compiler that uses Henry Baker's Cheney-on-the-MTA compilation strategy
- Whalesong Racket to JS compiler
- Ocamljs OCaml to JS.
- O'Browser OCaml bytecode interpreter in JS.
- Js_of_ocaml OCaml bytecode to JS compiler.
- ghcjs Compile normal Haskell into JS
- jmacro Quasi-Quoted JS that you can insert Haskell values into, also supports a more haskellish version of javascript.
The rest of these probably don't work, particularly with code written for the common GHC compiler.
- https://github.com/aculich/lambdascript Compile a subset of Haskell into JS
- UHC (Utrecht Haskell Compiler) backend converts UHC core to JavaScript, allowing the compiling of Haskell code to JS.
- YHC (York Haskell Compiler) backend, as above but with YHC core language.
- jshaskell
- Amber - formerly known as Jtalk
- Clamato a Smalltalk dialect that is designed to operate within the JavaScript runtime.
- Silver Smalltalk [commercial] Smalltalk in the browser.
- Lively Kernel - smalltalk/squeak-like development environment in the browser. See also Avocado, built on top of it.
- Emscripten LLVM to JavaScript compiler. LLVM is "an aggressive open-source compiler for C and C++," as well as other languages.
- mala vala (gobject) to javascript
- Clue C language compiler to different runtimes (Lua, JS, Perl 5, C, Java, CL).
- NS Basic/App Studio [commercial] Visual Basic-style BASIC to JavaScript compiler. Includes IDE. Targets iOS and Android.
- qb.js An implementation of QBASIC in Javascript
- Haxe compiles to several platforms (C++, Flash, JS, Neko, PHP).
- Fantom Evolutionary object-oriented language emphasizing succinct and effective APIs (JVM, CLR, JS).
- LZX (Laszlo XML) LZX is OpenLaszlo's declarative user interface language, which is compiled into JavaScript 2 as an intermediary format, and further compiled into either JavaScript 1.5 or ActionScript 3.
- Clue and jsc above target multiple runtimes in addition to javascript
- Fun A programming language for realtime webapps - compiles to client-side and server-side JS.
- Ur In the tradition of ML and Haskell.
- WebSharper Lets you compile F# to JS.
- mobl The new language for programming the mobile web.
- E Compiles E to JS. E is a secure distributed persistent pure object language.
- Sugar new programming language designed to replace JavaScript for client-side (and server-side) web development
- Opa (in private beta) write your complete application in just one language, and the compiler will transform it into a self-sufficient executable
- Waterbear
- JsMorphic - demo - also called Snap!
- ScriptBlocks
- Illumination [Commercial] Visual, cross-platform tool creates apps for Android, iPhone, iPad, Desktops and HTML5 or Flash websites. The I language underlies the tool.
- Oia A port of Io to JavaScript.
- Quixe a Glulx VM interpreter written in Javascript
- Gnusto a Z-Machine VM interpreter written in Javascript
- Logo Interpreter
- p2js perl to javascript converter
- Reb2Static Rebol to Javascript
- RPN Interpreter for a language with a Reverse Polish Notation syntax.
- phype run PHP code directly in your browser
- OP4JS object pascal for javascript, in development
- jsForth
- wForth
- Pit F# to Javascript compiler
- Agda a dependently typed functional programming language and mechanized proof assistant
- SMLtoJs SML to Javascript compiler
- jison Bison in javascript, used by Coffeescript
- OMeta/JS (source) metacompiler for many languages to many targets, including js.
- PEG.js parser generator for JavaScript based on the parsing expression grammar formalism
- languagejs - PEG parser written in JavaScript with first class errors
- Canopy Self-hosting PEG parser compiler for JavaScript, influenced by Ruby parser generators such as Treetop and Citrus. Depends on JS.Class library
- JS/CC LALR(1) parser generator
- jsparse PEG by Grandmaster Chris Double
- ReParse parser combinator library for Javascript like Haskell's Parsec
- p4js Monadic parser library for JavaScript
- JSGLR Scannerless, Generalized Left-to-right Rightmost (SGLR) derivation parser for JavaScript
- antlr has a javascript target
- Cruiser.Parse LL(k) parser
- Closure Compiler AST Documentation
- Spidermonkey Parser API - see also reflect.js above
- JsonML AST format used by the es5 parser
- treehugger Javascript AST transformation tools
- JavaScript Shaper JavaScript syntax tree shaping
- burrito & js-traverse - see this post for more info, as well as node-stackedy for an example and node-browserify for running it in a browser instead of node
- javascript types - lambdajs, flow typing
- SourceMap map javascript debugger output to original source
- Zeon A static visual JavaScript analyzer / editor. See also ZeParser.
- altJS a Google group and #altjs IRC channel for those interested in alternative languages for javascript ('transpilers'). There is a Try altJS feature, too, to test out various compilers in the browser.
- jswiki another github wiki with listings of various javascript libraries