Definizione di una costruzione "ripeti fino" in semantica denotazionale
-
30-10-2019 - |
Domanda
Il mio problema è: Definire una costruzione "ripeti fino" in termini di semantica denotazionale. Ho fatto un tentativo e ora ho bisogno di sapere se l'ho fatto bene.
Le condizioni sono: Ho usato la lingua "mentre" come specificato in "semantica con applicazioni" di Nielson & Nielson (1992) (PDF) (Worldcat). Non voglio usare l'aiuto della costruzione while.
Nella semantica denotazionale, siamo interessati all'effetto di un programma, piuttosto che a "come" viene eseguito. Ecco perché le funzioni semantiche sono definite in modo compositivo. Le definizioni corrispondenti per la semantica denotazionale (o "semantica in stile diretto") sono disponibili a pagina 86 nel libro di Nielson & Nielson (lo hanno reso disponibile su Internet).
Il mio approccio è: $$ mathcal {s} _ { text {ds}} lbrack lbrack text {ripetizione} s text {fino a} b rbrack rbrack = text {fix} f text {dove} F g = mathcal {s} _ { text {ds}} lbrack lbrack s rbrack rbrack circ text {cond} ( mathcal {b} lbrack lbrack b rbrack rbrack, rbrack, rbrack, rbrack, rbrack, rbrack, rbrack, MathCal {S} _ { text {ds}} lbrack lbrack s rbrack rbrack cirr g, id) $$
Come potresti vedere, il mio approccio è abbastanza simile alla definizione di whili, ma non riesco a vedere un errore in esso.
post scriptum: Bounty Dato e Second Edit: Sì, intendevo $$ mathcal {s} _ { text {ds}} lbrack lbrack text {ripetizione} s text {fino a} b rbrack rbrack $$. . errori di battitura corretto.
Nessuna soluzione corretta