Si precisa che la scelta su un comando nondeterministico di IMPnd è univoca nello stesso istante sullo stesso insieme di comandi.
Dunque, se in un certo istante utilizzo il comando “c0 or c1“, posso utilizzare alternativamente il comando “c0 or c1“. Infatti, in entrambi i casi, qualsiasi sarà la scelta tra c0 e c1, essa sarà la stessa su entrambi i comandi, se utilizzati alternativamente nello stesso istante. In effetti, scegliere un elemento dell’insieme {c0,c1} è equivalente a sceglierlo nell’insieme {c1,c0} = {c0,c1}.
Un’altra precisazione: l’operatore “or” usa lo stesso principio non deterministico dell”operatore alternativo “Y” utilizzato per formare i comandi con guardia in IMPGC. A tal proposito e rispondendo alla domanda di alcuni, si precisa che in presenza di un comando “if b1 ! c1 Y b2 ! c2 “, se entrambi le guardie b1 e b2 sono valutate true, non deterministicamente solo uno dei comandi c1 o c2 viene eseguito. Si vedano le regole di derivazione corrispondenti!
Provare le seguenti equivalenze per i comandi di IMPnd
1. Breve Presentazione del corso
2. Semantica Operazionale del linguaggio imperativo IMP
4. Esercitazione sulla semantica operazionale di IMP e sulle tecniche di prova
5. Definizione Induttiva di Domini
6. Ordinamenti parziali completi, funzioni continue e minimi punti fissi
7. Semantica denotazionale di IMP
8. Semantica denotazionale del comando while di IMP
9. Equivalenza delle semantiche operazionale e denotazionale di Aexp e Bexp di IMP
10. Esercitazione sulle semantiche operazionale e denotazionale di IMP
11. Equivalenza delle semantiche operazionale e denotazionale dei comandi di IMP
12. Esercitazione in aula (sulla prima metà del corso)
13. Linguaggi con Tipi di Ordine Superiori
14. Valutazione Lazy
15. Nondeterminismo e Parallelismo (Concorrenza)
16. Esercitazione in aula sui tipi e sul non-determinismo
17. Communicating Sequential Processes (CSP)
18. Calculus of Communicating Systems (CCS)