DMD 0.149 release

Niko Korhonen niktheblak at hotmail.com
Fri Mar 10 02:03:46 PST 2006


Georg Wrede wrote:
> A language that purports to be "to-the-metal" just has to take 
> into consideration the fundamentals of [digital] life. And processor 
> physics. (Wanna abstract away that? Then go to Java or whatever.)

You abstract away vast majority of the "fundamentals" and "processor 
physics" if you program in C instead of binary machine language or a 
specialized assembler. Actually I daresay that unless you have a PhD in 
physics and work at Intel or AMD you probably have already abstracted 
away most of processor physics, which use the word 'quantum' a lot.

Let's do an example: just how closely C's standard IO facilities 
corresponds with implementations of actual file systems in operating 
systems? Not very closely at all. Indeed, they are nothing alike. C's IO 
system is a very high-level abstraction, even if it seems low-level 
because of it's design. All recent operating systems have a much more 
modern and "high-level" API for IO than C, even when they are of lower 
abstraction level, and therefore actually more low-level than C's. Do 
not confuse low-level with poor language design, that's what K&R and 
Stroustrup did.

Furthermore, processor instruction sets have evolved way beyond C; do 
you have anything equivalent to vectorization, pareller execution or 
hardware threads in standard C? C may have had some resemblance to 
instruction sets and operating fundamentals of some specific computer 
architecture in the 1970's, but it hasn't had that in decades. Face it, 
even C is a high-level abstraction built on abstraction (which chooses 
to represent boolean values as integers). Every high level language is. 
Again, do not confuse poor design with efficiency and "low-levelism".

-- 
Niko Korhonen
SW Developer



More information about the Digitalmars-d-announce mailing list