List of languages that compile to JS
CoffeeScript Family (& Friends)
Family (share genes with CoffeeScript)
- 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.
- LiveScript is a fork of Coco that is much more compatible with CoffeeScript, more functional, and with more features.
- IcedCoffeeScript A CoffeeScript dialect that adds support for
deferkeywords which simplify async control flow.
- 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 =~
- Caffeine A dialect of CoffeeScript that support packages and classes import, useful for browser applications
- heap.coffee A dialect of CoffeeScript that offers a C-like type system with manual memory management
Friends (philosophically related)
- Jack Making programming playful.
- move A simpler and cleaner programming language.
- Moescript Indent-based language
- Caja Compiles ES5/strict to ES3 and supports object-capabilities
- ADsafe Client-side static verifier and API, making third party scripts safe.
- 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.
- MileScript [commercial] A strongly-typed language similar to C# and Java, but which compiles to JS. free for non-profit, educational use.
- Streamline.js Uses underscore (_) to stand for callbacks. This fork preserves line numbers for debugging.
- mobl The new language for programming the mobile web.
- TameJS adds new keywords 'await' and 'defer'
- async.js Async utilities for node and the browser
- Flapjax Event-driven, reactive evaluation.
- jLang adds object oriented syntax, namespaces, operators overriding
- Restrict Mode
- HotRuby Runs opcode, compiled by YARV on Ruby inside a web browser or in Flash.
- RubyJS A successor to rb2js
- Quby Used for game coding site, open source.
- 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.
- Doppio JVM interpreter on Coffeescript.
- scalagwt enhanced GWT (accepts jribble as well as Java) plus Scala to jribble.
C#, F#, .NET related languages
- Script# [commercial] Compiles C# to JS.
- Prefix in development
- WebSharper Lets you compile F# to JS.
- 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
- Moby Scheme A Scheme running in JS.
- Parenscript Subset of Common Lisp to JS.
- Whalesong Racket to JS compiler
- Outlet A simple Lisp that supports CPS and in-browser stepping debugging, and other things. In development.
- 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
- https://github.com/aculich/lambdascript Compile a subset of Haskell into JS
- YHC (York Haskell Compiler) backend, as above but with YHC core language.
- Amber - formerly known as Jtalk
- Silver Smalltalk [commercial?] Smalltalk in the browser. (Still active?)
- Lively Kernel - smalltalk/squeak-like development environment in the browser. See also Avocado, built on top of it.
- Clue C language compiler to different runtimes (Lua, JS, Perl 5, C, Java, CL).
- Haxe compiles to several platforms (C++, Flash, JS, Neko, PHP).
- Fantom Evolutionary object-oriented language emphasizing succinct and effective APIs (JVM, CLR, JS).
- Hence stack-oriented programming language with an English-like syntax
Tierless languages (produce both client & server)
- Fun A programming language for realtime webapps - compiles to client-side and server-side JS.
- Ur In the tradition of ML and Haskell.
- mobl The new language for programming the mobile web.
- E Compiles E to JS. E is a secure distributed persistent pure object language.
- Opa write your complete application in just one language, and the compiler will transform it into a self-sufficient executable
Visual programming tools
- Illumination [Commercial] Visual, cross-platform tool creates apps for Android, iPhone, iPad, Desktops and HTML5 or Flash websites. The I language underlies the tool.
- Meemoo flow-based visual programming framework for hackable web apps
- Blockly web-based, graphical programming language. Users can drag blocks together to build an application
- Plaid A gradually-typed, typestate-oriented language designed as a better Java.
- Logo Interpreter
- RPN Interpreter for a language with a Reverse Polish Notation syntax.
- phype run PHP code directly in your browser
- Agda a dependently typed functional programming language and mechanized proof assistant
- lua.js Lua parser
Tools for Compiler Writers
- CommonJS version in DoctorJS
- Jasy: Python port of Narcissus with some enhancements
- PyNarcissus Narcissus's parser ported to Python (used in pyjon)
- rbnarcissus Narcissus' parser ported to Ruby.
- EcmaScript 5 Parser (es-lab)
- EcmaScript 5 Parser (qfox)
- Esprima Educational (but fast) ECMAScript parser with output compatible to Mozilla Parser API
- OMeta/JS (source) metacompiler for many languages to many targets, including js.
- JS/CC LALR(1) parser generator
- jsparse PEG by Grandmaster Chris Double
- 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
- 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