什么是编译器?如何制作一个简单的ruby到javascript编译器

What is compiler? How can I make a simple ruby to javascript compiler?

本文关键字:编译器 简单 一个 javascript ruby 何制作 什么      更新时间:2023-09-26

WikiPedia说:

编译器是一种计算机程序(或一组程序),用于转换用程序设计语言编写的源代码(源语言)转换成另一种计算机语言(目标语言,通常具有称为目标代码的二进制形式)。最常见的原因想要转换源代码就是创建一个可执行程序。

如果我把一些ruby代码转换成javascript代码,这会被称为简单的rubyjavascript编译器吗。

举个简单的例子,考虑一下这个ruby代码:

def hello_world
   return 1
end

因此,在javascript中,如果我使用regex修改此代码,并使其类似于:

function hello_world()
{
   return 1;
}

并运行这段代码:

eval(codeString);

(我知道这是一段很小的代码,但我不得不举一个简单的例子)


如果我太笨了,有人能解释编译器到底是什么吗?我该如何创建编译器吗

您所描述的是一个传输程序,是的,它是一种编译器
当然,您不会用regex替换来创建它,因为它并不总是简单地放一些括号或添加关键字。您可以将Ruby源代码解析为类似AST的东西,它表达了的意义。然后,您可以将这个意义编译回Javascript代码,这可能会产生也可能不会产生与原始Ruby源代码非常不同的代码。这基本上就是编译器所做的;通常,它编译的目标语言是一种较低级别的语言,如机器代码或字节码,但它也可以是另一种高级语言,如Javascript。