Practicumopgave Mehmet Oktener



Vergelijkbare documenten
Practicumopgaven Gerrit-Jan Jansen & Mark Meertens

Honours projecten BSc Informatica: twee voorstellen

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding:

AFO 142 Titel Aanwinsten Geschiedenis

Semantiek (2IT40) Bas Luttik. HG 7.14 tel.: Hoorcollege 8 (7 juni 2007)

Honours projecten BSc Informatica: twee voorstellen

9.4 Aangepaste tekstberichten beheren

Semantiek (2IT40) Jos Baeten. Formele Methoden. HG 7.19 tel.: Hoorcollege 1 (29 maart 2007)

Gelijktijdigheid: Wederzijdse Uitsluiting & Synchronisatie Concurrency: Mutual Exclusion & Synchonization (5e ed: , Appendix A.

GEBRUIKERSHANDLEIDING T8530

Take-home Tentamen Protocolvericatie. Universiteit van Amsterdam. 27 Maart 1994

Perceptive Process. Release Notes. Version: 3.5.x

Termherschrijfsystemen en Propositie-Algebra

TREVLER AIR Model GL300

Beknopte handleiding SQ Vieuw software

GS1 Data Source. Invoeren en wijzigen van gegevens met Excel

Eventing. Introductie. Regel verwerking. Basis structuur

januari TTNWW Handleiding TST tools voor het Nederlands als Web services in een Workflow Meertens Instituut, Joan Muyskensweg 25, 1096 CJ Amsterdam

Stap 1. Bepalen van invoer Het makkelijkst kun je dit vinden uit de zwarte vlakken met voorbeelden:

Semantiek (2IT40) Jos Baeten. HG 7.19 tel.: Hoorcollege 3 (12 april 2007)

VHDL overzicht. Digitale Systemen (ET1 410) VHDL? VHDL? Sequentieel vs. Concurrent 2/15/2011

Quick start handleiding versie 1.0

Opgaven bij Hoofdstuk 3 - Productiesystemen

Ontwerp van Algoritmen: opgaven weken 3 en 4

BROdeLuxe Opties. Skins. Peter Wester

VERZAMELINGEN EN AFBEELDINGEN

HeatLink HANDLEIDING 1

Bijlage Inlezen nieuwe tarieven per verzekeraar

Midi PDF Bladmuziek lezer

Project Objectgericht Programmeren : Deel 3

Inleiding programmeren

Bellen Zonder Zorgen

Selenium IDE Webdriver. Introductie

Door: Ruud van Eeghem Datum: juni 2008 Versie: 1.0. Handleiding gebruik EPBD GIPC tool

Beslisbare talen (1) IN2505-II Berekenbaarheidstheorie. Beslisbare talen (2) Beslisbare talen (3) De talen: College 7

Macro s. 4.2 Een macro maken

Handleiding ego4: anaxis.be. Webformulieren en Loket - Workflow INFO@ANAXIS.BE ONDERNEMINGSNR. BE

Programmeermethoden NA. Week 5: Functies (vervolg)

Zomercursus Wiskunde. Module 4 Limieten en asymptoten van rationale functies (versie 22 augustus 2011)

TREVLER AIR Model OBD2 AX5

11. Eenvoudige programma s schrijven in Maxima

Voor vloerverwarming de juiste temperatuur, op het juiste moment, op de juiste plek.

Gebruiksaanwijzing NL Unox Line Miss Elena & Rosella ELENA ROSELLA

TRILLINGEN EN GOLVEN HANDOUT FOURIER

Offective > Verkoop > Offertes

Elliptische krommen en digitale handtekeningen in Bitcoin

Formeel Denken 2014 Uitwerkingen Tentamen

Controle structuren. Keuze. Herhaling. Het if statement. even1.c : testen of getal even of oneven is. statement1 statement2

WORKSHOP ORANGE PI & PYTHON v september 2017

Automaten & Complexiteit (X )

Facturatie > Aanmanen

User accounts maken in een Wandy Hotspot, d.m.v. een batch.

HANDLEIDING VAN DATARECORDER SOFTWARE (FOR WS-9010)

Het omzetten van reguliere expressies naar eindige automaten, zie de vakken Fundamentele Informatica 1 en 2.

Handleiding Site to Edit Module Header

VBA voor Doe het Zelvers deel 20

Toetsen in Blackboard

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

DEALER ACCOUNT & SITE LICENTIE

MADASTER PLATFORM. IFC export in BIM software. Archicad 21 & Revit 2019

Tentamen IN3105 Complexiteitstheorie

Disclaimer Het bestand dat voor u ligt, is nog in ontwikkeling. Op verzoek is deze versie digitaal gedeeld. Wij willen de lezer er dan ook op wijzen

Faculteit Elektrotechniek - Leerstoel ES Tentamen Schakeltechniek. Vakcode 5A050, 17 november 2004, 9:00u-12:00u

E- mailadressen uit doelgroepen in NC halen (Actie- lijsten).

Opleiding ELEKTROMECHANICA optie Automatisatie LAB Labo Regeltechniek KLAS: 2AUa Academiejaar

Functioneel programmeren

Handleiding uitwisseling Tekla Structures RFEM versie: Dlubal RFEM Tekla Structures 19.1

Software Test Plan. Yannick Verschueren

Rodin installatiehandleiding (vanaf versie 2.1.xxx.x)

Gebruikers handleiding. Lizard Configuration Manager ToolTip. Installatie. Instellen. Initieel instellen

Uitleg bij videocursus hoofdstuk 5

BEGINNER JAVA Inhoudsopgave

Programmeermethoden. Controle-structuren. Walter Kosters. week 3: september kosterswa/pm/

Python. Vraag 1: Expressies en types. Vraag 1 b: Types -Ingebouwde functies- Vraag 1 a 3/10/14

Inleiding Programmeren 2

Inleiding Programmeren 2

1 Recurrente betrekkingen

Zomercursus Wiskunde. Katholieke Universiteit Leuven Groep Wetenschap & Technologie. September 2008

opgaven formele structuren tellen Opgave 1. Zij A een oneindige verzameling en B een eindige. Dat wil zeggen (zie pagina 6 van het dictaat): 2 a 2.

College Introductie

Handleiding Brunata WebMon (instellen rapportages)

Overzichten genereren in het FMIS

Handleiding ISaGRAF. Wil men het programma bewaren, dan is het verstandig een back-up te maken: C9 Back-up / Restore

Dit document beschrijft hoe notificaties werken binnen Apployed en hoe deze kunnen worden ingesteld aan de behoefte van de eigen organisatie.

Switch. Handleiding

4. Vereenvoudigen expressies

ETIM UP Handleiding Ketenstandaard Bouw en Installatie Versie:

Handleiding installatie QV soft certificaat.

Tentamen Kunstmatige Intelligentie (INFOB2KI)

Deel I Hoofdstuk 4: Modelleren van Toestand

Handleiding Rev1 2016

colleges recursieve datastructuren college 9 prioriteit van operatoren prioriteit in recursive descent parser

HANDLEIDING QUICKHEAT-FLOOR THERMOSTAAT

Genererende Functies K. P. Hart

Automaten. Informatica, UvA. Yde Venema

27/03/2014. GSM102 2 relais GSM OPENER PROGRAMMATIE HANDLEIDING

Nieuwe 3D functionaliteiten in MicroStation V8i SelectSeries 3

PRAKTICUMOPGAVE 1. De eerste prakticumopgave is het maken van een applet om een "Mandelbrotfiguur" te tekenen, zoals hieronder omschreven.

Tentamen Grondslagen van de Wiskunde A Met beknopte uitwerking

DISK HANDLEIDING UITVOER HOOFDSTUK 9 VERSIE 4.0

Transcriptie:

Practicumopgave Mehmet Oktener Alban Ponse Kruislaan 403, kr. 2.45 tel. 5257592 e-mail: alban@science.uva.nl Algemeen. In deze serie opgaven komt de specificatie van data typen aan de orde. Je wordt geacht de standaard-bibliotheek voor PSF te gebruiken. Alle genoemde tools, standaard-bibliotheek files en on-line manuals zijn te vinden op gene onder /home/psf/. Verdere informatie over de PSF-toolkit is te vinden op http://carol.wins.uva.nl/~psf/. Maak de opgaven aan de hand van de volgende principes: Correctheid van je antwoorden is meest belangrijk. Verder wordt helderheid geprefereerd boven beknoptheid. Van elke ingeleverde PSF specificatie mag de volgorde van herschrijfregels (equations) niet van invloed zijn op het resultaat van herschrijvingen. Dit kun je gedeeltelijk controleren met het trs -r commando. In de hiernavolgende twee pagina s enkele wenken voor de specificatie van PSF processen binnen dit practicum. 1

Het gebruik van PSF voor proces specificatie Conditional Expressions. In PSF is ook de zgn. conditional expression gedefinieerd. Deze is ook bekend onder de noemers guarded command en if - then - fi. Met deze constructie kunnen we proces-gedrag op een eenvoudige manier afhankelijk maken van data-waarden. De PSF syntax van conditional expressions is als volgt: [s = t] -> P is een proces expressie als P dat is, en s en t zijn in de betreffende module data termen van dezelfde soort. De binding van de conditional expression is sterker dan de, en zwakker dan alle andere proces-operatoren. We geven de semantiek van deze constructie eerst met behulp van een simpel voorbeeld: P = sum(n in NATURAL, [even(n) = true ] -> a. Even(n) Even(n) = Odd(n) = Hier is P een proces dat aftelbaar veel verschillende executies heeft: een a-stap naar Even(n) voor elke even waarde van n, en een b-stap naar Odd(n) voor elke oneven waarde van n. Een expressie als [even(n) = true ] heet ook wel een guard. Als even(n) en true in de initiele algebra gelijk zijn, dan is deze guard true, en anders false. In dit laatste geval evalueert de conditional expression naar deadlock. In het eerste geval is de guard transparant: bv. [true = true ] -> Q gedraagt zich hetzelfde als Q. De actierelaties voor de conditional expressions zijn als volgt gedefinieerd: x a x ; s = t ([s = t] -> x) a x x a ; s = t ([s = t] -> x) a Merk op dat als de guard s = t false is (in de initiele algebra), het proces [s = t] -> P geen stappen kan doen, en zich dus hetzelfde gedraagt als deadlock. De conditional expressions voldoen aan een aantal eenvoudige algebraïsche identiteiten. bijvoorbeeld geen volgorde tussen de evaluatie van de en van de guard, dus en [s = t] -> P [s = t] -> Q [s = t] -> (P Q) beschrijven hetzelfde proces. Zo is er 2

Het simuleren van PSF processen. Evenals dit het geval is met data modules, kunnen proces modules met het commando psf worden gecompileerd naar TIL zie verder de manual pages). De simulator werkt op de door psf gegenereerde TIL file van een process module, en geeft de gebruiker de gelegenheid om stap voor stap elk gedefinieerd proces te executeren. Alle volgende acties die een geselecteerd proces kan doen, worden in een menu opgesomd. Het selecteren van één van deze alternatieven brengt het proces in de volgende toestand. Een probleem dat hierbij kan optreden wordt geïllustreerd aan de hand van het proces P, als hierboven gedefinieerd. Dit proces start immers met een keuze uit aftelbaar veel acties, en is derhalve niet simuleerbaar. De oplossing die we in het practicum gebruiken is tamelijk simpel. Voor simulatie-doeleinden passen we specificaties op de volgende manier aan: in plaats van P = sum(n in NATURAL, [even(n) = true ] -> a. Even(n) Even(n) = Odd(n) = specificeren we sets of NATURAL NAT-SET = { nat(^0), nat(^1), nat(^2), nat(^3), nat(^4), nat(^5), nat(^6), nat(^7), nat(^8), nat(^9), nat(^1^0) } P = sum(n in NAT-SET, [even(n) = true ] -> a. Even(n) Even(n) = Odd(n) = waarmee we in dit voorbeeld de eerste 11 mogelijke stappen van P simuleren. In het algemeen is het specifiek toevoegen van een eindige (willekeurige) simulatie-set voor elke oneindige soort, het veranderen van de de betreffende soort in de scope van een sum-operator afdoende om simuleerbare specificaties te krijgen. Het is in dit practicum steeds de bedoeling dat simuleerbare proces modules worden ingeleverd. Een precieze beschrijving van het gebruik van de simulator is te vinden in de on-line manual; het betreffende commando heet sim. 3

Opgave. In deze opgave beschouwen we een eenvoudig systeem voor het sturen van een CV (centrale verwarming). We nemen aan dat een thermometer-proces E uit de module Thermometer regelmatig, zeg eens per seconde, de temperatuur t van de te verwarmen ruimte naar de thermostaat stuurt middels een actie send-et(t), en dat t {1, 2,, 30}. Het systeem bestaat uit de parallelle compositie van E en de volgende drie processen: 1. Een gebruiker G kan middels een send-actie een gewenste temperatuur van i graden Celsius instellen op de thermostaat (i {1, 2,, 30}), of de thermostaat met rust laten. 2. De ingestelde thermostaat T(n) ontvangt van E middels een read-actie de temperatuur in de te verwarmen ruimte. Verder kan de thermostaat middels een read-actie een door de gebruiker nieuw ingestelde temperatuur aflezen, en kan dit proces middels een send-actie de CV-ketel aan- en uitschakelen. 3. De CV-ketel C schakelt afwisselend aan en uit na read-acties op een boodschap van de thermostaat. De volgende proces-signatuur is gegeven: process module Kachel begin exports begin atoms send-gt, read-gt, comm-gt : NATURAL read-et, comm-et : NATURAL send-tc, read-tc, comm-tc : SIG send-nothing-gt, read-nothing-gt, comm-nothing-gt processes G T : NATURAL C SYSTEM end imports Signals, Naturals, Thermometer -- hoofdletters in de acties -- geven de source en destination -- van de boodschappen aan De geïmporteerde module Signals bevat de soort SIG met constanten aan en uit. De geïmporteerde module Naturals bevat de bekende specificatie van de natuurlijke getallen en de gebruikelijke functies hierop. De definitie van de processen G en C wordt gegeven: G = sum(t in W-temp-set, send-gt(t). G) send-nothing-gt. G C = read-tc(aan). read-tc(uit). C De set W-temp-set bevat de te meten en in te stellen temperatuur waarden: sets of NATURAL W-temp-set = {nat(^1), nat(^2), nat(^3), nat(^4), nat(^5), nat(^6), nat(^7), nat(^8), nat(^9), nat(^1^0), nat(^1^1), nat(^1^2), nat(^1^3), nat(^1^4), nat(^1^5), nat(^1^6), nat(^1^7), nat(^1^8), nat(^1^9), nat(^2^0), nat(^2^1), nat(^2^2), nat(^2^3), nat(^2^4), nat(^2^5), nat(^2^6), nat(^2^7), nat(^2^8), nat(^2^9), nat(^3^0)} a. Beschrijf in informele taal hoe de thermostaat moet functioneren. 4

b. Geef een definitie van het proces T voor de thermostaat in overeenstemming met je antwoord bij a. Dit proces heeft een parameter van de soort NATURAL: de door de gebruiker ingestelde temperatuur. c. Geef een definitie van het proces SYSTEEM, de parallelle compositie van de processen G, T(n), C en E, waarbij T(n) met een willekeurige W-temp-set waarde mag zijn geïnitialiseerd. Geef ook de definitie van de eventueel gebruikte sets en communicaties. 5