dart javascript 编译器 (dart2js) 如何工作?

2024-05-16

Dart 在其自己的 Dart VM 中运行,但您可以将其编译为现代优化的 JavaScript。但这是如何运作的呢?网上有任何文章或论文解释该过程吗?

我想知道这是否是一个简单直接的元素与元素匹配,仅耗时开发、处理,或者 Dart 的某些元素/方面是否无法编译为 JavaScript。

http://www.dartlang.org http://www.dartlang.org

编辑:谢谢你的 2 个答案。重点是,我向我的一位同事介绍了 dart,并且 dart 可以编译为 JavaScript。他承认它可以编译为 JavaScript,但这会产生 mumbojumba 代码,并且只适用于简单的东西。最后他说:“好吧,解释一下。”这种编译如何在重要的代码上进行?'''

这就是我问的原因。我希望网上有一些材料可以链接到他。


Dart 编辑器现在将使用 dart2js 将您的 Dart 代码编译为 JavaScript。

至于问题的第二部分,dart:io 库仅适用于服务器/命令行,因此无法使用 dart2js 进行编译。

我现在意识到我认为你在问“工程师是如何设计和实现 dart2js 编译器的”,而不是“你如何运行 dart2js 的”

以下是关于 dart2js 公告的博客文章:http://news.dartlang.org/2012/05/new-dart-to-javascript-compiler-ready.html http://news.dartlang.org/2012/05/new-dart-to-javascript-compiler-ready.html

工程师之一 Kasper Lund 补充道:“对于技术感兴趣的人,我可以告诉你,新的编译器 使用 SSA 形式的内部表示(静态单一赋值) 并且编译器完全用 Dart 实现。”

源代码位于http://code.google.com/p/dart/source/browse/#svn%2Fbranches%2Fbleeding_edge%2Fdart%2Flib%2Fcompiler%2Fimplementation http://code.google.com/p/dart/source/browse/#svn%2Fbranches%2Fbleeding_edge%2Fdart%2Flib%2Fcompiler%2Fimplementation

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

dart javascript 编译器 (dart2js) 如何工作? 的相关文章

随机推荐

  • 张量流如何处理无法存储在一个盒子中的大变量

    我想通过训练超过十亿特征维度的数据来训练 DNN 模型 因此第一层权重矩阵的形状将为 1 000 000 000 512 这个权重矩阵太大 无法存储在一个盒子中 目前有没有什么解决方案来处理这么大的变量 例如将大的权重矩阵划分为多个框 Up
  • Twitter API - 获取关注者的关注者数量

    我试图获取特定帐户的每个关注者的关注者数量 目标是找到最有影响力的关注者 我在 Python 中使用 Tweepy 但遇到了 API 速率限制 在被切断之前我只能获取 5 个关注者的关注者数量 我正在查看的帐户大约有 2000 名关注者 有
  • svn删除删除的文件

    我有一个 SVN 项目的工作副本 文件被应用程序从此工作副本中删除 当我使用 SVN 命令行提交工作副本时 我想从存储库中删除这些已删除的文件 如果我使用提交工作副本svn commit它不会从项目中删除文件 因为它们没有在本地删除svn
  • 使用 Python 编辑 RTF 文件

    也许这是一个愚蠢的问题 但我不明白 所以道歉 我有一个 RTF 文档 我想更改它 例如 有一个表 我想复制一行并以面向对象的方式更改代码中第二行中的文本 我认为 pyparsing 应该是可行的方法 但我摆弄了几个小时但没有明白 我没有提供
  • 调试 Java InterruptedException,即查找原因

    在调试Android应用程序时 有时中断异常发生并使应用程序崩溃 我已经能够在默认异常处理程序上设置断点 但调用堆栈不提供信息 at java util concurrent locks AbstractQueuedSynchronizer
  • WPF 中列表框的数据验证

    我有一个 ListBox 绑定到类型 T 的 ObservableCollection 每个 ListBoxItem 都是一个复选框 IsChecked 绑定到 T 中的 bool 属性 我想验证 ListBox 中的选中项 以便至少必须选
  • 从 Amazon S3 存储桶下载文件的脚本

    尝试编写脚本以从 Amazon S3 存储桶下载文件 cURL 网站上的示例遇到问题 下面的脚本产生 我们计算的请求签名与您的签名不匹配 假如 检查您的密钥和签名方法 感谢任何帮助 bin sh file filename php buck
  • 如何用C语言编写程序来测量缓存的速度?

    编写一个程序并尝试比较 如果可以的话测量 从主存和缓存访问数据的时间 如果可以的话 那么如何衡量每一级缓存的速度呢 您需要想出一个启发式方法 强制 100 或非常接近 缓存未命中 希望您有缓存失效操作码 和 100 缓存命中 万岁 这适用于
  • 无论如何,要控制宋何时选择Android.bp,何时不选择?

    使用新的构建系统 即 Soong 安卓取代Android mk with Android bp 还有 Android Q 及以上版本 Soong将选择所有Android bp文件 无论所有文件都存在于何处 早些时候 对于 2 级和 3 级模
  • 即使在可访问性中勾选应用程序,AXIsProcessTrustedWithOptions 也不会返回 true

    As this question https stackoverflow com questions 17693408 enable access for assistive devices programmatically on 10 9
  • 起订量和代码合同

    当使用类不变量时 代码契约似乎到处注入代码 像这样的东西 ContractClassFor typeof IX interface IXContract ClassInvariant void Invariant ContractClass
  • 对于只有 10000 个单词的字典来说,真正需要什么嵌入层 output_dim?

    我正在训练一个 RNN 其单词特征集非常少 大约 10 000 个 我计划在添加 RNN 之前从嵌入层开始 但我不清楚真正需要什么维度 我知道我可以尝试不同的值 32 64 等 但我宁愿先有一些直觉 例如 如果我使用 32 维嵌入向量 则每
  • Outlook 无法识别一个或多个姓名

    我有以下 vba 代码 它读取邮箱并向任何发送无效代码作为邮箱回复的用户发送回复 但有时会收到运行时错误 Outlook 无法识别一个或多个名称 我的问题是 创建新的 MAPI 配置文件是否可以解决该问题 或者我是否需要添加一个代码来解析地
  • 组件的不同位置停止了类型转换

    我正在为我的主项目用 C 编写一个自定义 Control 类 有 2 个项目 一个用于我的控制项目 一个用于我的主项目 这两个项目位于同一解决方案中 我将主项目中的引用添加到控制项目中 我注意到 第一次将控件从工具面板拖到主 winform
  • CSS 边框底部的曲线

    我需要 CSS 中的这个图像 并且在这个边框内需要一个背景图像 我努力了 border radius 0 0 50 50 webkit border radius 0 0 50 50 但没有得到所需的形状 任何帮助 将不胜感激 边界半径 您
  • go中有memset的类似物吗?

    在 C 中 我可以使用某些值初始化数组memset https msdn microsoft com en us library aa246471 28v vs 60 29 aspx const int MAX 1000000 int is
  • 如何禁用 ng2-dragula 上的某些元素的拖动

    我想在顶部显示名称组并取消其上的拖动事件 如何禁用移动某些元素 例如该组名称位于顶部 我的代码是 dragulaService drag subscribe value gt console log drag value 0 我的模板 di
  • Flutter编译错误:必须返回非空值,因为返回类型“String”不允许为空 - displayString

    我的测试无法在我的 Flutter 项目引用的仅 Dart 项目中编译和运行 我收到以下错误消息 Failed to precompile test test pub cache hosted pub dartlang org analyz
  • 在 github 上下载 ZIP 时没有 .xcodeproj 文件

    我正在尝试将我的 GitHub 项目放入 Xcode 中 当我从 GitHub 下载时 zip 文件不包含任何 xcodeproj 文件 另外 即使我在 xcode 上登录 GitHub 克隆 下载时也没有 在 Xcode 中打开 选项 如
  • dart javascript 编译器 (dart2js) 如何工作?

    Dart 在其自己的 Dart VM 中运行 但您可以将其编译为现代优化的 JavaScript 但这是如何运作的呢 网上有任何文章或论文解释该过程吗 我想知道这是否是一个简单直接的元素与元素匹配 仅耗时开发 处理 或者 Dart 的某些元