1 / 30

Loogika ja koosdisain

Loogika ja koosdisain. Enn Tõugu. Jutu sisu. Intuitsionistliku lausearvutuse valemid, nende realiseeritavus ja tuletusreeglid IL implikatiivne fragment Disjunktsioonide lisamine ja asendamine Struktuurne süntees IL abil Spetsifitseerimiskeeled ja loogika Javapõhine sünteesi raamvärk

chynna
Download Presentation

Loogika ja koosdisain

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Loogika ja koosdisain Enn Tõugu

  2. Jutu sisu • Intuitsionistliku lausearvutuse valemid, nende realiseeritavus ja tuletusreeglid • IL implikatiivne fragment • Disjunktsioonide lisamine ja asendamine • Struktuurne süntees IL abil • Spetsifitseerimiskeeled ja loogika • Javapõhine sünteesi raamvärk • Võrdlus teistega: lineaarloogika, kirjeldusloogika, Horni loogika, modaalloogikad.

  3. Intuitsionistlik lausearvutusA, B, C tähistavad siin suvalisi IL valemeid • Konjunktsiooni reglid: • Disjunktsiooni reeglid: • Implikatsiooni reeglid: eeldusest A saime B

  4. IL implikatiivne fragment • Konjunktsiooni reglid • Implikatsiooni reeglid:

  5. Näide Tuletage valem B valemitest (Y  A)  B (A  B)  X X  Y  A

  6. IL valemite realiseeritavus A, B, C tähistavad valemeid, sinisega on nende realisatsioonid • Konjunktsiooni reeglid: • Implikatsiooni reeglid: a: b: A  B (a,b): (a,b): (a,b): a: b: x: (x on muutuja) f: a: f(a): b: x.b: f(x)

  7. Struktuurse sünteesi (SSP) keel • Muutujad: A, B, … • Muutujad tähistavad moodulite rakendamise eel- ja järeltingimusi, peamiselt seda, et mingid andmed on saadavad/arvutatavad. Lihtsad implikatsioonid: A…  B  C  … D. • Implikatsioonid implikatsioonidest: (A…BC…D) …  (T…U V…W)  X  …  Y  Z  …  Q • Implikatsioonid kirjeldavad moodulite rakendatavust ja andmete arvutatavust.

  8. SSP valemite realisatsioonid Valemi A  … B  C  …D realisatsioon on funktsioon f, mis arvutabC &…&D realisatsiooni antudA  … B realisatsioonist, st(c,…,d)=f(a,…,b). Valemi (T  … UV …W)  X  … Y  Z  …  Q realisatsioon on funktsioon, mis arvutab (z,…,q) realisatsiooni implikatsiooni vasaku poole valemite realisatsioonidest, st funktsioonist h, kus h arvutab nii (v,…,w)=h(t,…,u),jaandmetest x,…,y. Implikatsiooni T  … UV …W nimetatakse alamülesandeks, sest tema realisatsioon tuleb sünteesida.

  9. Struktuurne süntees • Kirjeldame ülesande IL valemitega (st anname spetsifikatsiooni) • Püstitame eesmärgi “leida x-st y” kujul X  Y • Tõestame eesmärgi saavutatavuse (st tuletame X  Y etteantud valemitest) • Valemi X  Y realisatsioon lahendab ülesande (tegelikult see tuleb teisendada kas programmiks või skeemiks või kombineerida sellest HW/SW meetodiga midagi, mis õiged arvutused teeks.

  10. G G F F D E E V D U S1 S2 Alamülesanded 1) (DE)  F G 2)(DE)  (UV)  FG ehk S1  S2  F G kus S1 (D  E) ja S2 (UV) selle valemi realisatsioon on funktsioon h(s,f), kus s on omakorda funktsioon, ehk piltlikult:

  11. forall B A D E S Alamülesanded (forall) for (int i=0;i<a.length; i++){b[i]=S(a[i]);} (D  E)  A  B

  12. a while A B while b d D d’ b’ a’ S S Alamülesanded (while) while (d) {(b,d)=S(a);a=b;} (A  B  D)  A  D  B andmevood:

  13. D S2 E S1 U V Alamülesanded (if) if (b) then y = S1(x) else y = S2(x) (U  V)  (D  E)  B  X  Y B if Y X

  14. y x a b siin toimubbarvutaminea-st Alamülesanded (realisatsioon) (A  B)  X  Y Alamülesande realisatsioon: see saab olla ka paralleelne: y x b = f(a)

  15. D E H G D E G H SSP lubatud reegel (1) D, E, G, H tähistavad siin muutujate konjunktsioone

  16. G F F G H D E D E H SSP lubatud reegel (2)

  17. E D F D E G SSP lubatud reegel (3)

  18. Näite lahendus Antud: (Y  A)  B Leida: B (A  B)  X X  Y  A A  A (Y  A)  B (  -) A  B (A  B)  X (  -) X X  Y  A (  -) Y  A (Y  A)  B (  -) B

  19. R1, R2(S1), R8, R9 end begin R4, R5(S2) R6, R7 Sünteesitud algoritmi kuju • “Lineaarne” planerimine annab tegevuste jada: R1, R2, R3, R4... • Alamülesannetega planeerimine annab puu: ehk sama teises esituses: R1, R2 <S> R4, R5 <S> R6, R7 </S> </S> R8, R9

  20. Keele laiendamine • Ekvilalents A  …  B  C asendub lihtsalt kahe implikatsiooniga A  …  B  Cja C A  …  B • Disjunktsiooni implkatsioonis vasakul A  B  C saab (automaatselt) esitada valemi paljundamise teel, see asendub kahe valemiga A  C ja B  C • Disjunktsioon implikatsioonis paremal A BCasendub (automaatselt) alamülesannetega, selle asemele saame (B G)  (C G)  A G mistahes G jaoks. (G-deks tasub võtta ainult neid muutujaid, mida meil tegelikult tarvis läheb.) NB! Peale keele sellist laiendamist saame läbi ikka veel samade SSP tuletusreeglitega.

  21. Keele pealisehitis – tegelikud spetsifitseerimiskeeled On olemas IL-i tõlgitav tekstiline ja visuaalne spetsifitseerimiskeel. Mõlemad on objekt-orienteeritud, st spetsifikatsioon on klass, mille moodustavad omavahel seotud objektid. Tekstiline keel: • objekt<id> : <klass või algtüüp> <sidemed>; • aksioom <SSP valem>{<realisatsioon>}; sidemeteks on võrdused objektide vahel. SSP valemites on loogikamuutujateks objektide nimed.

  22. Näide Kahe operaatoriga arvutuste spetsifitseerimine:  aij aij  aij  aij f(u,v) Olgu realiseeritud integreerimisoperaator to val =  f(x) dx, mille aksioom on (ARG  RES)  TO  VAL 0 Lahendame ülesande x f2(v) y = f1(u,v) dudv 0 0

  23. Integral Integral { arg,val,res,to : integer; (argres) toval {realisatsiooni nimi}; }

  24. Kogu spetsifikatsioon I1:Integral to = x, val = y; I2:Integral val = I1.res; f1:I1.arg&I2.arg  I2.res {realization1}; f2:I1.arg  I2.to {realization2}; Tõestada tuleb x  y

  25. Tõestus (I2.arg  I2.res)  I2.to  I2.val I1.arg  I2.arg  I2.res ------------------------------------------------------------------------- ( -) I1.arg  I2.to  I2.val I1.arg  I2.to -------------------------------------------------------------------------- ( -) (I1.arg  I1.res)  x  y I1.arg  I2.val (I1.res=I2.val) ------------------------------------------------------------------------------------- ( -) x  y

  26. x y y I1 f2 I2 f1 Realisatsioon

  27. Skeemide keel Tekstilise keele peale on ehitatud laiendatav skeemide keel ja graafiline redaktor selle keele laiendamiseks: Skeemide keel Jälgija 1 Graafiline redaktor Skeem XML-s Parser Tekst XML-s Spetsifitseerimiskeel 4 Süntesaator 2 Algoritm (XML stiilis) Koodigeneraator Prototüüp on üleval http://sool.cc.ioc.ee/~ando/ed.zip Väike tutorial http://sool.cc.ioc.ee/~ando/tutorial1.html Autor: Ando Saabas 3 Java programm java ee.ioc.cs.vsle.editor.Editor

  28. Veel loogikaid spetsifikatsioonide semantika esitamiseks Lineaarloogika arvestab resursse Horni loogika esimest järku, kuid ikkagi hea tuletatavusega Kirjeldusloogika pidavat sobima omaduste üle arutlemiseks Modaalloogikad, temporaalloogikad

  29. Võimalusi? Kirjeldada konstruktiivse loogika vahenditega VHDL andmevoogude semantika täpselt. Laiendada VHDL andmevoogude kirjeldamise vahendeid alamülesannete kirjeldustega, mis võimaldavad realiseerida keerulisi juhtimisalgoritme. Kasutades olemasolevat skeemiredaktorit ja struktuurse sünteesi tarkvara, simuleerida tehtud laiendusi kasutavaid skeeme.

  30. Veel võimalusi Kasutades olemasolevat skeemiredaktorit ja struktuurse sünteesi tarkvara, luua kiipide loogika simulaator. Töös tuleb skeemiredaktori abil luua translaator, mis tõlgib skeemid nii VHDL keelde kui struktuurse sünteesi keelde. Samuti tuleb välja töötada ja programmeerida klassid, mis tagavad viidete simuleerimise VHDL andmevoomudelis ja annavad protsesside sünkroniseerimissignaalide ülekandeteed.

More Related