Many languages compile down to a hardware AssemblyLanguage. Some languages can be compiled to JavaByteCode.
Interpreters written in JavaScript have been created for some languages. Those languages can all, therefore, run on anything that runs JavaScript -- including most current WebBrowsers.
-
JsForth : ForthLanguage running in a browser iframe
- ... I thought there were a few others ? ...
- There were, but none as complete as the above one. looks like that one has blasted the others out of the water - it seems to be fully ANS standard compliant, and not just a demonstration.
- Possibly off-topic, but I wrote an interpreter construction tutorial -- http://felix.plesoianu.ro/scratch-lang/ -- around a stack-based language invented specifically for this purpose. The interpreter is written in Javascript simply so readers could test it directly in the browser (code compactness was also an important consideration). -- FelixPlesoianu
-
Little Scheme interpreter: http://www.crockford.com/javascript/scheme.html
- Evaluate most of the SchemeLanguage expressions from TheLittleSchemer book in your browser.
-
Try Ruby! : http://tryruby.hobix.com/
- Tutorial with a RubyLanguage interpreter in your browser.
-
Many esoteric langauge implementations. Mine are at http://www.quirkster.com/js/ -- IanOsgood
See http://www.is-research.de/info/vmlanguages/category/javascript-language/ for a very much longer list.
There is also AviBryant 's ClamatoSmalltalk, a SmallTalk dialect with a (compiled into) JavaScript implementation.
Mozilla's JavaScript engine, RhinoInterpreter, uses ByteCode as well, but it's only stored internally. A JS implementation of an alternate language could probably achieve better performance by translating the source language code into JavaScript, and then compiling it to ByteCode using eval().
Sadly, this is a case of AbstractionInversion. JavaScript is a high-level scripting language, one of the least efficient to run (see how it places in the shootout). A lower-level intermediate language would certainly be a more desireable target. JavaScript is all we got (in the browser, at least).
True. Unless you run a JavaApplet (ugh).
These programs are nice if you want to do some programming on a platform that doesn't have any good development tools, but does have a browser, such as a phone or PDA.
See also: AjaxSmalltalk, IotaAndJot, AbstractionInversion