BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 Zef Hemel 关注 0 他的粉丝 ,译者 孙镜涛 关注 2 他的粉丝 发布于 2013年5月22日. 估计阅读时间: 3 分钟 | GMTC大前端的下一站,PWA、Web框架、Node等最新最热的大前端话题邀你一起共同探讨。

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

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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

dart2js 编译器却是一个令人印象深刻的技术杰作? by lai zhiqiang

Coffeescript, TypeScript都是这样做的,称不上是技术杰作吧。

Re: dart2js 编译器却是一个令人印象深刻的技术杰作? by shi mike

你不能试图用另外两个杰作来否定try dart这个杰作啊

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

2 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT