Beetje suf, zo'n onderwijstaal
Arnout van Kempen is terug en schrijft weer regelmatig over pret maken met computers. Hij gaat aan de slag met Pascal.
Pascal is een prima taal voor het onderwijs, maar haalt het wel de kracht van C? Eén ding moge duidelijk zijn, programmeren in Pascal is minder compact dan C. Daar staat tegenover dat je in Pascal veel minder noodzaak hebt om te documenteren wat je aan het doen bent. Dus uiteindelijk is het nog maar de vraag of je wel zoveel meer toetsaanslagen hebt in Pascal.
In een vergelijking tussen de executables die door beide compilers wordt geproduceerd, blijkt dat ze elkaar nauwelijks ontlopen. C levert in specifieke situaties wat snellere code op, Pascal vaak wat compactere code. Maar over het algemeen zijn beide compilers prima in staat snelle code te maken.
Is het cliché dat C veel dichter op het ijzer zit dan welke andere taal dan ook, buiten assembly, dan misschien waar? Ook dat is maar de vraag. Zeker Turbo Pascal 6.0, dat enerzijds de eerste elementen van OOP introduceerde maar anderzijds een ingebouwde assembler had, kon veel kanten op. Zo is dit ook Pascal, met pointers, met inline assembly, en nog steeds vrij leesbaar:
program demo_ptr_asm;
type
twordarray = array[0..4] of word;
pwordarray = ^twordarray;
function sum_words(p: pwordarray; n: word): longint; assembler;
asm
push bp
mov bp, sp
push ds
lds si, [bp+6] { p }
mov cx, [bp+8] { n }
xor ax, ax
xor dx, dx
@@loop:
add ax, [si] { dx:ax += *si }
adc dx, 0
add si, 2 { volgende word }
loop @@loop
pop ds
pop bp
end;
var
a: pwordarray;
i: integer;
s: longint;
begin
new(a);
for i := 0 to 4 do
a^[i] := i + 1; { 1,2,3,4,5 }
s := sum_words(a, 5); { verwacht 15 }
writeln('som = ', s);
dispose(a);
end.
Kortom: het gebruik van Pascal beperkt je niet echt in je toegang tot de hardware, terwijl het wel meer veiligheid en meer leesbaarheid geeft.
Gerelateerd
Bestanden in DOS
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gaat aan de slag met Pascal.
De diepte in met functies en procedures
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gaat aan de slag met Pascal.
Gestructureerde data
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gaat aan de slag met Pascal.
Een softwaremuseum
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gaat aan de slag met Pascal.
De basisstructuur
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gaat aan de slag met Pascal.
