
tack at auc
Apr 12, 2003, 2:32 PM
Post #20 of 20
(2075 views)
Permalink
|
On Sat, 2003-04-12 at 11:08, Joseph A. Caputo wrote: > This is starting to get off-topic, but... IMHO C++ is not any more or less > "high-level" than Perl, Python, etc. The main difference is that it is a > compiled language rather than a scripted/interpreted language, and as such I think you might be confused about what "high level" means. Consider Perl references versus C/C++ pointers. In C, you pass pointers around, and you always have the possibility of having invalid pointers. Try writing to an invalid pointer and the operating system will spank you in various ways (segfault, GPF, locking up, depending in your platform). With Perl or Python, you pass around references, and you always know they're going to be valid, and garbage collection happens for you when all reference to that object go away. It's difficult to argue that a language with late bindings, introspection, garbage collection, etc. isn't higher level than a language like C++ where the programmer must explicitly deal with these issues. > introduces extra learning dependencies, such as using compilers & > linkers, writing makefiles, and explicit memory management. However, > the features of the language itself (syntactically) are not any less > "high-level". I'll grant you that compiled vs. interpreted and project management approaches (e.g. Makefiles) don't differentiate high and low level languages. (For example, Python can be compiled into bytecode.) But certainly having to deal with memory management or worry about architecture issues (endianness, for example) is precisely (by definition) what makes a language lower level than a language that does not have to worry about these issues. Expressiveness is also another indicator, but to a lesser extent. Compare using regular expressions in Perl with using libpcre from C. Perl regular expressions are not merely syntactic sugar here. Regexp in Perl adds significant expressive power to the language. This is what differentiates it from lower level languages like C and C++ which lack the constructs for this level of expressiveness. Jason. -- Jason Tackaberry :: tack [at] auc :: 705-949-2301 x330 Academic Computing Support Specialist Information Technology Services Algoma University College :: www.auc.ca
|