什么是编译器?如何制作一个简单的ruby到javascript编译器
What is compiler? How can I make a simple ruby to javascript compiler?
WikiPedia说:
编译器是一种计算机程序(或一组程序),用于转换用程序设计语言编写的源代码(源语言)转换成另一种计算机语言(目标语言,通常具有称为目标代码的二进制形式)。最常见的原因想要转换源代码就是创建一个可执行程序。
如果我把一些ruby
代码转换成javascript
代码,这会被称为简单的ruby
到javascript
编译器吗。
举个简单的例子,考虑一下这个ruby代码:
def hello_world
return 1
end
因此,在javascript中,如果我使用regex修改此代码,并使其类似于:
function hello_world()
{
return 1;
}
并运行这段代码:
eval(codeString);
(我知道这是一段很小的代码,但我不得不举一个简单的例子)
如果我太笨了,有人能解释编译器到底是什么吗?我该如何创建编译器吗
您所描述的是一个传输程序,是的,它是一种编译器
当然,您不会用regex替换来创建它,因为它并不总是简单地放一些括号或添加关键字。您可以将Ruby源代码解析为类似AST的东西,它表达了对的意义。然后,您可以将这个意义编译回Javascript代码,这可能会产生也可能不会产生与原始Ruby源代码非常不同的代码。这基本上就是编译器所做的;通常,它编译的目标语言是一种较低级别的语言,如机器代码或字节码,但它也可以是另一种高级语言,如Javascript。
相关文章:
- 简单的javascript在Shopify中不起作用
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- JS编译器/包管理器,用于版本控制
- 如何制作简单的php'在Javascript中的foreach等价物
- JQuery:向多个匹配结果添加换行符的最简单方法
- AJAX简单错误.XMLHttpRequest无法加载http://localhost/mpl/getPage.php.
- Moment/Jquery-一个简单时间线的愚蠢问题
- 什么's本地node.js服务器和python简单http服务器之间的区别
- 简单类测试未通过
- 简单地将拆分变量添加到对象中
- 当使用extern和目标JavaScript时,我如何强制Haxe编译器使用require语句
- 通过javascript操作图像,非常简单
- 问题用moment JS制作一个简单的时间表
- 简单的ES6承诺问题-交换解决和拒绝参数
- 带有计数器、缩略图、进度条和淡入淡出效果的简单jQuery幻灯片
- 简单的JS函数.需要对变量进行澄清
- 为其他JS生成定义“;编译器”;来自TypeScript定义文件
- 简单的交换程序无法使用javascript
- 使用闭包编译器简单优化从函数内部删除调试代码
- 什么是编译器?如何制作一个简单的ruby到javascript编译器