Ruby is a scripting language. This means that Ruby programs are simply lists, or scripts, of statements to be executed. By default, these statements are executed sequentially, in the order they appear. Ruby’s control structures (described in Chapter 5) alter this default execution order and allow statements to be executed conditionally or repeatedly, for example.
Programmers who are used to traditional static compiled languages like C or Java may find this slightly
confusing. There is no special main
method in Ruby from which execution begins. The Ruby interpreter
is given a script of statements to execute, and it begins executing at
the first line and continues to the last line.
(Actually, that last statement is not quite true. The Ruby
interpreter first scans the file for BEGIN
statements,
and executes the code in their bodies. Then it goes back to line 1 and
starts executing sequentially. See BEGIN and END for more
on BEGIN
.)
Another difference between Ruby and compiled languages has to do with module, class, and method definitions. In compiled languages, these are syntactic structures that are processed by the compiler. In Ruby, they are statements like any other. When the Ruby interpreter encounters a class definition, it executes it, causing a new class to come into existence. Similarly, when the Ruby interpreter encounters a method definition, it executes it, causing a new method to be defined. Later in the program, the interpreter will probably encounter and execute a method invocation expression for the method, and this invocation will cause the statements in the method body to be executed.
The Ruby interpreter is invoked from the command line and given a
script to execute. Very simple one-line scripts are sometimes written
directly on the command line. More commonly, however, the name of the
file containing the script is specified. The Ruby interpreter reads the
file and executes the script. It first executes any BEGIN
blocks. Then it starts at the first line
of the file and continues until one of the following happens:
It executes a statement that causes the Ruby program to terminate.
It reaches the end of the file.
It reads a line that marks the logical end of the file with
the token __END__
.
Before it quits, the Ruby interpreter typically (unless the
exit!
method was called) executes the
bodies of any END
statements it has
encountered and any other “shutdown hook” code registered with the
at_exit
function.
3.129.211.166