Compiling vs. interpreting

Jonathan Hutchins hutchins at tarcanfel.org
Fri Mar 11 13:08:42 CST 2005


The term "compiling" implies that more than one thing is being combined into a 
single final output.  Usually it implies either the expansion of keywords 
(such as commands) into actual machine instructions, more often the pulling 
in of subroutines from various libraries.

"Translation" or "interpretation" implies a more linear approach, where the 
source is merely converted to machine code.

In practice, systems that translate human-readable code into machine code at 
run-time, each time a program is run, are considered to be interpreters, 
while a system that does a one time translation, then stores and runs the 
"executable file" are compilers.

Obviously, it's possible for nearly any language to be either interpreted or 
compiled, or both for that matter.  Some languages are designed and optimized 
for run-time "interpretation".

(A side note:  In the 80's, Dial-up Bulletin Board software involved 
relatively large text-based configuration files.  Some programs like Berley 
BBS would check the timestamp on the config files, and if they had changed 
since last run the program would translate them into binary.  It would then 
be able to use the binary translation each time it was run until the master 
config file changed again.  Saved some execution cycles, while making the 
configuration file very easy to understand and edit.)
	


More information about the Kclug mailing list