Onderscheid en overeenkomst tussen programma en procedure.
Zowel een programma als een procedure leggen een rekenproces
vast in ALGOL. Daarom is het begrijpelijk dat beide begrippen
nogal eens verwarring geven. Op het verschil tussen beide begrippen
zal dan ook in het kort worden ingegaan.
Een concreet probleem wordt steeds met behulp van een pro
gramma berekend. In een programma kan wel, maar behoeft niet
gebruik te worden gemaakt van procedures. Doen zich in een
berekening deelberekeningen voor die sterke verwantschap ver
tonen en alleen maar verschillen in een aantal parameters, dan
doet men er zeker verstandig aan het rekenproces dat aan deze
deelberekeningen ten grondslag ligt in een procedureverklaring
vast te leggen. Elk van de deelberekeningen wordt dan in het
programma opgenomen door middel van een aanroep van de
procedure, waarbij dan aan de formele parameters van de procedure
een actuele waarde wordt toegekend, die voor de betreffende
deelberekening noodzakelijk is.
Het kan echter ook zijn dat bij twee geheel verschillende bere
keningen zich deelberekeningen voordoen die alleen in bepaalde
parameters verschillen. Zo komen bijv. matrixinversies voor op
totaal verschillende gebieden. Ook dan kan het desbetreffende
rekenproces in een procedureverklaring worden vastgelegd. Deze
procedureverklaring wordt dan eenvoudig in de verschillende
programma's opgenomen, en wordt een- of meermalen in elk
programma aangeroepen, op de wijze als noodzakelijk is voor de
desbetreffende berekening.
Een programma is dus steeds een zelfstandig geheel, terwijl een
procedure slechts kan worden gebruikt als onderdeel van een
programma.
Een belangrijke maar niet altijd eenvoudig te beantwoorden
vraag is, welke rekenprocessen men in procedurevorm vast moet
leggen en welke rekenprocessen alleen in programmavorm. Maakt
men geen gebruik van procedures, dan zal men bij het schrijven
van een programma vaak in herhalingen vallen. Schrijft men bijv.
een programma voor het vereffenen van een driehoeksnet, zonder
daarbij van procedures gebruik te maken, dan zal men voor het
vereffenen van een waterpasnet een vrijwel geheel nieuw programma
moeten schrijven, hoewel toch een groot deel van beide reken
processen sterke verwantschap zullen vertonen, omdat immers
beide berekeningen gebaseerd zijn op de methode der kleinste
kwadraten. Daarom verdient het overweging één of meer procedures
te ontwerpen voor het rekenproces van de kleinste kwadraten.
Anderzijds dient men er echter ook voor te waken de procedures
al te algemeen van opzet te maken. Zeer algemene procedures
zullen het berekenen van een zeer grote verscheidenheid van
problemen mogelijk maken, maar onder al deze problemen zullen
er dan gemakkelijk zijn, die zich praktisch weinig of misschien wel
nooit voor zullen doen. In dergelijke gevallen wordt van sommig
205