 <p>the question is a bit too broad. </p> <p>you have to step back and look at how source code in general ends up being executed (i.e. it is used). </p> <p>In case of some programming languages (e.g. C/C++) it's compiled to a native form and can be executed directly afterwards;</p> <p>In case of other languages it's compiled to an intermediate form (e.g. Java/C#) and executed by a vm (jvm/clr)</p> <p>In case of yet other languages is interpreted at runtime (e.g. Ruby/Python). </p> <p>So in the specific case of Ruby, you have the interpreter that loads the rb files and runs them. This can be in the context of standalone apps or in th e context of a web server, but you almost always have the interpreter making sense of the ruby files. you don't get an executable the same way as the you get for languages that are compiled to machine code.</p>