我已经阅读了有关谷歌即将推出的DASH/DART语言的文章,我觉得这很有趣.
我偶然发现的一件事是他们说他们会消除JavaScript固有的性能问题.但这些性能问题到底是什么?文中没有任何例子.这就是它所说的:
- 性能 - Dash在设计时考虑了性能特征,因此可以创建没有所有EcmaScript VM必须具有的性能问题的VM.
您对这些固有的性能问题有什么想法吗?
我目前正在用ANTLR + Java编写一个JavaScript编译器.
我已经在Stack Overflow上阅读了关于如何继续执行的问题 - 而且答案总是很难进行动态语言的静态编译(没有JIT信息) - 但为什么会这样?当然有明显的"类型解析"问题,并且在JavaScript中可能存在eval
功能问题- 但还有其他原因吗?(因为它们似乎不太难以静态克服(没有JITS))
我不包括基于JIT的编译,因为我认为这对我来说实施起来太难了.
我在编写带有字节码执行的静态编译器方面有一些经验.
更新:
您的所有答案都非常有助于理解问题.澄清这是否意味着JavaScript比其他动态语言更难实现?
这也意味着我更好地使用基于树的解释器而不是例如字节码(如果我们忘记JS总是在原始源代码中提供的属性 - 因此增加了生成和IR的额外时间,然后执行它) ? - 或者它们应该同样容易/难以做到吗?
(我是新手SOF;不知道这是否是更新问题的首选方式?)
javascript compiler-construction static-analysis dynamic-languages
我正在写一篇关于异构计算可能性的理论作业。我需要比较在 CPU 或 GPU 上以串行方式执行的单线程(不可并行)的有效性。
我知道这是一个奇怪的问题,因为在 GPU 上执行单个线程没有意义,但我确实可以为我正在开发的启发式方法使用指导线比率。
我知道它可以很容易地进行测试,但我对 CUDA 和 OpenCL 都没有任何实践经验,而且我很着急。