Post

Ruby的运行过程

  1. Ruby是一门脚本语言,默认是按照语句出现的顺序进行执行,通过控制结构可以变化行为,比如循环等。

  2. Ruby与C等编译语言相比,没有一个main方法可以作为执行的入口,而是接受一个待执行语句的脚本,然后从第一行代码执行到最后一行。Ruby解释器现在文件中扫描BEGIN语句,然后执行该语句所包含的代码,执行BEGIN代码块之后,会回到第一行代码开始顺序执行。

  3. 另一个差异是关于模块、类和方法的定义,在编译型语言中,上述的语法结构是由编译器来完成的。在Ruby中,它们也是语句,Ruby解释器遇到一个类定义或者方法定义的时候,就执行该语句,产生一个新的类或者新的方法。在后续部分中,解释器可能会碰到执行一个对方法的调用,这个调用就会执行该方法体内的语句。

  4. 执行的终止

  • 它执行一个导致Ruby程序终结的语句
  • 它到达文件的结尾
  • 它读入一行代码,此代码用标记__END__标记了文件的逻辑结尾

通常情况下,(除非是调用了exit!方法)Ruby解释器在退出之前都会执行任何END语句,以及通过at_exit函数注册的关闭钩子shudown hook代码。

This post is licensed under CC BY 4.0 by the author.