Usuwanie lewostronnej rekursji. Usuwanie lewostronnej faktoryzacji. Wyznaczanie zbioru FIRST. Wyznaczanie zbioru FOLLOW. Konstrukcja parsera LL
|
|
- Wiktor Urbaniak
- 7 lat temu
- Przeglądów:
Transkrypt
1 Usuwanie lewostronnej rekursji A Aα β Np. A A+B C A βa A CA A αa ε A +BA ε Usuwanie lewostronnej faktoryzacji A αβ 1... αβ k Np. A ab a A αa A aa A β 1... β k A B ε Wyznaczanie zbioru FIRST 1) A xβ x T FIRST(A) {x} 2) A ε FIRST(A) {ε} 3) A x 1 x 2...x k x 1 N FIRST(A) FIRST(x 1 ) \ {ε} for i = 2 to k if (ε FIRST(x 1 )) and... and (ε FIRST(x i-1 )) then FIRST(A) FIRST(x i ) \ {ε} if (ε FIRST(x 1 )) and... and (ε FIRST(x k )) then FIRST(A) {ε} Wyznaczanie zbioru FOLLOW 1) FOLLOW(Z) {$} 2) A αbβ FOLLOW(B) FIRST(β) \ {ε} 3) A αb FOLLOW(B) FOLLOW(A) 4) A αbβ ε FIRST(β) FOLLOW(B) FOLLOW(A) Konstrukcja parsera LL 1) Sprawdzi czy nie ma lewostronnej rekursji a jak jest to usuną 2) Wykona lewostronną faktoryzację, 3) Wyznaczy zbiory FIRST i FOLLOW, 4) Ponumerowa produkcje, 5) Wyznaczy tablicę dla parsera., 1
2 Przykład: A aba B C C b ε c ε Wyznaczanie zbioru FIRST 1) Szukamy produkcji gdzie na począ tku stoi terminal i ten terminal dodajemy do zbioru FIRST od nieterminala przed strzałką : dla A aba FIRST(A) {a} dla C b FIRST(C) {b} dla c FIRST() {c} FIRST A a B C b c 2) Szukamy produkcji z ε i dodajemy ten ε do zbioru FIRST od nieterminala przed strzałką : dla C ε FIRST(C) {ε} dla ε FIRST() {ε} FIRST A a B C b, ε c, ε 3) Szukamy produkcji gdzie na począ tku stoi nieterminal i FIRST od tego nieterminala dodajemy do FIRST od nieterminala stoją cego przed strzałką (z pominię ciem epsilona ε!). dla B C FIRST(B) FIRST(C) // FIRST(C) = {b, ε} dodajemy tylko {b} FIRST A a B b C b, ε c, ε JeŜ eli w kopiowanym przed chwilą zbiorze jest {ε} (u nas w kopiowanym FIRST(C) jest epsilon) to musimy zają się kolejnym symbolem produkcji B C czyli. Robimy to samo. FIRST od badanego symbolu dodajemy do FIRST od nieterminala przed strzałką (z pominię ciem epsilona ε!). dla B C FIRST(B) FIRST() // FIRST() = {c, ε} dodajemy tylko {c} FIRST A a B b, c C b, ε c, ε 2
3 I znowu sprawdzamy czy w kopiowanym przed chwilą zbiorze jest {ε} (u nas w kopiowanym FIRST() jest epsilon) jeŝ eli tak to zajmujemy się kolejnym symbolem produkcji, ale u nas w produkcji B C za nie ma juŝ nic, wię c przechodzimy do ostatniego kroku. W ostatnim kroku musimy sprawdzi czy nie zachodzi czasem sytuacja, Ŝ e w FIRSCIE od kaŝ dego! symbolu produkcji znajduje się epsilon ε. JeŜ eli tak to koń cowym krokiem jest dodanie tego epsilona ε (który cały czas pomijaliś my) do zbioru FIRST od nieterminala przed strzałką. W naszym przykładzie w produkcji B C z zbiorze FIRST(C) znajduje się ε i w zbiorze FIRST() znajduje się ε zatem do FIRST(B) {ε}. FIRST A a B b, c, ε C b, ε c, ε Teraz szukamy nastę pnej produkcji gdzie na począ tku znajduje się nieterminal i znowu powtarzamy krok 3 (w naszym przykładzie była tylko jedna taka produkcja). Krok 3 powtarza się tak długo, aŝ w tabeli FIRST nic się nie bę dzie zmieniało. Wyznaczanie zbioru FOLLOW 1) o zbioru FOLLOW od symbolu począ tkowego dodajemy symbol dolara {$}. FOLLOW(A) {$} FOLLOW A $ B C 2) Teraz szukamy produkcji gdzie za nietermianelm bę dzie stał jakiś symbol i do FOLLOW od tego nieterminala dodajemy FIRST od tego symbolu z pominię ciem epsilona ε. dla A aba FOLLOW(B) FIRST(a) \ {ε} // FIRST(a) = {a} dodajemy wię c {a} dla B C FOLLOW(C) FIRST() \ {ε} // FIRST() = {c, ε} dodajemy {c} FOLLOW A $ B a C c Tutaj teŝ naleŝ y zwraca uwagę czy w zbiorze który dodawaliś my nie było epsilona. JeŜ eli był to zawsze sprawdzamy kolejny symbol. W naszym przykładzie dla B C w FIRST() był epsilon ale po nie ma juŝ Ŝ adnego symbolu wię c nic nie musimy robi. 3) Teraz pora na kopiowanie pomię dzy zbiorami FOLLOW. Szukamy takich produkcji gdzie na koń cu znajduje się nieterminal i do FOLLOW od tego nieterminala kopiujemy zawartoś FOLLOW od nieterminala przed strzałką. W naszym przykładzie: dla B C FOLLOW() FOLLOW(B) // FOLLOW(B) = {a} dla C b FOLLOW() FOLLOW(C) // FOLLOW(C) = {c} 3
4 FOLLOW A $ B a C c a, c 4) Teraz szukamy takich produkcji gdzie za jakimś nieterminalem cała prawa strona bę dzie się zerowała czyli w FIRST od tej całej strony bę dzie znajdował się epsilon ε. Wtedy do FOLLOW od tego nieterminala dodajemy FOLLOW od nieterminala przed strzałką. W naszym przykładzie w produkcji B C dla nieterminala C cała prawa strona w tym przypadku składają ca się tylko z jednego nieterminala moŝ e się wyzerowa (w FIRST() znajduje się epsilon). latego dla: dla B C ε FIRST() FOLLLOW(C) FOLLOW(B) //FOLLOW(B) = {a} FOLLOW A $ B a C c, a a, c Krok 3 i 4 powtarzamy tak długo, aŝ w tabeli FOLLOW nic się nie bę dzie zmieniało. 4
5 Konstrukcja parsera LL Mają c juŝ zbiory FIRST i FOLLOW moŝ na przystą pi do tworzenia tablicy dla parsera. Wcześ niej trzeba jednak ponumerowa produkcje. 1) A aba FIRST FOLLOW 2) B C A a $ 3) C b B b, c, ε a 4) C ε C b, ε c, a 5) c c, ε a, c 6) ε Tablica parsera wyglą da nastę pują co: A B C W wierszach wpisuje się kolejne nieterminale natomiast w kolumnach wszystkie terminale plus dodatkowo znak dolara {$} (nie wpisuje się epsilona ε). Resztę pól wypełniamy w sposób opisany poniŝ ej. Wypełnienie pola polega wpisaniu do niego pasują cej produkcji (wystarczy jej prawa czę ś ta za strzałką ) oraz jej numeru. Pasują ca produkcja to taka, która tworzy łań cuch zaczynają cy się od tego terminala, dla którego wypełniamy kolumnę. la wiersza A wypełniamy w tablicy te kolumny, których terminale znajdują się w FIRST(A). Czyli jest to tylko kolumna a. Pasują cą produkcją jest produkcja 1) A aba poniewaŝ produkcja ta tworzy łań cuch zaczynają cy się od a. Zatem wpisujemy ją do tablicy. A aba 1 B C la wiersza B wypełniamy w tablicy te kolumny, których terminale znajdują się w FIRST(B). Czyli są to kolumny b i c (epsilon się pomija). la kolumny b pasują ca produkcja to 2) B C (bo nieterminal C ma w swoim firscie {b} a to znaczy Ŝ e C moŝ e się zamieni na łań cuch zaczynają cy się od b ). la kolumny c pasują ca produkcja to teŝ druga (innej zresztą nie ma) 2) B C (bo nieterminal C ma w swoim firscie epsilon ε czyli C moŝ e znikną i wtedy zostanie nieterminal a w nieterminalu w firscie znajduje się c, zatem druga produkcja takŝ e moŝ e zamieni się na łań cuch zaczynają cy się od c ). A aba 1 B C 2 C 2 C PoniewaŜ w FIRST(B) znajduje się epsilon to wypełniamy te kolumny, których terminale znajdują się w FOLLOW(B). W FOLLOW od B znajduje się tylko nieterminal a wię c wypełniamy tylko tą 5
6 kolumnę. Pasują cą (i jedyną ) produkcją jest 2) B C (tak C jak i w swoich firstach zawierają epsilon ε czyli cała produkcja moŝ e zamieni się w pusty łań cuch). A aba 1 B C 2 C 2 C 2 C la wiersza C wypełniamy te kolumny, których terminale znajdują się w FIRST(C). Czyli jest to tylko kolumna b. Pasują cą produkcją jest 3) C b bo tworzy łań cuch zaczynają cy się od b. A aba 1 B C 2 C 2 C 2 C b 3 PoniewaŜ w FIRST(C) jest epsilon to wypełniamy te kolumny, których terminale znajdują się w FOLLOW(C). Są to kolumny c i a. Pasują cą produkcją jest 4) C ε wida, Ŝ e bezpoś rednio generuje pusty łań cuch. A aba 1 B C 2 C 2 C 2 C ε 4 b 3 ε 4 la wiersza wypełniamy te kolumny, których terminale znajdują się w FIRST(). Jest to tylko kolumna c. Pasują cą produkcją jest 5) c. A aba 1 B C 2 C 2 C 2 C ε 4 b 3 ε 4 c 5 PoniewaŜ w FIRST() jest epsilon to wypełniamy te kolumny, których terminale znajdują się w FOLLOW(). Są to kolumny a i c. Pasują cą produkcją jest 6) ε (bezpoś rednio generuje pusty łań cuch). A aba 1 B C 2 C 2 C 2 C ε 4 b 3 ε 4 ε 6 c 5 ε 6 UWAGA! Na tym przykładzie wida, Ŝ e moŝ e się zdarzy sytuacja gdy w jednej komórce bę dzie klika produkcji. Jednak na kolosie to raczej nie powinno mie miejsca. 6
7 Symulacja parsera LL Uwaga, do symulacji bę dzie inny przykład! S (L) a L L S S L SL L SL ε // tu jest lewostronna rekursja Ponumerowanie i utworzenie zbiorów FIRST i FOLLOW 1) S (L) 2) S a FIRST FOLLOW 3) L SL S (, a $,, ) 4) L SL L (, a ) 5) L ε L, ε ) Tablica parsera wyglą da tak ( ) a $ S (L) 1 a 2 L SL 3 SL 3 L ε 5 SL 4 Teraz przeprowadzimy symulację działania parsera dla słowa (a a a). Robi się to w ten sposób, Ŝ e tworzy się trzy kolumny: w pierwszej bę dzie stos (na dnie którego jest znak krzyŝ yk # a zaraz za nim symbol począ tkowy), w drugiej bę dzie analizowane słowo (zakoń czone dodatkowo znakiem dolara $ ), a w trzeciej kolumnie bę dziemy zapisywa numery kolejnych produkcji (na począ tek moŝ na tam wpisa epsilon). Wyglą da to tak: #S (a a a)$ ε Teraz czytamy symbol z wierzchołka stosu S i lewy skrajny symbol wyrazu (lewy nawias ( ) i patrzymy na tablicę parsera co znajduje się na skrzyŝ owaniu S i (. Jest tam produkcja S (L) o numerze 1. Ten numer zapisujemy do trzeciej kolumny a ze stosu zdejmujemy S i zamieniamy zgodnie z definicją 1 produkcji na (L) ale pisane od tyłu! #S (a a a)$ ε #)L( (a a a)$ 1 Znowu patrzymy na to co jest na wierzchołku stosu i na pierwszy symbol wyrazu i czy aby czasem nie są to te same symbole, jeŝ eli są to moŝ emy je usuną. U nas w tej chwili na wierzchołku stosu jest lewy nawias ( i na począ tku wyrazu teŝ jest lewy nawias (. Usuwamy je zatem (ale nic nie piszemy w trzeciej kolumnie, trzecią kolumnę uzupełniamy tylko wtedy jak stosujemy jaką ś produkcje). Teraz bę dzie tak: #S (a a a)$ ε #)L a a a)$ 1 No to jedziemy dalej, na wierzchołku stosu jest L a na począ tku wyrazu a. Z tabeli czytamy, Ŝ e trzeba zastosowa trzecią produkcje L SL. Numer produkcji notujemy w trzeciej kolumnie a ze stosu zdejmujemy L i zamieniamy na SL pisane od tyłu! 7
8 #S (a a a)$ ε #)L a a a)$ 1 #)L S a a a)$ 1,3 Znowu patrzymy czy symbole na począ tku wyrazu i na wierzchołku stosu są takie same, jeŝ eli tak to moŝ emy je usuną jak nie to patrzymy dalej co mamy na stosie i jaki jest pierwszy symbol w wyrazie, odczytujemy z tabeli parsera produkcję itd. Uwaga! JeŜ eli natrafimy w tabeli parsera na produkcję typu ε to wtedy po prostu usuwamy z wierzchołka stosu symbol i oczywiś cie zapisujemy w trzeciej kolumnie numer takiej produkcji. Wyraz się wtedy nie zmienia. Nasz przykład dalej wyglą da tak: #S (a a a)$ ε #)L a a a)$ 1 #)L S a a a)$ 1,3 #)L a a a a)$ 1,3,2 #)L a a)$ 1,3,2 #)L S a a)$ 1,3,2,4 #)L S a a)$ 1,3,2,4 #)L a a a)$ 1,3,2,4,2 #)L a)$ 1,3,2,4,2 #)L S a)$ 1,3,2,4,2,4 #)L S a)$ 1,3,2,4,2,4 #)L a a)$ 1,3,2,4,2,4,2 #)L )$ 1,3,2,4,2,4,2 #) )$ 1,3,2,4,2,4,2,5 # $ 1,3,2,4,2,4,2,5 I to wszystko. Powinniś my na koń cu otrzyma na stosie tylko krzyŝ yk # a kolumnie z wyrazem powinien zosta tylko dolar $. JeŜ eli tak jest to znaczy, Ŝ e parser zaakceptował nasze słowo i trzecia kolumna zawiera numery kolejnych produkcji do zbudowania takiego słowa. JeŜ eli jednak coś zostało na stosie albo są jeszcze słowa w wyrazie albo wcześ niej trafiliś my w tablicy parsera na puste pole to wyraz nie jest akceptowany przez parser (a na kolosie oznaczało to bę dzie raczej (chociaŝ nie koniecznie), Ŝ e zwaliliś my budowanie tablicy parsera :) ) 8
9 Konstrukcja parsera SLR(1) czyli tzw. proste LR la LR weź miemy taki przykład: S S* a(s) a Na począ tek trzeba ponumerowa produkcje i doda dodatkową zerową produkcję typu S S. 0) S S 1) S S* 2) S a(s) 3) S a Kolejny krok to wyznaczenie zbioru T 0 (na wiczeniach było to I 0 ale według mnie to jest mało czytelne poza tym fatalnie się to pisze na kartce), a póź niej wyznaczenie kolejnych zbiorów za pomocą funkcji przejś cia GOTO. Temu wyznaczaniu bę dzie towarzyszyła kropka. Na począ tku kropkę pisze się zawsze zaraz po strzałce a póź niej przechodzi ona aŝ do koń ca produkcji. Istnieje jeszcze coś takiego jak domknię cie i ma miejsce wtedy gdy kropka znajdzie się przed nieterminalem. Produkcję z kropką nazywa się sytuacją. Zaczynamy od wyznaczenia zbioru T 0 do którego automatycznie wpisujemy produkcje zerową z kropką na począ tku T 0 = { [S S] } a poniewaŝ kropka znalazła przed nieterminalem to domykamy, dopisują c do zbioru wszystkie produkcje zaczynają ce się od tego nieterminala (nie zapominają c o kropce na począ tku). U nas kropka jest przed S a produkcje zaczynają ce się od S to S S*, S a(s), S a T 0 = { [S S], [S S*], [S a(s)], [S a] } I znowu musimy patrze czy w tym co dopisaliś my kropka nie stoi czasem przed nieterminalem. U nas jest taka sytuacja w przypadku [S S*] ale poniewaŝ S juŝ raz domykaliś my to nie musimy tego robi. Zbiór T 0 mamy wyznaczony. Teraz pora na wyznaczenie przejś dla zbioru T 0 (przechodziła bę dzie kropka). Na począ tek przejś cie kropki przez S. la zbioru T 0 tylko w dwóch przypadkach kropka moŝ e przejś przez S i tylko te dwa przypadki zapiszemy sprawdzają c jednocześ nie czy trzeba czasem domyka. GOTO( T 0, S ) = { [S S ], [S S *] } Na szczę ś cie nic nie musimy domyka, wystarczy tylko nada numer temu zbiorowi nie było jeszcze takiego zbioru wię c nadajemy mu numer T 1. T 1 = GOTO( T 0, S ) = { [S S ], [S S *] } obra, w zbiorze T 0 przejś cie przez S juŝ wyznaczyliś my, patrzymy przez co moŝ ne tam jeszcze kropka przejś. MoŜ e przez a. Zatem piszemy: GOTO( T 0, a ) = { [S a (S)], [S a ] } omyka nic nie trzeba, bo kropka nie stoi przed nieterminalem, nadajemy numer: T 2 = GOTO( T 0, a ) = { [S a (S)], [S a ] } 9
10 Zbiór T 0 mamy załatwiony, kropka nie przechodzi tam juŝ przez inne symbole. Teraz zajmujemy się nastę pnym zbiorem T 1 i patrzymy przez co tam kropka moŝ e przejś. MoŜ e przejś przez gwiazdkę *. Zatem piszemy GOTO, patrzymy czy da się domkną i nadajemy numer: T 3 = GOTO( T 1, * ) = { [S S* ] } Zbiór T 1 teŝ juŝ jest załatwiony, przechodzimy do T 2 i patrzymy przez co tam moŝ e przejś W T 2 kropka moŝ e przejś przez nawias otwierają cy (. Piszemy GOTO( T 2, ( ) = { [S a( S)] } kropka. Uwaga, kropka pojawiła się przed nieterminalem domykamy (od razu nadamy numer Ŝ eby za duŝ o nie pisa ): T 4 = GOTO( T 2, ( ) = { [S a( S)], [S S*], [S a(s)], [S a] } Ŝ To wszystko, przejś cia w zbiorze T 2 juŝ są załatwione, teraz T 3 ale okazuje się, e w zbiorze T 3 kropka nie ma gdzie juŝ przejś bo jest na koń cu jedynej produkcji [S S* ]. Zostawiamy zatem zbiór T 3 i zajmujemy się T 4. I tak aŝ do us... ś mierci ;) chciałoby się powiedzie, ale nie jest tak ź le, bo zbiory w koń cu zaczną się powtarza i juŝ nic nowego nie bę dzie się pojawiało. Podsumowują c, od począ tku aŝ do koń ca powinniś my dosta takie coś : T 0 = { [S S], [S S*], [S a(s)], [S a] } T 1 = GOTO( T 0, S ) = { [S S ], [S S *] } T 2 = GOTO( T 0, a ) = { [S a (S)], [S a ] } T 3 = GOTO( T 1, * ) = { [S S* ] } T 4 = GOTO( T 2, ( ) = { [S a( S)], [S S*], [S a(s)], [S a] } T 5 = GOTO( T 4, S ) = { [S a(s )], [S S *] } T 2 = GOTO( T 4, a ) = { [S a (S)], [S a ] } T 6 = GOTO( T 5, ) ) = { [S a(s) ] } T 3 = GOTO( T 5, * ) = { [S S* ] } JeŜ eli doszliś cie tutaj to znaczy Ŝ e jeszcze nie odwieź li nas do wariatkowa (albo dopiero jadą ) i pora wyznaczy zbiory FIRST i FOLLOW. Mają wyjś tak: FIRST FOLLOW S a $ S a *, ), $ Mają c juŝ wyznaczone przejś cia i zbiory FIRST i FOLLOW moŝ na zbudowa tablicę parsera LR. Tablica składa się z tylu wierszy ile jest wyznaczonych zbiorów (u nas od T 0 do T 6 czyli w sumie 7) oraz z tylu kolumn ile jest terminali i nieterminali (oprócz nieterminala z primem z produkcji zerowej S bo i tak nic tam nie wpiszemy) plus znak dolara $. Kolumny powinny by w takiej kolejnoś ci: najpierw terminale, póź niej znak dolara $, na koń cu nieterminale (moŝ na dodatkowo wydzieli czę ś z nieterminalami grubszą kreską ).Tablica wyglą da tak: 10
11 T 0 T 1 T 2 T 3 T 4 T 5 T 6 Tablice trzeba wypełni. Podczas wypełniania analizuje się wyznaczone wcześ niej zbiory od T 0 do T 6 oraz czasem bę dzie potrzebny zbiór FOLLOW. Podczas analizy zbiorów moŝ emy trafi na trzy przypadki (regułka): kropka bę dzie przed nieterminalem wtedy jest przejś cie, kropka bę dzie przed terminalem wtedy jest przesunię cie sh, kropka bę dzie na koń cu wtedy jest redukcja red (według zbioru FOLLOW), dodatkowo redukcję według produkcji zerowej red0 oznacza się jako acc czyli akceptacja. Zaczynamy wypełnianie pierwszego wiersza w tablicy, do tego potrzebny bę dzie zbiór T 0. Patrzymy na zawartoś zbioru T 0 i widzimy, Ŝ e w dwóch sytuacjach kropka stoi przed S, czyli przed nieterminalem. Według regułki nastę puje wtedy przejś cie. Szukamy GOTO dla T 0 przez symbol S. Mamy takie coś GOTO( T 0, S ) = T 1. Wida, Ŝ e równa się to T 1, wpisujemy wię c T 1 na przecię ciu T 0 i S. T 0 T 1 alej, w zbiorze T 0 mamy sytuacje, Ŝ e kropka stoi przed a czyli przed terminalem. To według regułki oznacza przesunię cie sh, patrzymy tylko, do którego zbioru. Szukamy wię c GOTO z T 0 przez symbol a i znajdujemy GOTO( T 0, a ) = T 2. Wpisujemy wię c sh2 na przecię ciu T 0 i a. ( sh z dwójką bo GOTO równa się T 2 ). T 0 sh2 T 1 W zbiorze T 0 nic juŝ nie znajdziemy. MoŜ emy przejś do nastę pnego zbioru T 1. Pierwsza sytuacja jaka się tam znajduje to [S S ], widzimy, Ŝ e kropka znajduje się na koń cu co według regułki oznacza redukcję. Musimy tylko okreś li według jakiej produkcji bę dzie ta redukcja no to jest łatwe, szukamy po prostu jaki numer miała produkcja S S a był to numer 0. Czyli bę dzie to redukcja według produkcji zerowej red0 a to jak pamię tamy jest akceptacja czyli acc. Pozostaje tylko dowiedzie się, w którą kolumnę wpisa acc. PoniewaŜ jest to redukcja to patrzymy do zbioru FOLLOW dla nieterminala przed strzałką czyli S i widzimy, Ŝ e jest tam tylko dolar $ zatem nasze acc wpisujemy w wierszu T 1 w kolumnie $. T 1 acc Nastę pna sytuacja w zbiorze T 1 to [S S *]. Kropka stoi przed terminalem * bę dzie wię c sh. Szukamy GOTO dla T 1 od *. GOTO( T 1, * ) = T 3. Wida, Ŝ e równa się to zbiorowi o numerze 3. Wpisujemy wię c sh3 na przecię ciu T 1 i *. 11
12 T 1 sh3 acc Teraz zbiór T 2. Mamy w nim sytuację [S a (S)], kropka stoi przed terminalem. Szukamy GOTO dla T 2 od lewego nawiasu (. GOTO( T 2, ( ) = T 4. Równa się to zbiorowi o numerze 4. Wpisujemy wię c sh4 na przecię ciu T 2 i nawiasu (. T 2 sh4 Nastę pna sytuacja w zbiorze T 2 to [S a ]. Kropka na koń cu wię c bę dzie redukcja. Produkcja w postaci S a ma numer 3. Wię c bę dzie to redukcja według produkcji trzeciej red3. Jak to przy redukcji uŝ ywamy FOLLOW aby dowiedzie się gdzie ją wpiszemy. Przed strzałką mamy S FOLLOW dla S wynosi FOLLOW(S) = { *, ), $ }. Wpisujemy wię c red3 na przecię ciu T 2 i kolumn *, ), $. T 2 red3 sh4 red3 red3 Pozostają nam jeszcze zbiory T 3 do T 6. Robi się je podobnie jak wyŝ ej. Na koniec nasza tablica powinna wyglą da tak: T 0 sh2 T 1 T 1 sh3 acc T 2 rd3 sh4 rd3 rd3 T 3 rd1 rd1 rd1 T 4 sh2 T 5 T 5 sh3 sh6 T 6 rd2 rd2 rd2 Uwaga! Podczas, konstrukcji moŝ e się zdarzy, Ŝ e w jednej kratce w tablicy znajdą się dwa wpisy (albo wię cej) jest to wtedy tzw. konflikt. Wtedy podczas działania parser nie wie, którą regułę stosowa. Czasem wida która reguła nie pasuje i od razu moŝ na ją wywali. Nie powinno by takiego przypadku na kolosie. 12
13 Symulacja parsera SLR(1) Teraz przeprowadzimy symulację działania parsera dla słowa a(a*)*. Potrzebne są nam do tego trzy kolumny: w pierwszej bę dzie stos, w drugiej nasze słowo a w trzeciej bę dziemy numerowa stosowane produkcje. Na począ tek na stos (pierwsza kolumna) wpisujemy zawsze symbol pierwszego (a raczej zerowego) zbioru T 0, do drugiej kolumny wpisujemy słowo dodają c na jego koniec znak dolara $ a w trzeciej kolumnie na razie wpisujemy epsilon ε. Interesuje nas zawsze wierzchołek stosu i pierwszy znak w wyrazie. Odczytujemy T 0 i a i patrzymy co znajduje się w tablicy parsera na przecię ciu T 0 i a. Jest tam sh2. Zawsze dla sh przesuwamy czytany znak z wyrazu na stos i dodatkowo dorzucamy tam numer który stoi przy sh. U nas na stos wrzucimy najpierw a bo ten symbol właś nie czytamy a póź niej na stos wrzucimy T 2 bo sh jest do dwójki sh2. Kolumny bę dą wyglą da tak: T 0 at 2 (a*)*$ ε Teraz na wierzchołku stosu mamy T 2 a czytany znak w wyrazie to nawias otwierają cy (. Czytamy z tablicy parsera co stoi na przecię ciu T 2 i (. Jest tam sh4. Wiemy co robi. Na stos wrzucamy czytany symbol z wyrazu ( i dodatkowo dorzucamy T 4 bo sh jest do czwórki sh4. Kolumny powinny wyglą da tak: T 0 at 2 (a*)*$ ε T 0 at 2 (T 4 a*)*$ ε alej. Na wierzchołku stosu czytamy T 4 a czytany znak w wyrazie to a. W tablicy parsera na przecię ciu T 4 i a znajduje się sh2. Kolumny bę dą wyglą da tak. T 0 at 2 (a*)*$ ε T 0 at 2 (T 4 a*)*$ ε T 0 at 2 (T 4 at 2 *)*$ ε Teraz bę dzie coś nowego. Czytamy na wierzchołku stosu T 2 a czytany znak w wyrazie to *. Z tablicy parsera odczytujemy rd3. Zawsze dla redukcji rd bę dziemy ś cią ga symbole ze stosu według konkretnej produkcji, wyraz bę dzie pozostawał bez zmian a w trzeciej kolumnie bę dziemy zapisywa numer produkcji jaką zastosowaliś my. PoniewaŜ odczytaliś my rd3 to znaczy, Ŝ e bę dzie redukcja według produkcji trzeciej 3) S a. Zawsze ś cią gamy dwa razy wię cej symboli ze stosu niŝ wynosi prawa strona produkcji. Prawa strona produkcji 3 zawiera jeden symbol a a wię c my ś cią gniemy 2*1 czyli dwa symbole ze stosu. ś ś T 0 at 2 (T 4 at 2 // cią gamy 2 razy wię cej symboli niŝ wynosi prawa strona produkcji T 0 at 2 (T 4 // to zostaje na stosie po cią gnię ciu W miejsce ś cią gnię tych symboli wpisujemy lewa stronę produkcji czyli nieterminal u nas bę dzie to S. T 0 at 2 (T 4 S // to co ś cią gnię to zastę pujemy lewą stroną produkcji czyli nieterminalem 13
14 odatkowo musimy doda na stos zaraz za wpisanym nieterminalem numer zbioru. Przed wpisany nieterminalem jest T 4 a wię c odczytujemy numer z tablicy parsera na przecię ciu T 4 i S. Jest tam T 5 i to wrzucamy na stos. T 0 at 2 (T 4 ST 5 // uzupełniamy wierzchołek stosu o numer zbioru Proszę zauwaŝ y, Ŝ e na stosie zawsze nieterminale i terminale są przemieszane numerami zbiorów T x itd. w szczególnoś ci zawsze na wierzchołku stosu znajduje się numer zbioru T x. Po tym kolumny powinny wyglą da tak (w trzeciej kolumnie notujemy według której produkcji nastą piła redukcja). T 0 at 2 (a*)*$ ε T 0 at 2 (T 4 a*)*$ ε T 0 at 2 (T 4 at 2 *)*$ ε T 0 at 2 (T 4 ST 5 *)*$ 3 alej robimy normalnie. Na stosie jest T 5 czytany symbol z wyrazu to *. W tablicy parsera na przecię ciu T 5 i * jest sh3. Na stos wrzucamy czytany symbol z wyrazu i dodatkowo T 3 T 0 at 2 (a*)*$ ε T 0 at 2 (T 4 a*)*$ ε T 0 at 2 (T 4 at 2 *)*$ ε T 0 at 2 (T 4 ST 5 *)*$ 3 T 0 at 2 (T 4 ST 5 *T 3 )*$ 3 W tablicy parsera na przecię ciu T 3 i ) jest rd1. Jest to redukcja według produkcji 1) S S*. Ze stosu zdejmujemy dwa razy wię cej symboli niŝ prawa strona produkcji (u nas 4) ś ś T 0 at 2 (T 4 ST 5 *T 3 // cią gamy 2 razy wię cej symboli niŝ wynosi prawa strona produkcji T 0 at 2 (T 4 // to zostaje na stosie po cią gnię ciu i wrzucamy w to miejsce symbol z lewej strony produkcji czyli S T 0 at 2 (T 4 S // to co ś cią gnię to zastę pujemy lewą stroną produkcji dodatkowo uzupełniają c tym co odczytamy z tablicy parsera z przecię cia T 4 i S. Jest tam T 5. T 0 at 2 (T 4 ST 5 // uzupełniamy wierzchołek stosu o numer zbioru T 0 at 2 (a*)*$ ε T 0 at 2 (T 4 a*)*$ ε T 0 at 2 (T 4 at 2 *)*$ ε T 0 at 2 (T 4 ST 5 *)*$ 3 T 0 at 2 (T 4 ST 5 *T 3 )*$ 3 T 0 at 2 (T 4 ST 5 )*$ 3,1 14
15 Kontynuują c otrzymamy taką posta kolumn: T 0 at 2 (a*)*$ ε T 0 at 2 (T 4 a*)*$ ε T 0 at 2 (T 4 at 2 *)*$ ε T 0 at 2 (T 4 ST 5 *)*$ 3 T 0 at 2 (T 4 ST 5 *T 3 )*$ 3 T 0 at 2 (T 4 ST 5 )*$ 3,1 T 0 at 2 (T 4 ST 5 )T 6 *$ 3,1 T 0 ST 1 *$ 3,1,2 T 0 ST 1 *T 3 $ 3,1,2 T 0 ST 1 $ 3,1,2,1 Teraz patrzą c na wierzchołek stosu i na czytany symbol z wyrazu mamy T 1 i $ a z tablicy parsera odczytujemy acc czyli akceptacja. Udało się :) 15
0.1 Lewostronna rekurencja
0.1 Lewostronna rekurencja Sprawdź czy poniższa gramatyka E jest zgodna z LL(1), tzn. czy umożliwia przeprowadzenie analizy bez powrotu z wyprzedzeniem o jeden symbol. Wyjaśnienie pojęcia LL(1): Pierwsze
Bardziej szczegółowoWykład 5. Jan Pustelnik
Wykład 5 Jan Pustelnik Konstruowanie parsera Istnieje kilka podstawowych metod konstrukcji parsera bez nawracania Ze względów wydajnościowych parser bez nawracania jest jedynym sensownym rozwiązaniem (prawo
Bardziej szczegółowoJęzyki formalne i automaty Ćwiczenia 4
Języki formalne i automaty Ćwiczenia 4 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Sposób tworzenia deterministycznego automatu skończonego... 4 Intuicyjne rozumienie konstrukcji
Bardziej szczegółowoJęzyki formalne i automaty Ćwiczenia 3
Języki formalne i automaty Ćwiczenia 3 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Algorytm LL(1)... 2 Definicja zbiorów FIRST1 i FOLLOW1... 3 Konstrukcja tabeli parsowania
Bardziej szczegółowoMetody Kompilacji Wykład 8 Analiza Syntaktyczna cd. Włodzimierz Bielecki WI ZUT
Metody Kompilacji Wykład 8 Analiza Syntaktyczna cd Analiza Syntaktyczna Wstęp Parser dostaje na wejściu ciąg tokenów od analizatora leksykalnego i sprawdza: czy ciąg ten może być generowany przez gramatykę.
Bardziej szczegółowoGramatyka operatorowa
Gramatyki z pierwszeństwem operatorów Teoria kompilacji Dr inŝ. Janusz Majewski Katedra Informatyki Gramatyka operatorowa Definicja: G = G BK jest gramatyką operatorową (i) (ii) G jest gramatyką
Bardziej szczegółowoParsery LL(1) Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki
Parsery LL() Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy generacyjnej (zstępującej, top-down) symbol początkowy już terminale wyprowadzenie lewostronne pierwszy od lewej
Bardziej szczegółowo1. Podstawy budowania wyra e regularnych (Regex)
Dla wi kszo ci prostych gramatyk mo na w atwy sposób napisa wyra enie regularne które b dzie s u y o do sprawdzania poprawno ci zda z t gramatyk. Celem niniejszego laboratorium b dzie zapoznanie si z wyra
Bardziej szczegółowo3.4. Przekształcenia gramatyk bezkontekstowych
3.4. Przekształcenia gramatyk bezkontekstowych Definicje Niech będzie dana gramatyka bezkontekstowa G = G BK Symbol X (N T) nazywamy nieużytecznym w G G BK jeśli nie można w tej gramatyce
Bardziej szczegółowoJęzyki formalne i automaty Ćwiczenia 2
Języki formalne i automaty Ćwiczenia 2 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Metoda brute force... 2 Konwersja do postaci normalnej Chomskiego... 5 Algorytm Cocke a-youngera-kasamiego
Bardziej szczegółowoAnalizator syntaktyczny
Analizator syntaktyczny program źródłowy analizator leksykalny token daj nast. token analizator syntaktyczny drzewo rozbioru syntaktycznego analizator semantyczny kod pośredni tablica symboli Analizator
Bardziej szczegółowoAutomat ze stosem. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki
Automat ze stosem Języki formalne i automaty Dr inż. Janusz Majewski Katedra Informatyki Automat ze stosem (1) dno stosu Stos wierzchołek stosu Wejście # B B A B A B A B a b b a b a b $ q i Automat ze
Bardziej szczegółowoJęzyki formalne i automaty Ćwiczenia 9
Języki formalne i automaty Ćwiczenia 9 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Maszyna Mealy'ego... 2 Maszyna Moore'a... 2 Automat ze stosem... 3 Konwersja gramatyki bezkontekstowej
Bardziej szczegółowoCAŁO Ś Ć OPRACOWANIA POWINNA ZAWIERA Ć MAKSYMALNIE 10 STRON. REDAKCJA NIE INGERUJE W ZAWARTO MERYTORYCZNĄ NADESŁANYCH ARTYKUŁÓW I NIE
CAŁO Ś Ć OPRACOWANIA POWINNA ZAWIERA Ć MAKSYMALNIE 10 STRON. Ś Ć REDAKCJA NIE INGERUJE W ZAWARTO MERYTORYCZNĄ NADESŁANYCH ARTYKUŁÓW I NIE DOKONUJE KOREKTY PISOWNI. REDAKCJA PRZYJMUJE PLIKI WYŁĄ CZNIE W
Bardziej szczegółowoAnaliza metodą zstępującą. Bartosz Bogacki.
Analiza metodą zstępującą Bartosz Bogacki Bartosz.Bogacki@cs.put.poznan.pl Witam Państwa. Wykład, który za chwilę Państwo wysłuchają dotyczy analizy metodą zstępującą. Zapraszam serdecznie do wysłuchania.
Bardziej szczegółowoSYSTEM PRZERWA Ń MCS 51
Zachodniopomorski Uniwersytet Technologiczny WYDZIAŁ ELEKTRYCZNY Zakład Cybernetyki i Elektroniki LABORATORIUM TECHNIKA MIKROPROCESOROWA SYSTEM PRZERWA Ń MCS 51 Opracował: mgr inŝ. Andrzej Biedka Uwolnienie
Bardziej szczegółowoSAMOUCZEK PRZYKŁAD ROZWIĄZANIA ZANIA TARCZY
SAMOUCZEK PRZYKŁAD ROZWIĄZANIA ZANIA TARCZY ZAPRASZAMY DO NAUKI W samouczku zosta ł o przedstawione, w jaki spos ó b uŝyć u program TARCZA do obliczenia napręŝ ęŝeń w tarczy. PORUSZANIE SIĘ PO SAMOUCZKU:
Bardziej szczegółowoJęzyki formalne i automaty Ćwiczenia 5
Języki formalne i automaty Ćwiczenia 5 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 L-systemy... 2 Grafika żółwia... 2 Bibliografia... 5 Zadania... 6 Zadania na 3.0... 6 Zadania
Bardziej szczegółowoDRUKOWANIE ŚWIADECTW LIBRUS
DRUKOWANIE ŚWIADECTW LIBRUS Część 1 - czynności wstępne 1. Po otrzymaniu od z-cy dyr. R. Ślusarskiego 7-cyfrowego loginu i początkowego hasła należy wejść na stronę świadectwa.librus.pl (bez www) i zalogować
Bardziej szczegółowoWprowadzenie do analizy składniowej. Bartosz Bogacki.
Wprowadzenie do analizy składniowej Bartosz Bogacki Bartosz.Bogacki@cs.put.poznan.pl Witam Państwa. Wykład, który za chwilę Państwo wysłuchają dotyczy wprowadzenia do analizy składniowej. Zapraszam serdecznie
Bardziej szczegółowoINSTRUKCJA Panel administracyjny
INSTRUKCJA Panel administracyjny Konto trenera Spis treści Instrukcje...2 Opisy...3 Lista modułów głównych...3 Moduł szkoleniowy...4 Dodaj propozycję programu szkolenia...4 Modyfikuj arkusz wykładowcy...6
Bardziej szczegółowoSamodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =
Systemy liczbowe Dla każdej liczby naturalnej x Î N oraz liczby naturalnej p >= 2 istnieją jednoznacznie wyznaczone: liczba n Î N oraz ciąg cyfr c 0, c 1,..., c n-1 (gdzie ck Î {0, 1,..., p - 1}) taki,
Bardziej szczegółowoMatematyczna wieża Babel. 4. Ograniczone maszyny Turinga o językach kontekstowych materiały do ćwiczeń
Matematyczna wieża Babel. 4. Ograniczone maszyny Turinga o językach kontekstowych materiały do ćwiczeń Projekt Matematyka dla ciekawych świata spisał: Michał Korch 4 kwietnia 2019 1 Dodajmy kontekst! Rozważaliśmy
Bardziej szczegółowoOdwrotna Notacja Polska
Odwrotna Notacja Polska Odwrotna Notacja Polska w skrócie ONP) jest sposobem zapisu wyrażeń arytmetycznych. Znak wykonywanej operacji umieszczany jest po operandach, argumentach tzw. zapis postfiksowy).
Bardziej szczegółowoMetody Kompilacji Wykład 7 Analiza Syntaktyczna
Metody Kompilacji Wykład 7 Analiza Syntaktyczna Parsowanie Parsowanie jest to proces określenia jak ciąg terminali może być generowany przez gramatykę. Włodzimierz Bielecki WI ZUT 2/57 Parsowanie Dla każdej
Bardziej szczegółowoWzory Viete a i ich zastosowanie do uk ladów równań wielomianów symetrycznych dwóch i trzech zmiennych
Wzory Viete a i ich zastosowanie do uk ladów równań wielomianów symetrycznych dwóch i trzech zmiennych Pawe l Józiak 007-- Poje cia wste pne Wielomianem zmiennej rzeczywistej t nazywamy funkcje postaci:
Bardziej szczegółowo2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego
2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego Gramatyka Gramatyką G nazywamy czwórkę uporządkowaną G = gdzie: N zbiór symboli nieterminalnych, T zbiór symboli terminalnych, P zbiór
Bardziej szczegółowoWprowadzenie do maszyny Turinga
Wprowadzenie do maszyny Turinga Deterministyczna Maszyna Turinga (DTM) jest pewną klasą abstrakcyjnych modeli obliczeń. W tej instrukcji omówimy konkretną maszynę Turinga, którą będziemy zajmować się podczas
Bardziej szczegółowoSystemy liczbowe Plan zaję ć
Systemy liczbowe Systemy liczbowe addytywne (niepozycyjne) pozycyjne Konwersja konwersja na system dziesię tny (algorytm Hornera) konwersja z systemu dziesię tnego konwersje: dwójkowo-ósemkowa, ósemkowa,
Bardziej szczegółowoWyrażenie nawiasowe. Wyrażenie puste jest poprawnym wyrażeniem nawiasowym.
Wyrażenie nawiasowe Wyrażeniem nawiasowym nazywamy dowolny skończony ciąg nawiasów. Każdemu nawiasowi otwierającemu odpowiada dokładnie jeden nawias zamykający. Poprawne wyrażenie nawiasowe definiujemy
Bardziej szczegółowoScenariusz lekcji. Wojciech Dindorf Elżbieta Krawczyk
Scenariusz lekcji Czy światło ma naturę falową Wojciech Dindorf Elżbieta Krawczyk? Doświadczenie Younga. Cele lekcji nasze oczekiwania: Chcemy, aby uczeń: postrzegał doś wiadczenie jako ostateczne rozstrzygnię
Bardziej szczegółowoHierarchia Chomsky ego Maszyna Turinga
Hierarchia Chomsky ego Maszyna Turinga Języki formalne i automaty Dr inż. Janusz Majewski Katedra Informatyki Gramatyka Gramatyką G nazywamy czwórkę uporządkowaną gdzie: G = V skończony zbiór
Bardziej szczegółowoJęzyki formalne i automaty Ćwiczenia 1
Języki formalne i automaty Ćwiczenia Autor: Marcin Orchel Spis treści Spis treści... Wstęp teoretyczny... 2 Wprowadzenie do teorii języków formalnych... 2 Gramatyki... 5 Rodzaje gramatyk... 7 Zadania...
Bardziej szczegółowoMatematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Automat ze stosem Automat ze stosem to szóstka
Bardziej szczegółowoDZIAŁANIA NA UŁAMKACH DZIESIĘTNYCH.
DZIAŁANIA NA UŁAMKACH DZIESIĘTNYCH. Dodawanie,8 zwracamy uwagę aby podpisywać przecinek +, pod przecinkiem, nie musimy uzupełniać zerami z prawej strony w liczbie,8. Pamiętamy,że liczba to samo co,0, (
Bardziej szczegółowoJęzyki formalne i automaty Ćwiczenia 6
Języki formalne i automaty Ćwiczenia 6 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Wyrażenia regularne... 2 Standardy IEEE POSIX Basic Regular Expressions (BRE) oraz Extended
Bardziej szczegółowo1 Metody iteracyjne rozwi zywania równania f(x)=0
1 Metody iteracyjne rozwi zywania równania f()=0 1.1 Metoda bisekcji Zaªó»my,»e funkcja f jest ci gªa w [a 0, b 0 ]. Pierwiastek jest w przedziale [a 0, b 0 ] gdy f(a 0 )f(b 0 ) < 0. (1) Ustalmy f(a 0
Bardziej szczegółowoPARADYGMATY I JĘZYKI PROGRAMOWANIA. Analiza leksykalna i syntaktyczna. w- 5
PARADYGMATY I JĘZYKI PROGRAMOWANIA Analiza leksykalna i syntaktyczna. Treść 2 Wstęp Analiza leksykalna Analiza syntaktyczna Rekurencja zstępująca Parsery LL Parsery LL sterowane tablicą 3 Wstęp dobra książka
Bardziej szczegółowoInfo rmatyzacja Przedsiębiorstw
Info rmatyzacja Przedsiębiorstw Laboratorium 4 Moduł finansowo - księ gowy Plan zaję ć 1 Księ gowanie faktury VAT sprzedaży komputerów nabytych w pierwszej symulacji... 2 1.1 Definiowanie rejestru VAT...
Bardziej szczegółowoDef. Kod jednoznacznie definiowalny Def. Kod przedrostkowy Def. Kod optymalny. Przykłady kodów. Kody optymalne
Załóżmy, że mamy źródło S, które generuje symbole ze zbioru S={x, x 2,..., x N } z prawdopodobieństwem P={p, p 2,..., p N }, symbolom tym odpowiadają kody P={c, c 2,..., c N }. fektywność danego sposobu
Bardziej szczegółowoI. Zakładanie nowego konta użytkownika.
I. Zakładanie nowego konta użytkownika. 1. Należy wybrać przycisk załóż konto na stronie głównej. 2. Następnie wypełnić wszystkie pola formularza rejestracyjnego oraz zaznaczyć akceptację regulaminu w
Bardziej szczegółowoGramatyki rekursywne
Gramatyki bezkontekstowe, rozbiór gramatyczny eoria automatów i języków formalnych Dr inŝ. Janusz Majewski Katedra Informatyki Gramatyki rekursywne Niech będzie dana gramatyka bezkontekstowa G =
Bardziej szczegółowoUżytkowanie elektronicznego dziennika UONET PLUS.
Użytkowanie elektronicznego dziennika UONET PLUS. Po wejściu na stronę https://uonetplus.vulcan.net.pl/bialystok i zalogowaniu się na swoje konto (przy użyciu adresu e-mail podanego wcześniej wychowawcy
Bardziej szczegółowoPodstawowe działania w rachunku macierzowym
Podstawowe działania w rachunku macierzowym Marcin Detka Katedra Informatyki Stosowanej Kielce, Wrzesień 2004 1 MACIERZE 1 1 Macierze Macierz prostokątną A o wymiarach m n (m wierszy w n kolumnach) definiujemy:
Bardziej szczegółowoMetody Kompilacji Wykład 3
Metody Kompilacji Wykład 3 odbywa się poprzez dołączenie zasad(reguł) lub fragmentów kodu do produkcji w gramatyce. Włodzimierz Bielecki WI ZUT 2 Na przykład, dla produkcji expr -> expr 1 + term możemy
Bardziej szczegółowoTechnologie informacyjne: Arkusz kalkulacyjny
Wrocław, 11.05.2018 Technologie informacyjne: Arkusz kalkulacyjny Wydział Matematyki Politechniki Wrocławskiej Andrzej Giniewicz Dzisiaj na zajęciach... Podstawy korzystania z arkuszy kalkulacyjnych. 1/68
Bardziej szczegółowoPROE wykład 7 kontenery tablicowe, listy. dr inż. Jacek Naruniec
PROE wykład 7 kontenery tablicowe, listy dr inż. Jacek Naruniec Prosty kontener oparty na tablicach Funkcja dodawanie pojedynczego słonia do kontenera: 1 2 3 4 5 6 7 11 12 13 14 15 16 17 21 22 23 24 25
Bardziej szczegółowoPawe Karpi ski. Zdj cie Ratusza
Pawe Karpi ski Zdj cie Ratusza Pawe Karpi ski Zdj cie wn trza ratusza Dzielnicy Warszawa Bemowo Jacek Kwa niewski Obróbka techniczna i eksperymenty z perspektyw Grudzie 2007 Zdj cie wykonano technik sklejania
Bardziej szczegółowoWYRAŻENIA ALGEBRAICZNE
WYRAŻENIA ALGEBRAICZNE Wyrażeniem algebraicznym nazywamy wyrażenie zbudowane z liczb, liter, nawiasów oraz znaków działań, na przykład: Symbole literowe występujące w wyrażeniu algebraicznym nazywamy zmiennymi.
Bardziej szczegółowoGramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka
Gramatyki, wyprowadzenia, hierarchia Chomsky ego Teoria automatów i języków formalnych Dr inŝ. Janusz Majewski Katedra Informatyki Gramatyka Gramatyką G nazywamy czwórkę uporządkowaną gdzie: G =
Bardziej szczegółowoRuch w potencjale U(r)=-α/r. Zagadnienie Keplera Przybli Ŝ enie małych drgań. Wykład 7 i 8
Wykład 7 i 8 Zagadnienie Keplera Przybli Ŝ enie małych drgań Ruch w potencjale U(r)=-α/r RozwaŜ my ruch punktu materialnego w polu centralnym, o potencjale odwrotnie proporcjonalnym do odległo ś ci r od
Bardziej szczegółowoZadanie 1. (6 punktów) Słowo w nazwiemy anagramem słowa v jeśli w można otrzymać z v poprzez zamianę kolejności liter. Niech
Zadanie 1. (6 punktów) Słowo w nazwiemy anagramem słowa v jeśli w można otrzymać z v poprzez zamianę kolejności liter. Niech anagram(l) = {w : w jest anagaramem v dla pewnego v L}. (a) Czy jeśli L jest
Bardziej szczegółowoW tej lekcji omówimy mechanizmy za pomocą których jest możliwe wykonywanie działań w Excelu, czyli:
Formuły W tej lekcji omówimy mechanizmy za pomocą których jest możliwe wykonywanie działań w Excelu, czyli: pojęcie formuły budowanie i edycja formuł podstawowe działania takie jak: dodawanie, odejmowanie,
Bardziej szczegółowoMaszyna Turinga. Algorytm. czy program???? Problem Hilberta: Przykłady algorytmów. Cechy algorytmu: Pojęcie algorytmu
Problem Hilberta: 9 Czy istnieje ogólna mechaniczna procedura, która w zasadzie pozwoliłaby nam po kolei rozwiązać wszystkie matematyczne problemy (należące do odpowiednio zdefiniowanej klasy)? 2 Przykłady
Bardziej szczegółowoMatematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Gramatyki bezkontekstowe I Gramatyką bezkontekstową
Bardziej szczegółowoInstrukcja zamknięcia starego roku w KS-FKW. Ad.1 Okresy obrachunkowe
Instrukcja zamknięcia starego roku w KS-FKW 1. Okresy obrachunkowe. 2. Rok bilansowy a rozrachunki. 3. Zakończenie roku bilansowego. 4. Rozpoczęcie nowego roku bilansowego. Ad.1 Okresy obrachunkowe System
Bardziej szczegółowoNowa płatność Dodaj nową płatność. Wybierz: Płatności > Transakcje > Nowa płatność
Podręcznik Użytkownika 360 Księgowość Płatności Wprowadzaj płatności bankowe oraz gotówkowe, rozliczenia netto pomiędzy dostawcami oraz odbiorcami, dodawaj nowe rachunki bankowe oraz kasy w menu Płatności.
Bardziej szczegółowoBash i algorytmy. Elwira Wachowicz. 20 lutego
Bash i algorytmy Elwira Wachowicz elwira@ifd.uni.wroc.pl 20 lutego 2012 Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Bash i algorytmy 20 lutego 2012 1 / 16 Inne przydatne polecenia Polecenie Dziaªanie Przykªad
Bardziej szczegółowoSystem zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy
System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy modelowaniem, a pewien dobrze zdefiniowany sposób jego
Bardziej szczegółowo; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...
Tekst na niebiesko jest komentarzem lub treścią zadania. Zadanie. Dane są macierze: A D 0 ; E 0 0 0 ; B 0 5 ; C Wykonaj poniższe obliczenia: 0 4 5 Mnożenia, transpozycje etc wykonuję programem i przepisuję
Bardziej szczegółowoINSTRUKCJA DO PROGRAMU LICZARKA 2000 v 2.56
INSTRUKCJA DO PROGRAMU LICZARKA 2000 v 2.56 Program Liczarka 2000 służy do archiwizowania i drukowania rozliczeń z przeprowadzonych transakcji pieniężnych. INSTALACJA PROGRAMU Program instalujemy na komputerze
Bardziej szczegółowoOdtworzenie wywodu metodą wstępującą (bottom up)
Przeglądane wejśca od lewej strony do prawej L (k) Odtwarzane wywodu prawostronnego Wystarcza znajomosc "k" następnych symbol łańcucha wejścowego hstor dotychczasowych redukcj, aby wyznaczyc jednoznaczne
Bardziej szczegółowoPodstawy programowania w języku Visual Basic dla Aplikacji (VBA)
Podstawy programowania w języku Visual Basic dla Aplikacji (VBA) Instrukcje Język Basic został stworzony w 1964 roku przez J.G. Kemeny ego i T.F. Kurtza z Uniwersytetu w Darthmouth (USA). Nazwa Basic jest
Bardziej szczegółowoRegulamin prowadzenia rokowa po II przetargu na zbycie nieruchomo ci stanowi cych własno Gminy Strzy ewice
Zał ą cznik nr 1 do Zarz ą dzenia nr 18/08 Wójta Gminy StrzyŜ ewice z dnia 10. 03. 2008 roku Regulamin prowadzenia rokowa po II przetargu na zbycie nieruchomo ci stanowi cych własno Gminy Strzy ewice 1
Bardziej szczegółowoStosowanie, tworzenie i modyfikowanie stylów.
Stosowanie, tworzenie i modyfikowanie stylów. We wstążce Narzędzia główne umieszczone są style, dzięki którym w prosty sposób możemy zmieniać tekst i hurtowo modyfikować. Klikając kwadrat ze strzałką w
Bardziej szczegółowoSymfonia Produkcja Instrukcja instalacji. Wersja 2013
Symfonia Produkcja Instrukcja instalacji Wersja 2013 Windows jest znakiem towarowym firmy Microsoft Corporation. Adobe, Acrobat, Acrobat Reader, Acrobat Distiller są zastrzeżonymi znakami towarowymi firmy
Bardziej szczegółowoPRAWA ZACHOWANIA. Podstawowe terminy. Cia a tworz ce uk ad mechaniczny oddzia ywuj mi dzy sob i z cia ami nie nale cymi do uk adu za pomoc
PRAWA ZACHOWANIA Podstawowe terminy Cia a tworz ce uk ad mechaniczny oddzia ywuj mi dzy sob i z cia ami nie nale cymi do uk adu za pomoc a) si wewn trznych - si dzia aj cych na dane cia o ze strony innych
Bardziej szczegółowoKatarzyna Bereźnicka Zastosowanie arkusza kalkulacyjnego w zadaniach matematycznych. Opiekun stypendystki: mgr Jerzy Mil
Katarzyna Bereźnicka Zastosowanie arkusza kalkulacyjnego w zadaniach matematycznych Opiekun stypendystki: mgr Jerzy Mil 1 Działania na ułamkach Wyłączanie całości z dodatnich ułamków niewłaściwych Formuła
Bardziej szczegółowoBaza danych. Program: Access 2007
Baza danych Program: Access 2007 Bazę danych składa się z czterech typów obiektów: tabela, formularz, kwerenda i raport (do czego, który służy, poszukaj w podręczniku i nie bądź za bardzo leniw) Pracę
Bardziej szczegółowo10. Translacja sterowana składnią i YACC
10. Translacja sterowana składnią i YACC 10.1 Charakterystyka problemu translacja sterowana składnią jest metodą generacji przetworników tekstu języków, których składnię opisano za pomocą gramatyki (bezkontekstowej)
Bardziej szczegółowoInstrukcja obsługi Norton Commander (NC) wersja 4.0. Autor: mgr inż. Tomasz Staniszewski
Instrukcja obsługi Norton Commander (NC) wersja 4.0 Autor: mgr inż. Tomasz Staniszewski ITM Zakład Technologii Maszyn, 15.10.2001 2 1.Uruchomienie programu Aby uruchomić program Norton Commander standardowo
Bardziej szczegółowopobieramy pierwszą literę komunikatu i wypełniamy nią (wszystkie pozycje tą samą literą) bufor słownikowy.
komunikat do zakodowania: a a b a b b a b a c c a b a a a a a c a c b c b b c c a a c b a 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 przyjmujemy długość bufora słownikowego
Bardziej szczegółowoopracował: Patryk Besler
opracował: Patryk Besler Aby poprawnie uzupełnić szachownicę potrzebna nam będzie do tego funkcja Złącz teksty. Pamiętaj o zaznaczeniu odpowiedniej komórki Aby ją wybrać należy przejść do zakładki Formuły.
Bardziej szczegółowoMaszyna Turinga języki
Maszyna Turinga języki Teoria automatów i języków formalnych Dr inż. Janusz Majewski Katedra Informatyki Maszyna Turinga (1) b b b A B C B D A B C b b Q Zależnie od symbolu obserwowanego przez głowicę
Bardziej szczegółowoDefinicja macierzy Typy i właściwości macierzy Działania na macierzach Wyznacznik macierzy Macierz odwrotna Normy macierzy RACHUNEK MACIERZOWY
Transport, studia niestacjonarne I stopnia, semestr I Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Adam Wosatko Ewa Pabisek Czym jest macierz? Definicja Macierzą A nazywamy funkcję
Bardziej szczegółowoZmiany w programie LOKALE dotyczące sposobów naliczania opłat miesięcznych
Zmiany w programie LOKALE dotyczące sposobów naliczania opłat miesięcznych Spis treści 1 Tworzenie taryf globalnych...2 2 Tworzenie cen przedziałowych...3 2.1 Naliczanie od osoby (lub od powierzchni lokalu,
Bardziej szczegółowoO PROJEKCIE I WNIOSKU DLA POCZĄTKUJĄCYCH I TYCH, KTÓRZY CHCĄ UPORZĄDKOWAĆ WIEDZĘ MARCIN DADEL
O PROJEKCIE I WNIOSKU DLA POCZĄTKUJĄCYCH I TYCH, KTÓRZY CHCĄ UPORZĄDKOWAĆ WIEDZĘ MARCIN DADEL O PROJEKCIE I WNIOSKU DLA POCZĄTKUJĄCYCH I TYCH, KTÓRZY CHCĄ UPORZĄDKOWAĆ WIEDZĘ MARCIN DADEL Sieć SPLOT STOWARZYSZENIE
Bardziej szczegółowoEdytor tekstu MS Word 2010 PL. Edytor tekstu MS Word 2010 PL umożliwia wykonywanie działań matematycznych.
Edytor tekstu MS Word 2010 PL. Edytor tekstu MS Word 2010 PL umożliwia wykonywanie działań matematycznych. Edytor tekstu MS Word 2010 PL umożliwia wykonywanie działań matematycznych, pod warunkiem, że
Bardziej szczegółowoPODRĘCZNIK UŻYTKOWNIKA PEŁNA KSIĘGOWOŚĆ. Płatności
Płatności Odnotowuj płatności bankowe oraz gotówkowe, rozliczenia netto pomiędzy dostawcami oraz odbiorcami, dodawaj nowe rachunki bankowe oraz kasy w menu Płatności. Spis treści Transakcje... 2 Nowa płatność...
Bardziej szczegółowoPODSTAWY METROLOGII ĆWICZENIE 4 PRZETWORNIKI AC/CA Międzywydziałowa Szkoła Inżynierii Biomedycznej 2009/2010 SEMESTR 3
PODSTAWY METROLOGII ĆWICZENIE 4 PRZETWORNIKI AC/CA Międzywydziałowa Szkoła Inżynierii Biomedycznej 29/2 SEMESTR 3 Rozwiązania zadań nie były w żaden sposób konsultowane z żadnym wiarygodnym źródłem informacji!!!
Bardziej szczegółowo1. Rozwiązać układ równań { x 2 = 2y 1
Dzień Dziecka z Matematyką Tomasz Szymczyk Piotrków Trybunalski, 4 czerwca 013 r. Układy równań szkice rozwiązań 1. Rozwiązać układ równań { x = y 1 y = x 1. Wyznaczając z pierwszego równania zmienną y,
Bardziej szczegółowoAnaliza matematyczna i algebra liniowa Macierze
Analiza matematyczna i algebra liniowa Macierze Wojciech Kotłowski Instytut Informatyki Politechniki Poznańskiej email: imię.nazwisko@cs.put.poznan.pl pok. 2 (CW) tel. (61)665-2936 konsultacje: poniedziałek
Bardziej szczegółowoDzienniki pozalekcyjne, nauczania indywidualnego, świetlicowe
Dzienniki pozalekcyjne, nauczania indywidualnego, świetlicowe Zajęcia dodatkowe pozalekcyjne, zajęcia indywidualne, zajęcia świetlicowe i odnotowywanie wejść/wyjść uczniów do wszystkich tych zajęć niezbędne
Bardziej szczegółowoFUNKCJE LICZBOWE. x 1
FUNKCJE LICZBOWE Zbiory postaci {x R: x a}, {x R: x a}, {x R: x < a}, {x R: x > a} oznaczane sa symbolami (,a], [a, ), (,a) i (a, ). Nazywamy pó lprostymi domknie tymi lub otwartymi o końcu a. Symbol odczytujemy
Bardziej szczegółowoMatematyka A, klasówka, 24 maja zania zadań z kolokwium z matematyki A w nadziei, że pope lni lem wielu b le. rozwia
Matematyka A, klasówka, 4 maja 5 Na prośbe jednej ze studentek podaje zania zadań z kolokwium z matematyki A w nadziei, że pope lni lem wielu b le dów Podać definicje wektora w lasnego i wartości w lasnej
Bardziej szczegółowoINSTRUKCJA OBSŁUGI FORMULARZA ZAMÓWIEŃ
INSTRUKCJA OBSŁUGI FORMULARZA ZAMÓWIEŃ Formularz Microsoft Office Excel posiada wiele przydatnych funkcji, które usprawnią nam proces zamówienia produktów takich jak np. 1. Wyszukiwanie produktów 2. Podsumowanie
Bardziej szczegółowoZłożoność obliczeniowa zadania, zestaw 2
Złożoność obliczeniowa zadania, zestaw 2 Określanie złożoności obliczeniowej algorytmów, obliczanie pesymistycznej i oczekiwanej złożoności obliczeniowej 1. Dana jest tablica jednowymiarowa A o rozmiarze
Bardziej szczegółowoLogowanie do mobilnego systemu CUI i autoryzacja kodami SMS
Logowanie do mobilnego systemu CUI i autoryzacja kodami SMS Dostęp do strony logowania następuje poprzez naciśnięcie odpowiedniego dla rodzaju usługi linku dostępnego na stronie www.bsjaroslaw.pl.: lub
Bardziej szczegółowoINSTRUKCJA DO INTERNETOWEGO ROZKŁADU JAZDY
INSTRUKCJA DO INTERNETOWEGO ROZKŁADU JAZDY Internetowy rozkład jazdy służy do ułatwienia komunikacji między stacjami. Pokazuje jakie pociągi aktualnie kursują między stacjami i gdzie są. Pomaga nie dopuścić
Bardziej szczegółowoO MACIERZACH I UKŁADACH RÓWNAŃ
O MACIERZACH I UKŁADACH RÓWNAŃ Problem Jak rozwiązać podany układ równań? 2x + 5y 8z = 8 4x + 3y z = 2x + 3y 5z = 7 x + 8y 7z = Definicja Równanie postaci a x + a 2 x 2 + + a n x n = b gdzie a, a 2, a
Bardziej szczegółowoKarta adaptacyjna GSM
Proste zamontowanie karty adaptacyjnej GSM Karta adaptacyjna GSM Zainstalowanie karty SIM w karcie adaptacyjnej mini SIM Skrócona instrukcja obsługi Zainstalowanie karty SIM w karcie adaptacyjnej mini
Bardziej szczegółowoW dowolnym momencie można zmienić typ wskaźnika.
c++ Wskaźniki mają jeszcze jedną przydatną cechę. W dowolnym momencie można zmienić typ wskaźnika. Robi się to za pomocą operatora rzutowania. Najpierw zdefiniujemy sobie wsk_uniwersalny mogący pokazywać
Bardziej szczegółowo1. Operacje logiczne A B A OR B
1. Operacje logiczne OR Operacje logiczne są operacjami działającymi na poszczególnych bitach, dzięki czemu można je całkowicie opisać przedstawiając jak oddziałują ze sobą dwa bity. Takie operacje logiczne
Bardziej szczegółowoProgramy wykorzystywane do obliczeń
Przykłady: Programy wykorzystywane do obliczeń. Arkusze kalkulacyjne do obliczeń numerycznych: a. LibreOffice CALC (wolny dostęp) b. Microsoft EXCEL (komercyjny). Pakiety typu CAS (ang. Computer Algebra
Bardziej szczegółowoSzkolenie z zakresu obsługi kreatora składania wniosków Witkac.pl po nowelizacji ustawy o działalności pożytku publicznego i o wolontariacie
Szkolenie z zakresu obsługi kreatora składania wniosków Witkac.pl po nowelizacji ustawy o działalności pożytku publicznego i o wolontariacie 21 listopada 2016 r. 1 Dodawanie oferty pojedynczego podmiotu
Bardziej szczegółowoInstrukcja użytkownika TALENTplus Uniwersytet Medyczny we Wrocławiu
Dokument Instrukcja Użytkownika zawiera opis kroków, które należy wykonać w systemie TALENTplus w celu przygotowania się do Rozmowy Oceniającej Logowanie 1. Link do portalu: https://e-talent.umed.wroc.pl
Bardziej szczegółowoMicrosoft Management Console
Microsoft Management Console Konsola zarządzania jest narzędziem pozwalającym w prosty sposób konfigurować i kontrolować pracę praktycznie wszystkich mechanizmów i usług dostępnych w sieci Microsoft. Co
Bardziej szczegółowoPracownia internetowa w ka dej szkole (edycja 2004/2005)
Instrukcja numer SPD3/14_01/Z Pracownia internetowa w ka dej szkole (edycja 2004/2005) Opiekun pracowni internetowej cz. 3 Konfiguracja us ugi DHCP - zastrze enia (PD3) Niniejsza instrukcja ma na celu
Bardziej szczegółowoTWORZENIE NOWEGO KONTA
Instrukcja tworzenia nowego konta, logowania, dopisywania się do kursu i przypominania utraconego hasła na platformie e-learningowej projektu Polska szkoła za granicą. Wspieranie doskonalenia zawodowego
Bardziej szczegółowo