Základy teórie programovania
Cvičenia: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
Domáce úlohy | Prémie | Body | Krúžky | Učebné texty
Cvičenie 1 (10. februára 2000)
- Majme program P1
begin [y1,y2]:=[1,1]
1: if y2łx then goto end
2: [y1,y2]:=[y1+1,{y1+1)2]
3: goto 1
end [z]:=[y1]
Čo
ráta program P1?
- Napíšte štandardnú schemu S, ktorej interpretáciou vznikne P1.
- Nájdite interpretáciu I1 tak, aby platilo
P1=(S, I1).
- Nájdite interpretáciu I2 tak, aby program
P2=(S, I2)
počítal funkciu élog2xů.
- Popíšte históriu výpočtu programu P1 pre
ohodnotenie vstupu v[x ¬ 7] pomocou konfigurácii.
- Napíšte Herbrandove univerzum pre schému S.
- Nájdite zladenú Herbrandovu interpretáciu pre výpočet z úlohy 5.
Späť
Cvičenie 2 (17. februára 2000)
- Dokážte, že dve kompaktibilné schémy S1,
S2 sú ekvivalentné práve vtedy, ak pre každú
herbrandovskú interpretáciu buďto programy (S1, IH), (S2, IH) oba divergujú,
alebo oba zastavia a
val(S1, IH, "x") = val(S2,
IH, "x").
- Majme schému S:
begin [y1,y2]:=[a,a]
1: if p(y1) then goto end
2: [y1]:=[f(y1)]
3: if p(y1) then goto end
4: [y1,y2]:=[f(y1),f(y1)]
5: if p(y1) then goto 7
6: goto end
7: if p(y2) then goto 4
8: goto 2
end [z]:=[a]
- Nájdite I, pre ktorú P = (S, I) diverguje.
- Ukážte, že pre každú I s konečnou doménou program (S, I) zastaví.
- Dokážte, že každá Janovova schéma sa dá preložiť do ekvivalentnej voľnej
janovovej schémy.
Späť
Cvičenie 3 (24. februára 2000)
- Dokážte, že problém divergencie štandardných schém nie je ani čiastočne
rozhodnuteľný.
- Dokážte, že problém zastavenia štandardných schém je čiastočne
rozhodnuteľný. Popíšte výpočet procedúry riešiacej problém zastavenia
štandardných schém pre vstupnú schému S:
begin [y]:=[a]
1: if p(y) then goto end
2: [y]:=[f(y)]
3: goto 1
end [z]:=[y]
- Dokážte, že problém ekvivalencie štandardných schém nie je ani čiastočne
rozhodnuteľný.
- Dokážte, že problém izomorfiznmu štandardných schém nie je ani čiastočne
rozhodnuteľný.
- Dokážte, že problém divergencie voľných schém je rozhodnuteľný.
- Dokážte, že problém zastavenia voľných schém je rozhodnuteľný.
- Dokážte, že problém dosiahnuteľnosti príkazu v štandarnej schéme je
čiastočne rozhodnuteľný.
Späť
Cvičenie 4 (2. marca 2000)
- Pokúste sa preložiť nasledujúce časti štandarných schém do štrukturovaných
schém:
- if b1 Ú b2
then S1
else S2
- if b1 Ů b2
then S1
else S2
- if Řb then
S1 else S2
- while b1 Ú b2 do
S
- while b1 Ů b2 do
S
- while Řb do S
- Určte vzťahy inklúzie, preložiteľnosti a efektívnej preložiteľnosti medzi
triedami dosiahnuteľných, voľných a štandardných schém.
- Ak existuje, tak zostrojte ekvivalentnú štandardnú schému k rekurzívnej
schéme S:
begin
F(y) Ü if p(y) then f(y) else h(F(g(y)))
end [z]:=[F(a)]
Späť
Cvičenie 5 (9. marca 2000)
- Uvažujme program P:
begin [y1,y2]:=[0,x1]
1: if y2<x2 then goto end
2: [y1,y2]:=[y1+1,y2-x2]
3: goto 1
end [z1,z2]:=[y1,y2]
Čo
počíta program P?
- Nájdite najslabšiu vstupnú a najsilnejšiu výstupnú podmienku pre program
P.
- Dokážte čiastočnú správnosť programu P vzhľadom na špecifikáciu z
predchádzajúcej úlohy Floydovou metódou.
- Určte deliace body programu P.
- Pre tieto body zostrojte invarianty.
- Zostrojte verifikačné podmienky pre všetky cesty medzi deliacimi bodmi.
- Verifikačné podmienky dokážte.
Späť
Cvičenie 6 (16. marca 2000)
- Uvažujme program P:
begin [y1,y2]:=[x1,x2]
1: if y1=y2 then goto end
2: if y1>y2 then goto 5
3: [y2]:=[y2-y1]
4: goto 1
5: [y1]:=[y1-y2]
6: goto 1
end [z]:=[y1]
Čo
počíta program P?
- Dokážte zastavenie programu P vzhľadom na vstupnú podmienku p(x):
x1>0 & x2>0 modifikoanou Floydovou metódou.
- Určte deliace body programu P.
- Pre tieto body zostrojte invarianty a miery.
- Zostrojte verifikačné podmienky pre všetky cesty medzi deliacimi bodmi.
- Verifikačné podmienky dokážte.
Späť
Cvičenie 7 (23. marca 2000)
- Uvažujme program P:
begin [y1,y2]:=[1,a[1]]
while y1Łn do
[y1]:=[y1+1];
if y2>a[y1] then
[y2]:=[a[y1]]
od
end [z]:=[y2]
Čo počíta
program P?
- Nájdite najslabšiu vstupnú a najsilnejšiu výstupnú podmienku pre program
P.
- Dokážte čiastočnú správnosť programu P vzhľadom na špecifikáciu z
predchádzajúcej úlohy Hoareovou metódou.
- Zostrojte invarianty.
- Dokážte verifikačné podmienky.
Späť
Cvičenie 8 (30. marca 2000)
- Metódou konštrukcie správnych programou navrhnite program, ktorý bude
vyhovovať nasledujúcej špecifikácii.
- vstupná podmienka p(n): nł0
- výstupná podmienka q(n,z): z=Fn.
Späť
Cvičenie 9 (6. apríla 2000)
- Popíšte zmysel použitia cpo ako sémantického modelu.
- Uveďte základné vlastností cpo.
- Pokúste sa rozšíriť diskrétne sémantické obory (napr. celé čísla) na cpo.
- Rozhodnite či sú množiny {(0,1),Ł}. {á0,1),Ł} a {á0,1ń,Ł}
cpo. Prečo?
- Navrhnite rozšírenie množiny funkcii na cpo.
- Zachovajú sa vlastnosti cpo, ak v predchádzajúcej úlohe zúžime množinu na
striktné funkcie?.
Späť
Cvičenie 10 (13. apríla 2000)
- Čo je to sémantika?
- Aký význam má skúmať sémantiky?
- Existuje ku každéhému jazyku iba jedna správna sémantika?
- Aká je to kompozičná sémantika?
- Aký je rozdiel medzi denotačnou a operačnou sémantikou?
- Navrhnite úplnú operačnú semantiku imperatívnych programov z cyklami.
Späť
Cvičenie 11 (20. apríla 2000)
Cvičenia odpadli. Voľno pred
Veľkonočnými sviatkami.
Späť
Cvičenie 12 (27. apríla 2000)
- Čo je to rekurzívny program?
- Popíšte syntax rekurzívnych programov.
- Čo je interpertáciou rekurzívnej definície?
- Vysvetli pojem funkcionál.
- Čo je to pevný bod funkcionálu?
- Navrhni postačujúce kritérium na existenciu pevného bodu.
- Najdi pevný bod funkcionálu
- t[F](x):
if x=0 then 0 else 1+F(x-1).
- Vypočítajte výsledok rekurzívneho programu
begin
F(x) Ü if x=0 then 0 else 1+F(x-1)
end [z]:=[F(x)]
pre ohodnotenie
vstupu d(x ¬ 3).
Späť
Krúžky
Stránky jednotlivých krúžkov
Späť
Učebné texty
Tu si môžete stiahnuť učebné texty v elektronickej forme.
Späť