> -----Original Message----- > From: fedora-list-bounces@xxxxxxxxxx [mailto:fedora-list- > bounces@xxxxxxxxxx] On Behalf Of Jeff Vian > > > When you write a C program, isn't the source code a "script of commands" > > telling another program (the compiler), what to do? > > yes Nope, the compiler is simply a translator that translates the program into terms that the computer understands. It's the computer that executes the program, not the compiler. > > > > I think the essence and intent of what you are saying is exactly what I > > was thinking, but is there a loophole there ? > > > > Not really. A compiled program also tells another program what to do. > For example a compiled binary interacts with the hardware by making > system calls that are handled by the kernel or the video driver or ..... You're not seeing the wood for the trees. Obviously at the end of the day everything is executed by the computer and a computer program makes use of all sorts of system utilities. But think in terms of a block diagram of the system components - the entity that executes a computer program is the computer itself. The entity that executes a script is some other program (bash, Perl, whatever). > A program that makes direct hardware calls is severely frowned upon > these days. Thus, except for the kernel and specialized hardware > drivers, all programs, whether they be binary executables (compiled) or > scripts (interpreted) actually interact in defined ways with other > programs (the shell, the kernel, the compiler, the interpreter, etc). Which doesn't conflict at all with my definitions - the program is telling the computer itself what to do, including telling it to make calls to system functions etc. Ian