Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Teaching programming h;lp

Name: Anonymous 2006-09-18 11:08

I'm going to teach programming to somebody who's going to study it more formally in a year, but wants to be learning part of it in the mean time.

What SIMPLE, CLEAN, STRUCTURED language would you recommend me to use for teaching? Please, refrain from language wars as this is not a fanboy thread but a serious question. Before yuo mention it, I'm not going to start with either Python or Ruby because they're too complex and get too much in the way, and no, I'm not stupid enough to start with Java because a radical OO language (and a crappy one at that) with a shitty enterprise API is not the best either.

I'm thinking Pascal. As much as it sucks, it has strict/anal types (it's better to start anal than to start easy-going and botch it), simple yet not messy syntax, simple stdin/stdout input and output to play with (that's all I'll need), and none of the complexity of OO. Yet it sounds so useless. But I don't know of other languages that meet these requirements.

Name: Anonymous 2006-09-20 11:11

>>30
Do you have a reading impediment there? I think I made myself pretty clear. Some architectures allow you to set condition flags based on the value loaded and its signed comparison with zero. Therefore, one fewer compare given an architecture where you can do shit like this.

Let's have a concrete example, shall we? The Motorola 68000 instruction set architecture, though I can't remember whether MOVE.B sets condition codes or not.

loop:
move.b (a0)+, d0
move.b d0, (a1)+
bne loop

That's a 3-instruction strcpy right there. Copies the terminator, too. Contrast with the length-prefixed form:

loop:
move.b (a0)+, d0
move.b d0, (a1)+
subq.l #1, d1
bne loop

This assumes that SUBQ.L sets condition codes too, and there's no reason why it wouldn't; this being the 68k architecture after all, and back then minimizing the instruction count was a big deal. So in this example, the length-prefixed version takes one more instruction per character than the zero-terminated version; that's one third more instructions total. (If the 68k supported memory operands on both sides of MOVE.B, it'd be 2 and 3 instructions respectively.)

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List