[PD] code and compilers

Andrew Brouse brouse at music.mcgill.ca
Sat Dec 8 15:38:03 CET 2007

On Sat, 8 Dec 2007, pd-list-request at iem.at wrote:

> On Fri, 7 Dec 2007, Hans-Christoph Steiner wrote:
>> As for Pd vs. C, there was a time in the not-so-distant past where
>> programmers thought that compilers were horribly inefficient, and that
>> they were only really good for prototyping things.  Then you'd code
>> things for real in assembly.  That lasted well into the 80's.
> It even lasted well into the 90's, but it depends for what. The 80's had
> plenty ofy apps use a blend of asm and C-or-Pascal, while in the 90's
> it became limited to really needy applications (games, demoscene, etc).
> The amount of asm code still being written is shrinking but still somewhat
> present. For example, devel_0_39 has asm code in it.

I once wrote a final exam for a mandatory course in Assembly Language 
programming in the late 1990s where the most important question was to 
determine what a block of Motorola 68k assembly code was doing. People 
were just pulling their hair out! (mine never grew back!). It turned out 
the code was doing basically nothing. That was one of the best CS courses 
I ever took.

An old-school hacker (poet turned progammer, classic!) once told me that 
he used to debug his programmes (on mainframes, with not even 1M of 
memory) by actually just watching a display of activity in all memory 
locations. After a while, he just subconsciously internalised what was 
going on and managed to debug the code.

The questiion today might be whether auto-vectorising compilers are as 
good as hand-unrolled loops (I highly doubt it). The point is well-taken 
however: we should use high-level tools for the rapidity, expressivity and 
clarity they offer us in realising our particular ideas. It never hurts, 
nonetheless, to understand what that code is actually doing on the 
processor and in memory etc.

On a fundamental level, any code we run is just changing patterns of 
electrons bouncing about on a wafer of impure silicon. Thus, when our 
high-level tools fail us or don't give the expected result, we sometimes 
have to dig down a little deeper. Maybe there is a chunk of code, like 
that block of 68k assembly, which is just churning electrons around, 
basicaly doing nothing.


"[...] the introduction of the blackboard has had more impact on classroom 
education than any innovation in technology since, including the 
introduction of cheap paper or the introduction of the internet and 
personal computers"

Bill Buxton

More information about the Pd-list mailing list