Dart编译器在浏览器中编译Dart代码

Google重新启动了try.dartlang.org在线实验室,用户不需要下载并安装Dart SDK就能够尝试Dart 。和前一版不同的是,新版本会在浏览器中将Dart代码编译成JavaScript,这意味着它可以离线使用。此外,它还支持dart:html——一个用于HTML DOM操作的Dart库。无论如何,它的实现可能是try.dartlang.org最吸引人的一个方面。

Dart编译器在浏览器中编译Dart代码_第1张图片

Peter von der Ahé 在 Google+上宣布了该版本的发布

我们已经恢复了 try.dartlang.org。与旧版本相比,新版本具有浏览器内的编译功能、支持dart:html,并且能够离线使用。

如果你拥有一个iOS设备,那么可以安装Try Dart作为主屏幕上的一个应用。

虽然有很多针对大多数语言的实验环境可以使用——例如try ruby或者 repl.it,它们都为很多语言提供了REPL(读取、求值、打印、循环)支持,包括Python、JavaScript以及Lua 等很多其他的语言——但是,这些实验网站大部分会将用户的输入发送到服务器,然后在服务器端执行代码,最后将结果发送回客户端。与这些网站不同的是,Try.dartlang.org会在浏览器中编译执行代码。

那么这是如何完成的呢?Dart团队是如何做到在浏览器中将Dart托管给JavaScript编译器(称为dart2js)的。看看 try.dartlang.org项目的源码库就能找到这个问题的答案。

Dart2js编译器自身就是使用Dart编写的。通常,它会使用SDK中包含的DartVM运行。但是,为了实现try.dartlang.org,Dart团队调用了dart2js编译器本身,因而产生了一个能够在单独的457KB大小的JavaScript文件中将Dart代码翻译成JavaScript代码的编译器。浏览器会载入这个JavaScript版本的编译器,在每次编辑器中的Dart代码发生变化时都会调用它。然后便会执行翻译后的JavaScript代码,并显示出结果。

虽然在浏览器中运行dart2js编译器并不是一个使用Dart构建Web应用程序的典型示例,但是以这种方式引导的dart2js 编译器却是一个令人印象深刻的技术杰作。

Try.dartlang.org 中有很多预先包装好的示例应用程序,你能够很容易地运行并调整它们从而更好地理解该语言的工作原理。示例的复杂性范围非常广,从简单的hello world应用程序开始到Delta Blue基准测试都有。

查看英文原文:Dart-Compiled Dart Compiler Compiles Dart Code in Browser

你可能感兴趣的:(Dart编译器在浏览器中编译Dart代码)