-----Original Message----- From: D. Hageman
... Seriously, I do not group C# into realm of interpreted languages. I would agree that the line is blurring now that we are starting to see the compilers for interpreted languages, but one can still use those interpreted languages as a simple tool to assist in quick shell tricks.
I'll agree with you that there is no interactive interpreter. But interpreted means it has to pass through an interpreter for the computer to use it, not through the programmer. So, I'll continue to say it is interpreted and not compiled, because that is what it is. I don't care how complex or how many bells and whistles it has in the end it's interpreted before it's usable by the bare metal. I learned how to program using machine language, and then assembly. I wrote a "compiler" inside GW-Basic in 1980. So I know a little something about compiled versus interpreted. I don't care what the MS salespitch says is compiled.
So you can call it compiled since it's compiled into bytecode but then you have to call java compiled too.
I disagree also that an interactive interpreter for C# would be useful. You could test out lines of code and procedures from inside it. I don't use C#, I haven't had the opportunity at work and have no need at home. At work it's all VB. Of course work is over, this job is gone and I probably won't be sending anymore email from this address.
I understand your position, but still consider it wrong from a purely technical perspective.
Peace, Brian "Jack" Densmore
Jack of many trades, master of a few. Don't know jack about brain surgery, but if you hum a few bars I could argue about that one too. ;')
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.)
This will be my last post on the subject because I would hate to keep beating it to death.
Thought experiment:
We shall start with a program written in C since we all agree C is a compiled language. We shall compile the source code and target it for the Mac platform. This binary form will run on any modern Mac. Assume I copy this program to my x86 linux machine. I use something like PearPC to run this application on my linux machine. At this point since the machine's "bare metal" is not directly running this code by your definition we can consider C an interpreted language. I think you can see where I am going with this ...
I do indeed consider java a compiled language. In fact, I can even get hardware to run it natively.
You do make some good points about languages though. ;-)
I am sorry to hear about your job. :-(
Peace.
On Fri, 11 Mar 2005, Brian Densmore wrote:
I'll agree with you that there is no interactive interpreter. But interpreted means it has to pass through an interpreter for the computer to use it, not through the programmer. So, I'll continue to say it is interpreted and not compiled, because that is what it is. I don't care how complex or how many bells and whistles it has in the end it's interpreted before it's usable by the bare metal. I learned how to program using machine language, and then assembly. I wrote a "compiler" inside GW-Basic in 1980. So I know a little something about compiled versus interpreted. I don't care what the MS salespitch says is compiled.
So you can call it compiled since it's compiled into bytecode but then you have to call java compiled too.
I disagree also that an interactive interpreter for C# would be useful. You could test out lines of code and procedures from inside it. I don't use C#, I haven't had the opportunity at work and have no need at home. At work it's all VB. Of course work is over, this job is gone and I probably won't be sending anymore email from this address.
I understand your position, but still consider it wrong from a purely technical perspective.
Peace, Brian "Jack" Densmore
Jack of many trades, master of a few. Don't know jack about brain surgery, but if you hum a few bars I could argue about that one too. ;') _______________________________________________ Kclug mailing list [email protected] http://kclug.org/mailman/listinfo/kclug
//========================================================\ || D. Hageman [email protected] || \========================================================//