Editing 303: Compiling

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 14: Line 14:
 
Programs can be written in {{w|Assembly language|assembly code}}, which is basically just a set of mnemonics that make machine code much easier for a human to remember and correctly parse; the human-written assembly code is then run through a simple assembler to convert it directly into machine code.  Assembly coding is necessary whenever one is programming for a completely new architecture (one for which no other tools yet exist), and is still used in some other situations (as it allows the code to be optimized more closely for the system on which it is to run than is possible with other types of coding), but is still fairly tedious and error-prone, and assembly code needs to be completely rewritten if one wants to port it to a computer with a different architecture.
 
Programs can be written in {{w|Assembly language|assembly code}}, which is basically just a set of mnemonics that make machine code much easier for a human to remember and correctly parse; the human-written assembly code is then run through a simple assembler to convert it directly into machine code.  Assembly coding is necessary whenever one is programming for a completely new architecture (one for which no other tools yet exist), and is still used in some other situations (as it allows the code to be optimized more closely for the system on which it is to run than is possible with other types of coding), but is still fairly tedious and error-prone, and assembly code needs to be completely rewritten if one wants to port it to a computer with a different architecture.
  
An interpreter (e.g. that for {{w|PHP}} for one example) generally reads through the code, or script, each line at a time as and when required, and has to do a lot of work with various processing overheads and the risk of hitting an invalid instruction or mistake in syntax that it can't handle.  It also requires that a relevant version of the interpreter exist on any machine that has to run the script and perhaps some additional knowledge by the end-user.
+
Interpreters (e.g. that for {{w|PHP}} for one example) generally read through the code, or script, each line at a time as and when required, and has to do a lot of work with various processing overheads and the risk of hitting an invalid instruction or mistake in syntax that it can't handle.  It also requires that a relevant version of the interpreter exist on any machine that has to run the script and perhaps some additional knowledge by the end-user.
  
 
For widely distributed (and especially commercial) programs, some form of compilation will instead be used.  Compiling may have just one computer system read through the man-written code and (barring errors) produces the equivalent stand-alone and direct machine-readable code, suitable for a given range of computers.  This process might involve several passes to check for 'obvious' errors in the code, as well as converting some programming concepts that are easiest for humans to understand into equivalent concepts that may be far easier for the computer to work with.
 
For widely distributed (and especially commercial) programs, some form of compilation will instead be used.  Compiling may have just one computer system read through the man-written code and (barring errors) produces the equivalent stand-alone and direct machine-readable code, suitable for a given range of computers.  This process might involve several passes to check for 'obvious' errors in the code, as well as converting some programming concepts that are easiest for humans to understand into equivalent concepts that may be far easier for the computer to work with.
Line 24: Line 24:
 
The title text takes this a step further.  Cueball claims that ''all'' activities are equally benign while the code is compiling — and that includes committing illegal acts, such as stealing {{w|LCD}}s.
 
The title text takes this a step further.  Cueball claims that ''all'' activities are equally benign while the code is compiling — and that includes committing illegal acts, such as stealing {{w|LCD}}s.
  
Nine years after this comic was released, [[Randall]] made a comic called [[1755: Old Days]] about how compiling worked in the old days. It was Cueball who asked. The next comic after that, [[1756: I'm With Her]], was released the Monday before the {{w|2016 United States presidential election}}. And in that comic, a Cueball with a sword on an office chair like in this comic is featured. It seems realistic that Randall had that politically loaded comic ready for some time, and when finding and deciding to use this old version of Cueball, he may have been inspired by the compiling theme to make Old Days.
+
Nine years after this comic was released, [[Randall]] made a comic called [[1755: Old Days]] about how compiling worked in the old days. It was Cueball who asked. The next comic after that, [[1756: I'm With Her]], was released the Monday before the {{w|2016 United States presidential election}}. And in that comic, a Cueball with a sword on an office chair like in this comic is featured. Seems realistic that Randall had that politically loaded comic ready for some time, and when finding and deciding to use this old version of Cueball, he may have gotten inspired by the compiling theme to make Old Days.
  
 
==Transcript==
 
==Transcript==

Please note that all contributions to explain xkcd may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see explain xkcd:Copyrights for details). Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Cancel | Editing help (opens in new window)