Alweer geen Excel

Waarom Pascal?

Arnout van Kempen is terug en schrijft weer regelmatig over pret maken met computers. Hij gaat aan de slag met Pascal.

Al toen ik als brugklasser achter een TRS-80 kroop op school, was Pascal de taal die je werd geacht te leren om gestructureerd te leren programmeren. FORTRAN, COBOL en C waren in die tijd dominant in de wereld van big iron, mainframes en mini's dus. BASIC was veruit dominant aan het worden in de wereld van de 8-bits computers, de persoonlijke computers. En natuurlijk was overal assembly of zelfs machinetaal nog een optie. Typisch aan BASIC en Assembly is dat in deze talen niet gewerkt wordt met codeblokken, maar met code die (ongestructureerd) achter elkaar in het geheugen staat en dat herhalingen en keuzestructuren worden gemaakt door te springen in de code. 

Waar je in C zou schijven:

if (n > 0) {
        printf("Positief\n");
    } else if (n == 0) {
        printf("Nul\n");
    } else {
        printf("Negatief\n");
    }

kan je in BASIC tegenkomen:

20 IF N > 0 THEN GOTO 100
30 IF N = 0 THEN GOTO 200
40 GOTO 300
100 PRINT "Positief": GOTO 400
200 PRINT "Nul": GOTO 400
300 PRINT “Negatief"

Nu bestond C al, maar dat is om allerlei redenen een taal die minder makkelijk valt te leren dan BASIC. Pascal combineert de leesbaarheid van BASIC met de gestructureerde aanpak van C en doet dat nog een stukje veiliger ook. In een compleet programmaatje zou dat in Pascal bijvoorbeeld worden:

program KiesVoorbeeld;

uses
  crt;

var
  n: integer;

begin
  write('Geef een getal: ');
  readln(n);

  if n > 0 then
    writeln('Positief')
  else if n = 0 then
    writeln('Nul')
  else
    writeln('Negatief');
end.

Typische Pascal-elementen hier zijn het gebruik van programmablokken die niet zoals in C tussen curly brackets staan, maar tussen begin en end.

Een Pascal-programma begint met program en dan de naam van het programma en het eindigt met een punt. Anders dan in C, declareer je de globale variabelen vóór de eigenlijke programma-code en al die aardige trucjes die je de mogelijkheid geven in C heel compact te coderen, zijn in Pascal in de regel uitgesloten. 

In de huidige versie van C kan je zelfs dit schrijven:

for (int i = 0; i < 10; i++) {printf("%d, %s\n", i, (i % 2 == 0) ? "even" : “oneven"); 

wat vrij onleesbaar is. In Pascal moet je dat schrijven als:

program EvenOfOneven;

uses crt;

var
  i: integer;

begin
  for i := 0 to 9 do
  begin
    if i mod 2 = 0 then
      writeln(i, ', even')
    else
      writeln(i, ', oneven');
  end;
end.

Om het C voorbeeld goed te interpreteren, helpt het erg als je kennis hebt van C. De Pascal code is in principe behoorlijk leesbaar, al heb je nog nooit iets met Pascal gedaan.
En daarmee was het nogal geschikt voor het onderwijs.

Arnout van Kempen is naast computernerd ook directeur compliance & risk bij aaff. Hij schrijft op persoonlijke titel.

Gerelateerd

reacties

Reageer op dit artikel

Spelregels debat

    Aanmelden nieuwsbrief

    Ontvang elke werkdag (maandag t/m vrijdag) de laatste nieuwsberichten, opinies en artikelen in uw mailbox.

    Bent u NBA-lid? Dan kunt u zich ook aanmelden via uw ledenprofiel op MijnNBA.nl.