将类似JavaScript的结构编译为静态,快速C++的最佳方法是什么?

What is the best way to compile JavaScript-like structures to static, fast C++?

本文关键字:最佳 快速 C++ 方法 是什么 JavaScript 结构 编译 静态      更新时间:2023-09-26

关于从非常类似于JavaScript的语言到C++语言的编译器的开发,我需要一种方法来表示数据结构。JavaScript的主要数据结构是数组和哈希表。数组更简洁:我可以使用非类型指针的向量。它需要是一个向量,因为JS数组是动态的,并且指针是因为JS数组可以容纳任何类型的对象,例如:

var array = [1,2,[3,4],"test"];

除此之外,我看不到表示这一点的方法(有吗?对于哈希,我可以使用类似的东西,除了在访问时包含字符串哈希步骤。

问题是:JavaScript 哈希被 JIT 编译成实际的 C++ 对象,这可能比哈希快得多。这样,恐怕我尝试生成这样的C++实际上会导致代码比 JavaScript 版本慢!

  1. 这有意义吗?
  2. 编译器的最佳方法是什么?

如果这是一个AOT编译器,显然,您只能处理在编译时看到的哈希键。在这种情况下,您可以将对已知键的哈希访问更改为数组访问,为每个已知键提供一个小整数作为索引。