Another post Frage, wie praktisch es ist, Sprachen in Javascript zu kompilieren. Praktisch beiseite, was Dolmetscher übersetzen aus einer Sprache X zu Javascript und wurden in Javascript implementiert? Ich interessiere mich besonders für die Fälle, in denen X nicht mit der Absicht entworfen wurde, Javascript zu zielen. Auch wenn der Dolmetscher nicht ganz fertig ist, würde ich gerne davon erfahren.Sprachen, die sich auf Javascript beziehen?
Sie können neugierig auf die Motivation für diese Frage sein. Javascript kann sicherlich nicht so viel Energie wie Assembler nutzen, aber die Flexibilität für Codeverteilung und -ausführung kann manchmal diese Kosten überwiegen.
Ein Anwendungsfall für diese Interpreter ist ein Modell zum Lehren und Lernen von Programmiersprachen. Überlegen Sie, wie nützlich es ist, einen Javascript-Interpreter im interaktiven Buch Eloquent Javascript zu haben. Sicher, es kann einen Leistungseinbruch geben, wenn man es nativ kompiliert, aber in manchen Situationen sind die Kosten es wert. Und ja, ich weiß, dass es immer eine Option ist, sich auf den Server zu verlassen, um Code zu kompilieren oder zu interpretieren, aber ich bin speziell an clientseitigen Ansätzen interessiert.
UPDATE: Viele Antworten enthalten Verweise auf Compiler, die nicht in Javascript umgesetzt wurden. Ich möchte nur betonen, dass der Interpreter selbst in Javascript implementiert werden sollte, damit sowohl er als auch der Quellsprachcode im Browser auf dem Computer Ihres Großelternteils ausgeführt werden können.
+1 höhere Ordnung Sprache -> höhere Ordnung lang Die Zusammenstellung ist immer interessant. – Orbling
Re: Ihr Update: Der Compiler muss nicht in JavaScript implementiert werden, nur in einer Sprache, die in JavaScript * laufen * kann. Der CoffeeScript-Compiler zum Beispiel ist in CoffeeScript geschrieben. Aber da der CoffeeScript-Compiler CoffeScript in JavaScript kompiliert, kann er * sich selbst * zu JavaScript kompilieren und somit im Browser laufen. Das Gleiche gilt für jeden in C geschriebenen Compiler (da es einen Compiler gibt, der C nach JavaScript kompiliert), Java, jede .NET-Sprache, die nach CIL kompiliert, jede JVM-Sprache, die nach JVML kompiliert, jede Sprache, die LLVM-Bitcode oder LLVM kompiliert IR, ... –