Opa vertelt … programmeren (deel 2)

Eerder schreef ik over hoe ik heb leren programmeren. Zoals beloofd nu wat meer over modpas, simuleren in modpas en de ontwikkeling van OO talen.

Modpas.
Modulair pascal, ontwikkeld in Twente, en met de komst van prof. Coen Bron naar Groningen ook in Groningen meer en meer gebruikt, was een dialect van Pascal . Zoals de naam al aangeeft, was het in modpas mogelijk modulair te programmeren. Grote voordeel daarvan was dat je je code in hanteerbare stukken (modules) kon opknippen en elke module een eigen onderdeel van het totaalprobleem kon laten oplossen. Modules konden dan ook gemakkelijk worden geimporteerd en gebruikt in andere applicaties. Een geval van write once, use anywhere dus (hoewel modpas wel platform-afhankelijk was).

Lange tijd is modpas ook gebruikt in het informatica-onderwijs. Later werd overgestapt naar het commerciële  Modula en nog weer later naar Java, maar daarover later meer.

S84.
Via Coen  Bron kwam ik in contact met prof. Koos Eelkman Rooda, toen nog werkzaam aan de TU Twente, later overgestapt naar Eindhoven. Coen en Koos hadden S84 ontwikkeld, een op modpas gebaseerde simulatietaal voor discrete simulatie. Ook ik heb daar wat bijdragen aan geleverd. Eén en ander heeft zelfs nog geresulteerd in het boek Simulatie en Implementatie, uitgegeven door Addison Wesley in 1988 en onlangs nog op marktplaats gesignaleerd.

S84 kende zg. processen. Modpas niet. Er was dan ook een preprocessor gebouwd die de S84-code omzette in modpas-code, waarbij het keyword process met wat additionele code werd omgezet in een procedure zodat via een trukje de voor simuleren noodzakelijke co-routines mogelijk werden. Een co-routine is een routine of procedure, die ergens halverwege onderbroken kan worden, waarna doorgegaan kan worden met een andere co-routine. Op een later moment kan de oorspronkelijke co-routine vanaf het punt van verlaten weer worden vervolgd. Op zo’n manier waren simulatieprocessen mogelijk. De simulatietijd was hierbij het belangrijkste controlemechanisme. Een statement zoals hold(10) betekende dan 10 simulatietikken wachten (en concreet dus eerst andere co-routines op de huidige simulatietijd verder afwerken).

Het boek kwam overigens voort uit een collegedictaat dat gebruikt is bij het gelijknamige vak dat een aantal jaren door informatica-studenten als keuzevak gebruikt kon worden. S84 is door Koos Rooda en medewerkers lang gebuikt om simulaties uit te voeren van verschillende productielijnen, zoals de fabricage van fietsbanden door Vredestein in Enschede.

S84 was speciaal geschreven voor discrete simulatie, d.w.z. simulatie waarbij de simulatietijd in stapjes verhoogd wordt afhankelijk van wat op een bepaald moment zou moeten plaatsvinden. Continu verlopende processen waren niet mogelijk, hoewel ik daar in S84 wel wat pogingen toe heb ondernomen. Ook continue processen kun je tenslotte discreet maken door kleine stapjes te nemen.

OO.
De modulaire aanpak was een eerste aanzet tot de object-georiënteerde aanpak: denken zoals wij als mens ook denken, dus in dingen en in dingen die acties kunnen doen. De dingen zijn de objecten, de acties de methoden die zo’n object kan uitvoeren en beschreven staan in de overeenkomstige klasse (een beschrijving van gelijksoortige objecten). Zo is één specifieke student één voorkomen (object) uit de klasse Student, waarin beschreven staat wat zo’n student kent (zijn eigenschappen, bijvoorbeeld zijn leeftijd) en kan (zijn acties, bijvoorbeeld een college volgen).

Mijn eerste kennismaking met OO was toen Eelco Dijkstra begon met cursussen op dit gebied, in opdracht van het bedrijf PTS (inmiddels Alten PTS), waar toen oud-student van de RUG Henk van Schilt de directeur was. Eelco verzorgde daar avondcursussen aan nieuwe medewerkers van het detacheringsbureau. De cursussen werden een succes en op een gegeven moment was hulp nodig en heb ik eerst samen met Eelco, later parallel en nog weer later in mijn eentje een flink aantal afleveringen van de cursus verzorgd. Het materiaal kon ik vervolgens weer gebruiken voor een nieuw vak in het informatica-onderwijs, object georiënteerd programmeren, dat later ook onder andere namen en verknipt over meerdere colleges bleef bestaan. Een vak als SAO (software analyse en ontwerp) is nog steeds deels uit deze cursus afkomstig.

Volgende keer meer over deze PTS cursus, OO-programming, Smalltalk, Java en dergelijke.

Aanverwante logs:

Getagd met ,