Reguliere reisprogramma's

 
 

Deze pagina bevat een animatie die de transities van een "regulier" programma berekent. Zoals je ondertussen hebt geleerd bij de hoorcolleges, zijn programma's toestandsovergangen, ofwel relaties tussen toestanden. Verschillende programmaconstructies worden nu geïnterpreteerd als operaties over relaties. Bijvoorbeeld, de relatie die hoort bij de aaneenrijging van twee programma's verkrijg je door de compositie van de relaties van de twee programma's (in de goede volgorde) te berekenen. De animatie berekent dergelijke operaties, de zogenaamde reguliere operaties, over een gegeven model met twee atomaire programma's TREIN (T) en BUS (B). De aaneenrijging van deze twee programma's, T;B, staat voor het programma "neem eerst de trein, en daarna de bus". De andere twee reguliere constructies zijn "keuze" en "iteratie". De keuze (U) van twee programma's, bijvoorbeeld T U B, staat voor "neem de trein of de bus". De iteratie (*) van een programma betekent dat je dat programma een ongespecificeerd (eindig) aantal keren herhaalt. Zo betekent T* dat je een aantal keer achter elkaar de trein neemt (mag ook 0 keer zijn!).


   
KEYBOARD  
T R I P S

Instructies

In het model van de calculator zie je een eenvoudig OV-netwerkje tussen vier steden (toestanden). De rails-pijlen staan voor de treinen, en de asfalt-pijlen voor de bussen. Met reguliere constructies kan je nu reisprogramma's maken, waarvan deze machine nu berekent welke overgangen dmv zo'n programma gemaakt kunnen worden. Met de toetsen kun je een reisprogramma maken, en vervolgens voer je hem in met ENTER. Je kan je programma weghalen door op CLEAR te drukken.
De resultaten verschijnen op het blauwe bord linksonderaan. Voor elke toestand, Adam, Rdam, Vdam en Edam, wordt bepaald welke toestanden toegankelijk zijn, gegegeven het ingevoerde programma. Zij worden onder de toestandsnaam in het geel afgebeeld. Zo geeft het voorbeeld B;(TUB)* (= neem een bus en daarna een eindig aantal keer de trein of de bus) de paren (Adam,Adam), (Adam,Rdam), (Adam,Edam), (Adam,Vdam) en (Edam,Vdam) als transities. In de display zal dit verschijnen als:

(Adam,Adam) is een transitie die door dit programma beschreven wordt, je kan tenslotte de bus nemen naar Rdam, om vervolgens een trein naar Edam te nemen, en uiteindelijk weer een trein van Edam naar Adam te nemen. (Adam,Vdam) hoort ook bij de overgangen van dit programma omdat je weer een bus naar Rdam kan nemen, om vervolgens drie treinen te nemen over Edam en Adam om uiteindelijk in Vdam uit te komen. Natuurlijk is een kortere uitvoering van dit programma mogelijk door vanuit Rdam een trein naar Edam te nemen, en daar direct een bus te nemen naar Vdam. Vanuit Rdam en Vdam kan je het genoemde reisprogramma helemaal niet uitvoeren omdat daar vandaan geen bussen vertrekken. Vanuit Edam is slechts Vdam bereikbaar. Je neemt de bus, en daarna 0 keer de trein of de bus.


© JAN JASPARS. This page contains a JavaScript 1.1-code, and has been developed for the Programming & Reasoning teaching group.