Korisnička dokumentacija programa "SoftLab" 1 SoftLab Upute za korištenje 1. POKRETANJE PROGRAMA I UPRAVLJANJE RADNOM OKOLINOM...2 2. DEFINIRANJE STANDARDNIH POSTAVKI PROGRAMA...5 2.1. ODABIR STANDARDNE ULAZNE I IZLAZNE ABECEDE...5 2.2. ODABIR STANDARDNIH BOJA ZA IZGRADNJU KONAČNOG AUTOMATA...6 2.3. ODABIR STANDARDNIH BOJA ZA PRIKAZ SIMULACIJE RADA KONAČNOG AUTOMATA...6 2.4. ODABIR STANDARDNOG PRIKAZA DIJAGRAMA STANJA I TABLICE PRIJELAZA...7 3. DEFINIRANJE POSTAVKI AKTIVNOG KONAČNOG AUTOMATA...7 4. ODABIR VRSTE KONAČNOG AUTOMATA...7 4.1. ODABIR VRSTE KONAČNOG AUTOMATA IZ GLAVNOG IZBORNIKA...7 4.2. ODABIR VRSTE KONAČNOG AUTOMATA IZ PLUTAJUĆEG PROZORA NA RADNOJ POVRŠINI...8 5. DEFINIRANJE ULAZNE ABECEDE...8 6. DEFINIRANJE IZLAZNE ABECEDE...10 7. DEFINIRANJE SKUPA STANJA...11 7.1. PROZOR ZA DEFINIRANJE SKUPA STANJA...11 7.2. DEFINIRANJE STANJA POMOĆU PLUTAJUĆEG PROZORA NA RADNOJ POVRŠINI...12 8. DEFINIRANJE FUNKCIJE PRIJELAZA...13 8.1. PROZOR ZA DEFINIRANJE FUNKCIJE PRIJELAZA...13 8.2. DEFINIRANJE PRIJELAZA POMOĆU PLUTAJUĆEG PROZORA NA RADNOJ POVRŠINI...15 9. IZMJENA POSTOJEĆEG KONAČNOG AUTOMATA POMOĆU PLUTAJUĆEG PROZORA NA RADNOJ POVRŠINI...16 10. SIMULACIJA RADA KONAČNOG AUTOMATA...17 10.1. UNOS ULAZNOG NIZA AUTOMATA...18 10.2. POKRETANJE I INTERAKTIVNO UPRAVLJANJE SIMULACIJOM RADA KONAČNOG AUTOMATA...18 10.3. ISPIS STATUSA KONAČNOG AUTOMATA ZA VRIJEME SIMULACIJE...20 11. KORIŠTENJE BILJEŠKI...20
Pokretanje programa i upravljanje radnom okolinom 2 1. Pokretanje programa i upravljanje radnom okolinom Program se pokreće dvostrukim pritiskom na ikonu SoftLab". Ako inačica programa podržava rad s poslužiteljem, prilikom pokretanja programa provjeravaju se komunikacijske postavke. Ako na osnovu postavljenih postavki nije moguće ostvariti komunikaciju s poslužiteljem, otvara se komunikacijski izbornik (slika 1a). U komunikacijskom izborniku moguće je postaviti adresu poslužitelja ( Server URL ), te omogućiti korištenje podrške posredničkog sloja ( Middleware support ). Ako je omogućena podrška posredničkog sloja potrebno je upisati Slika 1a. Komunikacijske postavke programa "SoftLab" pristupnu točku posredničkog sloja ( Middleware AP ). Ako se koristi posrednički sloj potrebno je uključiti i lokalni posrednik ( Proxy host ). Postavke lokalnog posrednika trebaju odgovarati postavkama MWTentacle zastupnika koji se izvršava paralelno s programom SoftLab i ostvaruje vezu prema posredničkom sloju. Postavke Middleware timeout i SoftLab timeout prikazuju maksimalni vremenski period koji program čeka na odgovore od posredničkog sloja, odnosno poslužitelja SoftLab aplikacije. Rad s izbornikom komunikacijskih postavki završava pritiskom na tipku Proceed. Nakon što se program učita, pojavljuje se radna okolina prikazana na slici 1b. Gledano od vrha radne okoline prema dnu, ispod retka sa imenom programa, nalaze se tekstualni izbornici programa (vidi odjeljak 2.). Ispod njih nalaze se alatne trake sa gumbima pomoću kojih se izvršavaju određene operacije iz izbornika programa, interaktivno upravlja simulacijom rada konačnog automata i Slika 1b. Radna okolina programa "SoftLab" unosi ulazni niz (vidi odjeljke 2. i 11.). Potom dolazi središnji dio radne okoline, radni prozori, u kojima se prikazuju tablica prijelaza automata (lijevi dio radnog prozora) i dijagram stanja automata (desni dio radnog prozora). Odnos radnih površina lijevog i desnog dijela radnog prozora nije stalan, već se može mijenjati pomicanjem pomičnog stupca koji dijeli radni prozor na dva dijela. U središnjem dijelu radne okoline nalaze se i dva plutajuća prozora koja korisnik može pomicati po cijelom zaslonu, a ne samo po radnoj okolini programa. Na samom dnu radne okoline nalazi se tekstualni redak u kojem
Pokretanje programa i upravljanje radnom okolinom 3 se ispisuju poruke o stanju programa, objašnjenja pojedinih operacija, i informacija o trenutnom koraku simulacije rada konačnog automata. 1.2. Izbornici programa Glavni izbornik programa prikazan je na slici 5.2. Korisniku je omogućen izbor Slika 2. Glavni izbornik opcija "*", "Automaton" i "General". Opcija "*" prikazuje izbornik na slici 3. Opcija "About" Slika 5. Podizbornik "Load partial" ispisuje informaciju o programu i autoru Slika 3. Izbornik "*" programa, a "Exit" prekida rad sa programom. Odabiromopcije "Automaton" u glavnom izborniku, prikazuje se izbornik sa slike 4 a). Prvih pet opcija izvršavaju operacije otvaranja novog radnog prozora, Slika 6. Podizbornik "Save partial" učitavanja konačnog automata iz datoteke, spremanja konačnog automata iz aktivnog radnog prozora u datoteku, pokretanja rada s poslužiteljem, te spremanja trenutno aktivnog automata na poslužitelj. Ovisno o inačici programa moguć je rad s lokalnim datotekama i/ili rad s Slika 7. Podizbornik "Type" poslužiteljem. Ako je omogućen rad s poslužiteljem tada se izborom opcije Open from server otvara izbornik sa slike 4.b). Podopcija User examples omogućava otvaranje automata koje je korisnik sam u prethodnom radu napravio. Learning examples otvara automate primjere koje je zadao učitelj. Term examples otvara primjere zadane od učitelja koji služe za provjeru znanja studenta. Odabirom opcije "Input alphabet" izbornika Automaton prikazuje se prozor u kojem se definira ulazna abeceda (vidi odjeljak 6.), a "Output alphabet" prikazuje prozor za definiranje izlazne abecede (vidi odjeljak 7.). Skup stanja automata definira se u prozoru koji se prikazuje nakon odabira opcije "States set" (vidi odjeljak 8.1.), a odabirom "Transitions set" pojavljuje se prozor za definiranje funkcije prijelaza automata (vidi odjeljak 9.1.). Opcija "Settings" Slika 4. a) Izbornik "Automaton" b) Izbornik Open from Server omogućuje promjenu osnovnih parametara radne površine vezanih uz prikaz dijagrama stanja i tablice prijelaza u aktivnom radnom prozoru. Izbornik "Automaton" ima tri podizbornika. Prvi je "Load partial" (slika 5.), drugi "Save partial" (6.), a treći "Type" (slika 7.).
Pokretanje programa i upravljanje radnom okolinom 4 Podizbornici "Load partial" i "Save partial" omogućavaju učitavanje odnosno spremanje djelomičnih podataka konačnog automata. Moguće je učitati odnosno spremiti samo ulaznu ("Load input alphabet" i "Save input alphabet") ili samo izlaznu abecedu ("Load output alphabet" i "Save output alphabet"), a moguće je i učitavanje odnosno snimanje strukture stanja i prijelaza konačnog automata ("Load states and transitions" i "Save states and transitions"). Ove mogućnosti potrebno je koristiti s oprezom, jer npr. učitavanje ulazne abecede od 3 ulazna simbola u automat koji je do tog trenutka imao ulaznu abecedu sa više od 3 ulazna simbola, dovesti će do netočnog prikaza konačnog automata. Pravilna upotrebna ovih mogućnosti olakšava oblikovanje i izgradnju konačnog automata odnosno njegovih dijelova. Podizbornik "Type" omogućuje izbor vrste konačnog automata. Pokraj trenutno odabrane vrste konačnog automata nalazi se kvačica. Na početku rada sa novim konačnim automatom (novim radnim prozorom) automatski je odabran DKA (opcija DFA, prema engl. deterministic finite automaton). U ovoj inačici programa (1.0) moguće je promijeniti vrstu automata samo ako je nova vrsta konačnog automata nadskup trenutne vrste konačnog automata. Dakle, omogućene su promjene DKA u sve ostale vrste konačnog automata sa slike 7. i promjena NKA (opcija NFA, prema engl. nondeterministic finite automaton) u ε-nka (opcija ENFA, prema engl. epsilonnondeterministic finite automaton). Odabir opcije "General" u glavnom izborniku programa, prikazuje izbornik sa slike 8. "Defaults for new automata" prikazuje prozor u kojemu se definiraju osnovni parametri radne površine vezani uz prikaz Slika 8. Izbornik "General" dijagrama stanja i tablice prijelaza. Ova opcija slična je opciji "Automata settings" izbornika "Automaton", no ona utječe isključivo na novostvorene konačne automate (radne prozore), dok "Automata settings" djeluje na trenutno aktivni konačan automat (radni prozor). Slika 9. Podizbornik "Toolbars" Detaljan prikaz ove opcije nalazi se u odjeljku 3. Tri podizbornika opcije "General" glavnog izbornika, su "Toolbars" (slika 9.), "Window" (slika 10.) i "View" (slika 11.). Podizbornikom "Toolbars" odlučuje se koji će dijelovi radne okoline biti prikazani, a koji ne. Ispred prikazanih dijelova nalazi se kvačica. Radni dijelovi Slika 10. Podizbornik "Window" okoline, na čiji prikaz se može utjecati, su opća alatna traka sa gumbima za izvođenje operacija iz različitih izbornika programa (slika 12.), tekstualni redak za ispis poruka o stanju programa, plutajući prozor za izgradnju i promjenu konačnog automata i plutajući prozor za odabir vrste konačnog automata. Slika 11. Podizbornik "View" Podizbornik "Window" standardni je izbornik Windows operacijskog sustava pomoću kojeg se može otvoriti radni prozor (opcija "New Window") ili organizirati raspored radnih prozora (ostale opcije). Opcije iz podizbornika "View" omogućavaju brzu promjenu odnosa između lijeve i desne radne površine Slika 12. Opća alatna traka radnog prozora. "Table" prikazuje samo tablicu prijelaza u radnom prozoru, dok "Graph" prikazuje samo dijagram
Definiranje standardnih postavki programa 5 stanja. "Table and graph" dijeli ukupan prostor radnog prozora na dva jednaka dijela, lijevi za tablicu prijelaza, a desni za dijagram stanja. Posljednji izbornik je opća alatna traka (slika 12), na kojoj su putem ikona prikazane određene opcije iz ostalih izbornika programa. Ikone sa slike 12. slijeva nadesno određuju slijedeće opcije: "New automaton", "Open automaton" i "Save automaton" iz izbornika "Automaton", te "Table", "Table and graph" i "Graph" iz podizbornika "View" izbornika "General". 2. Definiranje standardnih postavki programa Odabirom opcije "Defaults for new automata" u izborniku "General" prikazuje se prozor u kojemu se definiraju standardne postavke programa. Podaci unešeni u ovom prozoru vrijede za sve novostvorene konačne automate (radne prozore). Dakle, sve promjene postaju vidljive prilikom odabira opcije "New automaton" u izborniku "Automaton" ili opcije "New window" podizbornika "Window" u izborniku "General". Prozor za definiranje standardnih postavki programa ima četiri podprozora koji se odabiru pritiskom na njihovo ime, koje se nalazi na vrhu svakog od njih. Opis podprozora dan je u 4 slijedeća odjeljka. 2.1. Odabir standardne ulazne i izlazne abecede U podprozoru "Alphabets" odabiru se standardne ulazne i izlazne abecede koje se automatski pridružuju svakom novom konačnom automatu. Podprozor "Alphabets" prikazan je na slici 13. Abecede se odabiru navođenjem imena datoteke u kojima su spremljene. Imena datoteka mogu se unijeti pomoću zaslonskih maski ili se datoteke mogu odabrati pomoću standardnog prozora Windows operacijskog sustava za odabir datoteka koji se prikazuje kada se pritisne gumb pokraj zaslonske maske za unos imena datoteke. Ako se unesu neispravna imena datoteka, program će ih zanemariti i upozoriti korisnika o njihovoj Slika 13. Podprozor "Alphabets" neispravnosti.
Definiranje standardnih postavki programa 6 2.2. Odabir standardnih boja za izgradnju konačnog automata Pomoću podprozora "Graph colors" (slika 14.) korisnik bira standardne boje koje se koriste u izgradnji konačnog automata. Gledano od vrha prema dnu podprozora, korisnik može odabrati boju pozadine radnih površina radnih prozora, boju grafičkog prikaza stanja i tekstualnog retka pridruženog stanju, i boju grafičkog prikaza prijelaza i tekstualnog retka pridruženog prijelazu. Sve boje biraju se pomoću izbornika boja koji nudi Slika 14. Podprozor "Graph colors" šesnaest unaprijed definiranih boja (standardne boje Windows operacijskog sustava). Međutim, korisnik može odabrati i bilo koju boju iz palete od 16,777,216 boja, ako pritisne opciju "Custom" koja je u izborniku boja navedena na zadnjem mjestu. Tada se pojavljuje standardni izbornik boja Windows opeacijskog sustava. 2.3. Odabir standardnih boja za prikaz simulacije rada konačnog automata Slika 15. Podprozor "Simulation colors" Podprozor "Simulation colors" (slika 15.) omogućava izbor standardnih boja za označavanje stanja i prijelaza pri simulaciji rada konačnog automata. Gledano od vrha prema dnu podprozora, korisnik može odabrati boju stanja koje je bilo aktivno u posljednjem koraku simulacije rada automata, boju stanja koje je bilo aktivno u predzadnjem koraku simulacije rada automata, i boje početne i krajnje točke prijelaza koji je upotrijebljen u posljednjem koraku simulacije rada automata.
Definiranje ulazne abecede 7 Sve boje biraju se pomoću izbornika boja, gdje korisnik može odabrati jednu od šesnaest ponuđenih boja ili odrediti bilo koju boju iz palete. 2.4. Odabir standardnog prikaza dijagrama stanja i tablice prijelaza U podprozoru "Drawing" (slika 16.) određuju se elementi prikaza dijagrama stanja i tablice prijelaza. Gledano od vrha prema dnu podprozora, bira se vrsta slova kojom se ispisuje tekst tablice prijelaza, vrsta slova kojom se ispisuju tekstualni retci u dijagramu stanja, vrsta slova kojom se prikazuje grčko slovo ε (epsilon), veličina polumjera i debljina linije kružnice kojom se grafički prikazuje stanje. Vrsta slova bira se pomoću standardnog Windows prozora za odabir vrste slova. Korisnik može vidjeti kako Slika 16. Podprozor "Drawing" izgleda odabrana vrsta slova u desnom dijelu podprozora. Veličina polumjera i debljina linije kružnice može se unijeti pomoću zaslonske maske za unos, ili odrediti pomoću dva mala gumba pokraj zaslonske maske za unos. Gornji gumb povećava vrijednost ispisanu u zaslonskoj masci, a donji smanjuje. Dozvoljene su vrijednosti u intervalu 15 30 za polumjer kružnice i 1 5 za debljinu linije kružnice. 3. Definiranje postavki aktivnog konačnog automata Prozor za definiranje postavki aktivnog konačnog automata prikazuje se nakon odabira opcije "Settings" u izborniku "Automaton". Prozor je vrlo slično organiziran kao i prozor za definiranje standardnih postavki programa koji je opisan u odjeljku 3. Jedina razlika je da prozor za definiranje postavki aktivnog konačnog automata nema podprozor za odabir ulazne i izlazne abecede. Svi ostali podprozori nalaze se u ovom prozoru i njima se upravlja na potpuno isti način kao što je opisano u odjeljcima 2. 4. 4. Odabir vrste konačnog automata Korisnik može promijeniti vrstu aktivnog konačnog automata putem glavnog izbornika (odjeljak 5.1) ili putem plutajućeg prozora na radnoj površini (odjeljak 5.2). 4.1. Odabir vrste konačnog automata iz glavnog izbornika U glavnom izborniku vrsta konačnog automata bira se pomoću već opisanog podizbornika "Type" u izborniku "Automaton" (slika 7.). Odabrana vrsta konačnog automata označena je kvačicom, a mogući odabir druge vrste automata crnom bojom. Sivom bojom označene su nemoguće promjene, kao što je npr. NKA u DKA, u skladu s ograničenjem ove inačice
Definiranje ulazne abecede 8 programa(1.0) da se mogu izvršavati samo one promjene konačnog automata kod kojih je nova vrsta konačnog automata nadskup trenutne vrste konačnog automata. 4.2. Odabir vrste konačnog automata iz plutajućeg prozora na radnoj površini Slika 17. Plutajući prozor za odabir vrste konačnog automata Vrsta konačnog automata može se odabrati i putem plutajućeg prozora na radnoj površini (slika 17.). Odabrana vrsta automata označena je pritisnutim gumbom (na slici 17. to je DKA), moguće promjene automata označene su izdignutim gumbima crne boje koji se mogu pritisnuti, a nemoguće promjene označene su sivim izdignutim gumbima. 5. Definiranje ulazne abecede Prozor za definiranje ulazne abecede prikazan je na slici 18. Podaci prikazani u njemu odnose se na automat sa slike 3.11. Slika 18. Prozor za definiranje ulazne abecede Prozor je podijeljen na tri dijela ograđena pravokutnicima koji su "utisnuti" u prozor. Prvi dio, "Available input symbols", upravlja simbolima abecede svih mogućih simbola. Drugi dio, "Transliterated input symbol", upravlja jednim transliteriranim simbolom ulazne abecede, a treći dio"table of transliterated input alphabet", prikazuje ulaznu abecedu konačnog automata.
Definiranje ulazne abecede 9 Pomoću gumba "Clear", "Numbers", "Lowercase" i "Uppercase" utječe se na odabir simbola u listama u kojima se nalaze simboli abecede svih mogućih simbola odnosno simboli koji pripadaju jednom transliteriranom simbolu. "Clear" briše oznake odabira sa simbola, dok "Numbers", "Lowercase" i "Uppercase" redom označuju brojke, mala slova odnosno velika slova u pripadnoj listi. U obje liste simboli se mogu odabirati i pritiskom lijeve tipke miša kada se pokazivač miša nalazi iznad simbola u listi. Ako se u tom trenutku drži pritisnuta tipka "Shift" na tipkovnici, onda će se odabrati svi simboli između simbola koji je sada označen i simbola koji je bio odabran prije sadašnjeg simbola. Gumbom ">" označeni simboli u listi simbola abecede svih mogućih simbola prenose se u listu jednog transliteriranog simbola. Drugim riječima, ti simboli označavati će se istim transliteriranim simbolom. Gumbom "<" označeni simboli u listi jednog transliteriranog simbola prenose se u listu simbola abecede svih mogućih simbola. Oznaka transliteriranog simbola unosi se preko zaslonske maske ispod teksta "Representation of transliterated simbol". Ta oznaka koristi se u ostatku programa za odabir ulaznih simbola. Dva transliterirana simbola ne mogu imati istu oznaku. Gumbom "Same as symbols" određuje se da li će se u oznaci transliteriranog simbola nalaziti simboli koji pripadaju transliteriranom simbolu. Ako se u pravokutniku pokraj teksta "Same as symbols" nalazi kvačica, onda će se u oznaku transliteriranog simbola uključiti simboli koji pripadaju transliteriranom simbolu i međusobno će biti odvojeni zarezom. Ulazna abeceda prikazana je listom koja je sortirana po rednim brojevima transliteriranih simbola. Uneseni podaci za svaki simbol ulazne abecede prikazani su u stupcima "Transliterated symbols" (simboli koji pripadaju transliteriranom simbolu rednog broja koji se nalazu u stupcu "Index") i "Representation" (oznaka transliteriranog simbola rednog broja koji se nalazi u stupcu "Index"). Pokraj liste u kojoj je prikaza ulazna abeceda, nalaze se tri gumba, "Add", "Modify" i "Delete". U jednom trenutku može se pritisnuti ili samo gumb "Add" ili gumbi "Modify" i "Delete" kao što je prikazano na slici 19. Gumb "Add" može se pritisnuti kada nije odabran niti jedan redak liste ulazne Slika 19. Odabir jednog transliteriranog simbola iz ulazne abecede abecede, dok se gumbi "Modify" i "Delete" mogu pritisnuti kada je odabran jedan redak liste ulazne abecede. Odabirom jednog retka ulazne abecede ispunjavaju se liste prva dva dijela prozora sa podacima o prije određenim transliteriranim simbolima. Gumbom "Add" dodaje se transliterirani simbol u ulaznu abecedu. Pomoću gumba "Modify" upisuju se promjene odabranog transliteriranog simbola u ulaznu abecedu, a gumbom "Delete" briše se transliterirani simbol iz ulazne abecede.
Definiranje izlazne abecede 10 6. Definiranje izlazne abecede Prozor za definiranje izlazne abecede prikazan je na slici 20. Podaci prikazani u njemu odnose se na automat sa slike 2.8. Slika 20. Prozor za definiranje izlazne abecede Prozor je organiziran i njime se upravlja na sličan način kao i sa prozorom za definiranje ulazne abecede (odjeljak 6.). Prozor je podijeljen na dva dijela ograđena pravokutnikom "utisnutim" u prozor. Na vrhu prozora nalazi se dio "Available output symbols" u kojem se odabire jedan izlazni simbol iz abecede svih mogućih simbola. Oznaka izlaznog simbola upisuje se u zaslonsku masku ispod teksta "Representation of output symbol". Dva izlazna simbola ne mogu imati istu oznaku. Gumb "Same as symbol" ima isto značenje kao i gumb "Same as symbols" u prozoru za definiranje ulazne abecede. Na dnu prozora nalazi se dio "Table of output alphabet" u kojem je prikazana izlazna abeceda konačnog automata. Lista u kojoj je prikazana izlazna abeceda sortirana je prema rednim brojevima izlaznih simbola. U stupcima "Output symbols" i "Representation" prikazani su podaci o izlaznom simbolu čiji se redni broj nalazi u stupcu "Index". Drugi stupac liste prikazuje izlazni simbol, a treći njegovu oznaku koja se koristi u ostatku programa kako bi se jednoznačno odredio izlazni simbol. Značenje gumba "Add", "Modify" i "Delete" opisano je u odjeljku 6.
Definiranje skupa stanja 11 7. Definiranje skupa stanja Skup stanja automata može se definirati na dva načina. Prvi način je ručni unos svih podataka potrebnih za matematičku definiciju i grafički prikaz stanja pomoću prozora za definiranje skupa stanja (odjeljak 8.1.). Drugi način sastoji se od odabira matematičkih parametara koji karakteriziraju stanje pomoću plutajućeg prozora na radnoj površini i interaktivnog određivanja parametara potrebnih za grafički prikaz stanja na samoj radnoj površini (odjeljak 8.2.). 7.1. Prozor za definiranje skupa stanja Prozor u kojem se definira skup stanja prikazan je na slici 21. Podaci prikazani u njemu odnose se na automat sa slike 2.8. Slika 21. Prozor za definiranje skupa stanja konačnog automata Na vrhu prozora nalaze se matematički parametri stanja. Korisnik putem gumba s kvačicom odlučuje o prihvatljivosti stanja ("Acceptance") i da li je stanje početno ili ne ("Initial state"). Izlazni simbol bira se preko izbornika "Output symbol" u desnom gornjem uglu prozora (za Mooreov automat). Dodatnu informaciju o stanju, komentar vezan uz stanje i sl. korisnik može unijeti putem zaslonske maske "State comment". Uneseni tekst predstavlja tekstualni redak pridružen stanju. Informacija o izlaznom simbolu stanja može se uključiti u tekstualni redak pridružen stanju, ako se pritisne gumb "Incude output symbol representation" tako da se u njegovom pravokutniku vidi kvačica. Ako korisnik označi stanje koje će upravo dodati u skup stanja kao početno, iako već u skupu stanja postoji početno stanje, onda se automatski oznaka početnog stanja pridjeljuje novom stanju, a briše sa prethodnog stanja, jer konačan automat može imati samo jedno početno stanje.
Definiranje skupa stanja 12 U ograđenim dijelovima, "State position and color" i "State position, rotation and color", unose se redom podaci o X i Y koordinati položaja grafičkog prikaza stanja na radnoj površini, boji grafičkog prikaza stanja putem izbornika boja, X i Y koordinati, te kutu rotacije položaja grafičkog prikaza tekstualnog retka pridruženog stanju, i boji tekstualnog retka stanja. U donjem dijelu ekrana prikazan je skup svih stanja automata kao lista sortirana prema rednom broju stanja. Plava strelica pokraj rednog broja stanja označava da je to stanje početno stanje automata. Zelena kvačica označuje da je stanje prihvatljivo, dok crveni "X" označuje da stanje nije prihvatljivo. U ostalim stupcima prikazani su svi ostali podaci o stanju koji se mogu unijeti u ovom prozoru. Gumbom "Add" dodaje se stanje opisano podacima u gornjem dijelu prozora, u skup stanja automata. Gumb "Modify" omogućuje promjenu podataka stanja koje je označeno u listi skupa stanja, a gumb "Delete" briše označeno stanje iz liste skupa stanja. 7.2. Definiranje stanja pomoću plutajućeg prozora na radnoj površini Stanja se mogu definirati i pomoću plutajućeg prozora za izgradnju i promjenu konačnog automata ("State and transition maintenance"). Odabirom podprozora "State" plutajući prozor poprima izgled sa slike 22. Svi izbornici, gumbi i zaslonska maska za unos tekstualnog retka pridruženog stanju, imaju potpuno isto značenje kao u prozoru za definiranje skupa stanja automata (odjeljak 8.1.). Jedina razlika je u upravljanju Slika 22. Podprozor za unos podataka stanja gumbima "Add", "Modify" i "Delete" budući plutajući prozor ne prikazuje listu skupa stanja automata. plutajućeg prozora za izgradnju i promjenu konačnog autmata Nakon što se odaberu odnosno unesu svi podaci potrebni za matematičku definiciju stanja, može se pritisnuti gumb "Add". U tom trenutku plutajući prozor sa slike 22. prestat će prihvaćati korisnikove upute preko miša i tipkovnice. Nakon pritiska gumba "Add" započinje a) b) c) interaktivno grafičko određivanje položaja stanja na radnoj površini. Prvo se određuje položaj grafičkog prikaza stanja na radnoj površini. Kako korisnik pomiče pokazivač miša, tako se pomiče grafički prikaz stanja (slika 23.). Kada je korisnik zadovoljan Slika 23. Interaktivno grafičko određivanje položaja mjestom stanja na radnoj površini, pritiskom lijeve stanja na radnoj površini: a) određivanje položaja stanja, tipke miša potvrđuje odabrani položaj stanja. Potom b) određivanje položaja tekstualnog retka pridruženog stanju, c) određivanje kuta rotacije tekstualnog retka se određuje položaj tekstualnog retka pridruženog stanju. Ponovno se pomicanjem pokazivača miša, pomiče i sâm tekstualni redak. Nakon što se odredi položaj pritiskom lijeve tipke miša, prelazi se na određivanje kuta rotacije tekstualnog retka. Kako korisnik pomiče pokazivač miša, program računa kut u odnosu na točku mjesta gornjeg lijevog kuta tekstualnog retka. Pritiskom na lijevu tipku miša
Definiranje funkcije prijelaza 13 završava se grafičko određivanje položaja stanja na radnoj površini. U tom trenutku stanje je dodano u skup stanja automata i od tada plutajući prozor sa slike 22. ponovno prihvaća korisnikov unos sa tipkovnice i miša. U bilo kojem trenutku grafičkog određivanja položaja stanja korisnik može prekinuti započetu operaciju dodavanja stanja u skup stanja automata, tako da pritisne desnu tipku miša. Ako korisnik ostavi tekstualni redak pridružen stanju prazan, onda se nakon pritiska gumba "Add" određuje samo položaj stanja na radnoj površini, a tekstualni redak dobiva položaj ispod stanja sa kutom rotacije od 0 stupnjeva. Gumbom "Modify" mijenjaju se matematički parametri stanja, a gumbom "Delete" briše se odabrano stanje iz skupa stanja automata. Stanje se odabire sa radne površine, pritiskom na desnu tipku miša dok se pokazivač miša nalazi iznad grafičkog prikaza stanja (detaljnije o tome u odjeljku 10). 8. Definiranje funkcije prijelaza Funkcija prijelaza automata može se definirati na dva načina. Prvi način je ručni unos svih podataka potrebnih za matematičku definiciju i grafički prikaz prijelaza pomoću prozora za definiranje funkcije prijelaza (odjeljak 9.1.). Drugi način sastoji se od odabira matematičkih parametara koji karakteriziraju prijelaz pomoću plutajućeg prozora na radnoj površini i interaktivnog određivanja parametara potrebnih za grafički prikaz prijelaza na samoj radnoj površini (odjeljak 9.2.). 8.1. Prozor za definiranje funkcije prijelaza Prozor u kojem se definira funkcija prijelaza konačnog automata prikazan je na slici 24. Podaci prikazani u njemu odnose se na automat sa slike 2.9. Na vrhu prozora nalaze se tri liste. Gledano slijeva nadesno, odabirom jednog retka prve liste određuje se početno stanje prijelaza (iz kojeg stanja vodi prijelaz), odabirom jednog retka druge liste određuje se ulazni simbol za koji se izvršava prijelaz, a odabirom jednog retka treće liste određuje se završno stanje prijelaza (stanje u koje vodi prijelaz). U listama su prikazani osnovni podaci o stanjima odnosno o ulaznim simbolima, na način kako se ti podaci prikazuju u prozoru za definiranje skupa stanja (vidi odjeljak 8.1.), odnosno u prozoru za definiranje ulazne abecede (vidi odjeljak 6.). Ispod lista nalazi se zaslonska maska za unos tekstualnog retka pridruženog prijelazu. Taj se redak obično nalazi uz sâm prijelaz pa se u njega obično upisuju ulazni simboli za koje se prijelaz izvršava, i izlazni simbol prijelaza ako je konačni automat Mealyev automat. Pomoću gumba "Include input symbol representation" automatski se uključuje oznaka transliteriranog ulaznog simbola za koji se izvršava prijelaz, u tekstualni redak pridružen prijelazu. Slično vrijedi i za gumb "Include output symbol representation" kojim se uključuje oznaka izlaznog simbola prijelaza u tekstualni redak pridružen prijelazu. Da bi se oznake simbola automatski
Definiranje funkcije prijelaza 14 Slika 24. Prozor za definiranje funkcije prijelaza konačnog automata uključivale u tekstualni redak, u pravokutnicima gore navedenih gumba mora biti prikazana kvačica. Izlazni simbol bira se pomoću izbornika "Output symbol" u kojem se nalaze oznake izlaznih simbola. U dva ograđena dijela prozora unose se podaci potrebni za grafičko predočavanje prijelaza i tekstualnog retka pridruženog prijelazu. U dijelu "Transition start, end position and color" redom se određuju X i Y koordinata početne točke prijelaza, X i Y dimenzije tangentnog vektora smjera u početnoj točci, X i Y koordinata završne točke prijelaza, X i Y dimenzije tangentnog vektora smjera u završnoj točci prijelaza i boja prijelaza. Više o ovim parametrima za grafički prikaz prijelaza može se naći u odjeljku 5.5.2. gdje su objašnjene Hermiteove krivulje. U dijelu "Comment position and color" redom se određuju X i Y koordinata položaja tekstualnog retka pridruženog prijelazu, kut rotacije i boja tekstualnog retka. U donjem dijelu prozora nalazi se lista sa popisom svih prijelaza automata. Lista je sortirana po rednom broju početnog stanja prijelaza, a u slučaju dva ista redna broja početnog stanja, gleda se redni broj završnog stanja prijelaza. U slučaju dva ista redna broja završnog stanja prijelaza, prije je naveden prijelaz koji je prije dodan u listu prijelaza. Gumbom "Add" dodaje se prijelaz u listu prijelaza, gumbom "Modify" unose se promjene parametara odabranog prijelaza liste, a gumbom "Delete" briše se prijelaz konačnog automata.
Definiranje funkcije prijelaza 15 8.2. Definiranje prijelaza pomoću plutajućeg prozora na radnoj površini Prijelazi se mogu definirati i pomoću plutajućeg prozora za izgradnju i promjenu konačnog automata ("State and transition maintenance"). Odabirom podprozora "Transition" plutajući prozor poprima izgled sa slike 25. Svi izbornici, gumbi i zaslonska maska za unos tekstualnog retka pridruženog prijelazu, imaju potpuno isto značenje kao u prozoru za definiranje funkcije prijelaza automata (odjeljak 9.1.). Jedna razlika Slika 25. Podprozor za unos podataka prijelaza je u tome što se početno i završno stanje prijelaza, i plutajućeg prozora za izgradnju i promjenu ulazni simbol prijelaza ne biraju pomoću liste, već konačnog autmata pomoću izbornika. Druga razlika je u upravljanju gumbima "Add", "Modify" i "Delete" budući plutajući prozor ne prikazuje listu prijelaza automata. Nakon što se odaberu odnosno unesu svi podaci potrebni za matematičku definiciju prijelaza, može se pritisnuti gumb "Add". U tom trenutku plutajući prozor sa slike 25. prestat će prihvaćati korisnikove upute preko miša i tipkovnice. Nakon pritiska gumba "Add" započinje interaktivno grafičko određivanje položaja i oblika krivulje prijelaza na radnoj površini. Prvo se određuje položaj početne točke prijelaza (slika 26.a). a) b) c) d) e) f) g) Slika 26. Interaktivno grafičko određivanje položaja i oblika krivulje prijelaza na radnoj površini: a) određivanje položaja početne točke prijelaza, b) određivanje tangentnog vektora smjera u početnoj točci prijelaza, c) određivanje završne točke prijelaza, d) i e) određivanje tangentnog vektora smjera u završnoj točci prijelaza, f) određivanje položaja tekstualnog retka pridruženog prijelazu, g) određivanje kuta rotacije tekstualnog retka pridruženog prijelazu
Izmjena postojećeg konačnog automata pomoću plutajućeg prozora na radnoj površini 16 Korisniku je olakšano određivanje točke pomoću oznake "X" na početnom stanju prijelaza. Nakon što korisnik potvrdi odabranu početnu točku prijelaza pritiskom na lijevu tipku miša, određuje se veličina i smjer tangentnog vektora smjera u početnoj točci prijelaza (slika 26.b). Pritiskom lijeve tipke miša potvrđuje se odabir veličine i smjera vektora. Potom korisnik određuje završnu točku prijelaza na isti način kao što je određivana početna točka prijelaza (slika 26.c), i veličinu i smjer tangentnog vektora smjera u završnoj točci prijelaza kao što je određivan tangentni vektor smjera u početnoj točci prijelaza (slika 26.d i 26.e). Dok korisnik određuje tangentni vektor smjera u završnoj točci prijelaza, na zaslonu se iscrtava krivulja prijelaza (slika 26.d). Na kraju, kao i kod definiranja stanja putem plutajućeg prozora na radnoj površini, određuje se položaj (slika 26.f) i kut rotacije (slika 26.g) tekstualnog retka pridruženog prijelazu. Lijevom tipkom miša potvrđuju se odabrana mjesta položaja, dimenzije vektora i kut rotacije. Nakon što je pritisnuta lijeva tipka miša za vrijeme određivanja kuta rotacije tekstualnog retka, prijelaz se dodaje u listu prijelaza automata, i plutajući prozor sa slike 25. ponovno prihvaća korisnički unos podataka preko tipkovnice i miša. U bilo kojem trenutku određivanja grafičkih parametara prijelaza korisnik može prekinuti započetu operaciju dodavanja prijelaza u listu prijelaza automata, tako da pritisne desnu tipku miša. Ako korisnik ostavi tekstualni redak pridružen prijelazu prazan, onda se neće određivati položaj na radnoj površini i kut rotacije tekstualnog retka pridruženog prijelazu, već će gornji lijevi kut tekstualnog retka biti smješten u početnoj točci prijelaza, a kut rotacije tekstualnog retka iznosit će 0 stupnjeva. Gumbom "Modify" mijenjaju se matematički parametri prijelaza, a gumbom "Delete" briše se odabrani prijelaz iz liste prijelaza automata. Prijelaz se odabire sa radne površine, pritiskom na desnu tipku miša, dok se pokazivač miša nalazi iznad grafičkog prikaza prijelaza (detaljnije o tome u odjeljku 10.). 9. Izmjena postojećeg konačnog automata pomoću plutajućeg prozora na radnoj površini Parametri stanja i prijelaza konačnog automata mogu se mijenjati u prozoru za definiranje skupa stanja odnosno prozoru za definiranje prijelaza automata. Međutim, takav pristup izmjenama izgleda i funkcionalnosti konačnog automata vrlo je naporan, tako da je omogućeno mijenjanje matematičkih parametara stanja i prijelaza putem plutajućeg prozora na radnog površini, i interaktivno mijenjanje grafičkih parametara stanja i prijelaza uz prikaz izgleda promjena na radnoj površini, prije nego što one budu potvrđene. Svi objekti radne površine (stanja, prijelazi i tekstualni retci) odabiru se tako da korisnik pritisne desnu tipku miša dok se pokazivač miša nalazi iznad objekta koji se želi odabrati, i potom iz izbornika koji se pojavljuje na tom mjestu radne površine, odabere podizbornik objekta koji želi izmijeniti ili izbrisati (slika 27.) i odabere opciju "Select". Podaci odabranog objekta pojaviti će se
Simulacija rada konačnog automata 17 a) b) c) d) Slika 27. Odabir objekata s radne površine: a) odabir stanja, b) odabir tekstualnog retka pridruženog stanju, c) odabir prijelaza, d) odabir tekstualnog retka pridruženog prijelazu u plutajućem prozoru na radnoj površini. Prilikom odabira stanja odnosno prijelaza automatski se odabiru i njima pridruženi tekstualni retci i obratno. Matematički parametri stanja i prijelaza mijenjaju se tako da se prvo odabere stanje odnosno prijelaz sa radne površine, potom izmjene željeni parametri i zatim pritisne gumb "Modify" na plutajućem prozoru. Stanje odnosno prijelaz, briše se iz konačnog automata tako da se prvo odabere stanje odnosno prijelaz sa radne površine, a zatim pritisne gumb "Delete" na plutajućem prozoru. Grafički parametri objekata na radnoj površini mijenjaju se tako da se prvo pritisne desna tipka miša kada se pokazivač miša nalazi iznad objekta čiji se grafički parametri žele promijeniti, a potom iz izbornika koji se pojavljuje na mjestu pokazivača miša, odabere podizbornik objekta koji se želi izmijeniti i odabere opcija koja izvršava željenu promjenu grafičkog parametra (slika 27.). Za vrijeme izvršavanja promjene grafičkog parametra nekog objekta, program prikazuje grafički Slika 28. Izbornik sa više otkrivenih objekata na prikaz konačnog automata sa izmijenjenim grafičkim istom mjestu radne površine parametrom tog objekta, tako da korisnik vidi promjene koje se događaju na radnoj površini, prije nego što ih potvrdi lijevom tipkom miša. U slučaju da se na mjestu pokazivača miša nalazi više objekata radne površine, u izborniku koji se pojavljuje na mjestu pokazivača miša, nalazi se popis svih objekata čiji se grafički prikaz nalazi na tom mjestu (slika 28.). 10. Simulacija rada konačnog automata Korisnik može pokrenuti simulaciju rada konačnog automata nakon što je unesen ulazni niz u zaslonskoj masci za unos ulaznog niza automata (slika 29.). Simulacijom se interaktivno upravlja pomoću alatne trake sa gumbima za upravljanje simulacijom rada automata (slika 30.).
Simulacija rada konačnog automata 18 10.1. Unos ulaznog niza automata Ulazni niz automata unosi se pomoću zaslonske maske prikazane na slici 29. Na slici Slika 29. Zaslonska maska za unos ulaznog niza automata 29. prikazan je ulazni niz koji je korišten u primjeru simulacije rada konačnog automata (slika 32.) definiranog dijagramom stanja u programu "Automata simulator" (slika 31.). 10.2. Pokretanje i interaktivno upravljanje simulacijom rada konačnog automata Simulacija rada konačnog automata pokreće se i zaustavlja pritiskom na treći gumb alatne trake za interaktivno upravljanje simulacijom rada konačnog automata (slika 30). Slika 30. Alatna traka za interaktivno upravljanje simulacijom rada automata Prvi gumb alatne trake sa slike 30. vraća glavu konačnog automata na prvi znak ulaznog niza (konačni automat još nije pročitao prvi znak ulaznog niza), a posljednji gumb postavlja glavu iza zadnjeg znaka ulaznog niza (konačni automat je pročitao zadnji znak ulaznog niza). Upravljanje koracima simulacije odnosno pomicanje glave konačnog automata po ulaznom nizu, izvršava se drugim i četvrtim gumbom alatne trake sa slike 30. Drugi gumb pomiče simulaciju jedan korak unaprijed (glava konačnog automata čita slijedeći znak ulaznog niza), a četvrti gumb pomiče simulaciju jedan korak unazad (glava konačnog automata vraća se jedan znak unazad). Prikaz simulacije rada konačnog automata u programu "SoftLab" dan je na slici 32. za konačni automat sa slike 31., koji je u potpunosti izgrađen u programu "SoftLab". Slika 31. Konačni automat korišten u primjeru simulacije rada automata
Simulacija rada konačnog automata 19 a) b) c) d) e) f) g) h) i) j) Slika 32. Simulacija rada konačnog automata u programu "Automata simulator"
Korištenje bilješki 20 Simulacija se ne izvodi samo u dijagramu stanja (desnom dijelu radnog prozora), već se koraci simulacije prikazuju i u tablici prijelaza (lijevi dio radnog prozora). Jedan korak simulacije rada konačnog automata prikazan u tablici prijelaza nalazi se na slici 33. Korak sa slike 33. odgovara koraku simulacije prikazanom dijagramom stanja na slici 32.e. Slika 33. Korak simulacije rada konačnog automata prikazan u tablici prijelaza 10.3. Ispis statusa konačnog automata za vrijeme simulacije U tekstualnom retku stanja programa, koji se nalazi na samom dnu glavnog prozora programa, za a) vrijeme simulacije rada konačnog automata ispisuju se podaci o trenutnom koraku simulacije (slika 34.). b) Prikazan je položaj glave konačnog automata sa Slika 34. Ispis statusa konačnog automata za vrijeme simulacije oznakom " " i informacija da li se pročitani dio ulaznog niza prihvaća ili ne. Status konačnog automata sa slike 34.a odgovara koraku simulacije rada automata sa slike 32.e, a status sa slike 34.b odgovara dijagramu stanja sa slike 32.j. 11. Korištenje bilješki Prozor Notes slika 35. služi za vođenje bilješki prilikom rada na automatu. Bilješke mogu unositi i pregledavati korisnik i učitelj. Prozor bilješki može poslužiti za komunikaciju između korisnika i učitelja. Tipično se prozor bilješki koristi prilikom rješavanja testova (izbornik automaton/load from server/test examples), kada je u prozoru bilješke iznesen tekst zadatka. Slika 35. Prozor bilješki