NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.
All the Perl that's Practical to Extract and Report
Stories, comments, journals, and other submissions on use Perl; are Copyright 1998-2006, their respective owners.
compiled vs. interpreted (Score:1)
Re: (Score:1)
The first half of that may be true. It may not be; consider a self-hosted language. The latter half is likely not true, as I can write
evalfor C in C if I can make system calls, open shared libraries, and call functions from shared libraries."Compiled" and "interpreted" are characteristics of execution models and are rarely intrinsic to the language.
Re: (Score:1)
I was proposing it as a definition, not a statement of fact :). The only thing that might not be true is that the two halves are equivalent; obviously, they aren't: the latter implies the former but not vice versa. Still, a language that required its compiler to run but didn't provide 'eval' would be rather odd, and probably could be implemented better, so I don't think that matters.
I'm not sure what you mean by a 'self-hos
Re: (Score:1)
I can write
system( "/usr/bin/gcc -o mynew.so mynew.c" );. The same thing is possible in a Perl withouteval. Neither of us said that portability affected the definition.As long as our general purpose computing devices use the Von Neumann architecture, any operation that allows you to modify the contents of memory as the program runs makes it possible to allow
evalorRe: (Score:1)
...at which point your program requires a compiler to run, and is written (by my definitions) in an interpreted language ('C-plus-the-assumption-that-/usr/bin/gcc-is-a-compiler'). I think that if you wrote any sizeable amount of code making use of that construction, or any other like it, you would find you were using a rather more powerful language than C.
Re:compiled vs. interpreted (Score:1)
Thus question of whether a language is compiled or interpreted depends on the specific program or script. Suppose instead of invoking an external compiler I used the JIT to generate new code instead of speeding up existing code. If the language itself does not provide
evaland I don't invoke an external compiler through a system call, does the language suddenly become interpreted because I can fake the use ofevalthrough a runtime facility?This is why I think that declaring a language as interpreted or compiled is silly. No matter where you draw the line, the fact that interpretation and compilation are both implementation detail of multiple stages of the process of executing a program mean that you can hinge your definition in several ways.
Reply to This
Parent
Re: (Score:1)