首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何读取DartVM的来源?

如何读取DartVM的来源?
EN

Stack Overflow用户
提问于 2013-08-13 13:49:57
回答 2查看 784关注 0票数 4

我想了解更多关于飞镖的知识,所以我想读一下飞镖的来源。dart vm是用c++编写的,代码库非常庞大。

我从边缘获得源代码

下面是runtime包中的代码,您可以看到它有超过180 K行的c++代码。

代码语言:javascript
复制
➜  runtime git:(master) ✗ cloc .
     752 text files.
     746 unique files.
      47 files ignored.

http://cloc.sourceforge.net v 1.58  T=6.0 s (117.7 files/s, 52169.5 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
C++                            375          32722          21436         180070
C/C++ Header                   238          10936           8753          36452
Dart                            76           2785           1340          16661
Python                          13            254            211           1113
C                                2             28             28            107
Bourne Shell                     1             16             11             85
Assembly                         1              1              3              5
-------------------------------------------------------------------------------
SUM:                           706          46742          31782         234493
-------------------------------------------------------------------------------

我已经学了一个月的dart,并且有几年的Java开发经验,但我不懂c++。有人能给我一些关于学习飞镖vm的建议吗?我有一个长期的计划来学习飞镖vm。

我的问题是,要学习飞镖vm,哪种知识更重要,我最好花点时间去学习它:

  1. 我需要掌握c++才能真正阅读dart vm的源代码吗?
  2. 我需要读一些关于VM设计的书吗?如果有的话?
  3. 是否有任何关于Dart VM的文档、书籍或博客我应该阅读?
  4. 还有任何其他建议
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-13 14:26:22

这是我对它的看法。从源代码中学习结构和功能,仅仅通过读取源代码是很困难的,而且需要时间。如果有一些设计文件来指导你,那会更容易,但仍然是困难的。

会更好(以我的经验.因此,这可能不是一个好的堆栈溢出问题)集中精力处理VM。选择一个特定的bug或增强并尝试实现它。通过实际维护代码,而不仅仅是阅读代码,您将学到更多。

我提到“凭我的经验”。和您一样,我主要是一个Java / C#开发人员,已经有15年没有看过C++了。

在早期的Dart VM中,有一个bug阻止我做一些特定的事情(我现在不记得是什么了)。我有一个堆栈跟踪来指出正确的方向,通过阅读代码和尝试一些东西(使用Google来检查我不确定的特定语法)。我修改了VM并解决了眼前的问题(而且这个bug在以后的提交中被其他人重构了)。这里的重点是,有一个你可以坚持学习的目标是很好的。

为了完整起见,为了回答你问题中的“任何我应该读的东西”部分:

几年前,我也在博客上提到了设置Dart构建环境提示:如果你是一个窗口用户,使用Ubuntu它将节省时间。

来自Google /O 2013的"快码总是流行的“视频是一款不错的手表--它让Dart VM的主要设计者谈论VM。它可能会给你一些概述。

最后,Dart语言规范值得一读,因为Dart VM是规范的实现。

票数 5
EN

Stack Overflow用户

发布于 2013-08-14 16:30:18

我会说,一种与dart vm保持亲密关系的功能方法(除了阅读源代码)是编写简单的扩展并使用调试器来遍历vm。这类任务将帮助您了解dartvm引导、加载库、解析省道代码、查找函数、创建隔离等等.我还发现阅读V8源代码可以很好地参考dart vm的布局,它在代码结构和样式上有一些相似之处。对于一些vm工程师来说,一个有影响力的vm相关书籍的列表将是一个很好的问题,如果你确实得到了一个清单,请转发它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18210942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档