Earlier quoted context omitted.
Yes, but then people are conflating notions of type-system/runtime/vm/etc. with the notion of script vs. program. The key distinction is this: In a programming language you can only have one entry point (the "main()" function), regardless of how the individual files are linked. In a scripting language the entry point depends on which file the interpreter starts with, and the execution model can change depending on ho…
This is a different distinction than the one the other poster reported that Matz proposes, but it's not useful either. You can do it in C, even without using the preprocessor; see http://gist.github.com/51416 , which does it with weak symbols. Worse, whether C is a "scripting language" or not depends only on the presence or absence of such trivial features. Your distinction would make Java a "scripting language," bec…
...and by the way, I would consider x86 assembly a scripting language. You're just scripting out the processor's actions...