Javascript 内联执行生成的汇编程序
我正在阅读以下演示文稿: 它将(4,10,19)内联ASM生成作为Javascript优化中使用的一种技术 在以下文件中: 在第30页和第31页,他们讨论了使用scheme生成ASM,该ASM随后在后续操作系统进程中链接和执行 您希望生成ASM并在现有流程中执行它的场景如何?(即没有后续链接,并在单独的步骤中执行) 我假设这归结为(以C为例)生成ASM,将字节写入内存区域(代码为数据),并添加一个函数头和返回(与C调用方兼容(类似于我们在上面的Goloum论文第3页上看到的),然后我们将该数据指针转换为函数指针并调用它(代码作为代码-从代码作为数据) 我的问题是: (a) 这种内联代码生成和执行的术语是什么Javascript 内联执行生成的汇编程序,javascript,assembly,scheme,inline-assembly,dynamically-generated,Javascript,Assembly,Scheme,Inline Assembly,Dynamically Generated,我正在阅读以下演示文稿: 它将(4,10,19)内联ASM生成作为Javascript优化中使用的一种技术 在以下文件中: 在第30页和第31页,他们讨论了使用scheme生成ASM,该ASM随后在后续操作系统进程中链接和执行 您希望生成ASM并在现有流程中执行它的场景如何?(即没有后续链接,并在单独的步骤中执行) 我假设这归结为(以C为例)生成ASM,将字节写入内存区域(代码为数据),并添加一个函数头和返回(与C调用方兼容(类似于我们在上面的Goloum论文第3页上看到的),然后我们将该数据指
(b) 有一个简单的“hello world”C示例吗?有一个很好的示例。他们再次使用了自修改代码的术语 另一个 他们将其分为四类(用例):
- 变质作用
- 蹦床
- JIT编译
- 安全影响(不安全编码/恶意软件)
关于LISP是否真的是自修改的,有一个讨论,他们最终得出结论认为它不是。我称之为即时(JIT)编译。许多Scheme实现都使用它,例如Racket和盗窃。这与这个问题非常相似(但没有示例)-他们称之为自我修改代码-我不确定我是否同意我的分类