• Nie Znaleziono Wyników

Automat P SA

W dokumencie Index of /rozprawy2/11034 (Stron 49-55)

3.2 Automaty skªadowe automatu F DP LLA(k)

3.2.3 Automat P SA

Dla ustalonego j¦zyka L klasy DP LL(k) na alfabetem Σ zdeniujemy w sposób for-malny automat P SA (Process Saver Automaton). Jego zadaniem b¦dzie odbieranie da-nych wykonada-nych zada« analizy i zapisywanie ich na wªa±ciwej ta±mie moduªu MEM. Podobnie jak automat T DA, automat P SA czyta ta±m¦ P ST i je±li natra na status T lub C - wykonuje:

1. W przypadku statusu C zapis wska¹ników do danych wykonanego procesu ana-lizy na ta±m¦ MEM.T 1 lub MEM.T 2 (w zale»no±ci, która z ta±m w danym

Rysunek 3.5: Schemat automatu P SA

momencie peªni funkcje ta±my docelowej). Krok ten wykonywany jest, je±li na ta±mie docelowej jest jeszcze miejsce do danych kolejnego procesu.

2. Wypisanie na wyj±cie OUT P UT automatu danych procesu analizy. Dzieje si¦ tak w jednym z trzech przypadków:

- dany parser z puli po przetworzeniu zadania osi¡gn¡ª stan terminalny (ACC,

ERR), (status T , term_info=ACC/ERR),

- dalsza analiza zostaªa porzucona ze wzgl¦du na zbyt niska warto±¢ funkcji stopu analizy (status T , term_info=STOP_FUNC_VAL_TOO_LOW),

- na ta±mie docelowej osi¡gni¦to znak ko«ca ta±my, czyli nie ma ju» miejsca do za-pisu danych kolejnego proces (status C, term_info=MAX_NO_PROC_EXCEEDED).

3.2.3.1 Struktury danych automatu P SA

Automat P SA, podobnie jak automat T DA, korzysta z nast¦puj¡cych struktur danych (zdeniowanych wcze±niej):

2. ta±m MEM.T 1 i MEM.T 2 do zapisu danych zako«czonych procesów analizy, 3. struktury danych ST AT E przechowuj¡cej aktualny stan automatu.

3.2.3.2 Denicja automatu P SA DEFINICJA 3.4

Automatem P SA (Process Saver Automaton) nazywamy nast¦puj¡c¡ trójk¦: (Q, Γ, Ω)

gdzie:

• Q = {Q1, Q2, Q3, Q4, Q5, Q6, QF} sko«czonym zbiorem stanów automatu T DA ze stanem Q1 jako pocz¡tkowym,

• Γ zbiorem wska¹ników do danych procesów analizy (alfabet ta±m MEM.T 1 i

M EM.T 2),

• Ω = {I, W, T, C, ⊥} jest sko«czonym zbiorem symboli (alfabet ta±my P ST ). 3.2.3.3 Konguracja automatu P SA

Konguracj¡ automatu P SA b¦dziemy nazywa¢ czwórk¦:

(Q, M EM.T 1, M EM.T 2, P ST ) ∈ {Q1, Q2, Q3, Q4, Q5, Q6, QF} × Γ?× Γ?× Ω?.

Pole Konguracja

inicjalna Domena Opis

Q Q1

{Q1, Q2, Q3, Q4,

Q5, Q6, QF} Bie»¡cy stan automatu

M EM.T 1 ↑ 10 · · · 0⊥ Γ? Ta±ma zawieraj¡ca dane aktualnie prowadzonych procesów analizy. Strzaªka oznacza element ta±my znajduj¡cy si¦ aktualnie pod gªowic¡ zapisuj¡c¡.

M EM.T 2 ↑ 10 · · · 0⊥ Γ? Ta±ma zawieraj¡ca dane aktualnie prowadzonych procesów analizy. Strzaªka oznacza element ta±my znajduj¡cy si¦ aktualnie pod gªowic¡ zapisuj¡c¡.

P ST ↑ I · · · I⊥ ? Ta±ma zawieraj¡ca statusy pracy parserów z puli

P P A. Strzaªka oznacza element ta±my znajduj¡cy si¦ aktualnie pod gªowic¡ czytaj¡c¡.

3.2.3.4 Funkcja przej±cia automatu P SA

Dla automatu P SA na zbiorze konguracji zdeniujemy funkcj¡ przej±cia. Z ka»dym przej±ciem mi¦dzy dwoma konguracjami mo»e by¢ zwi¡zana akcja dwojakiego rodzaju: 1. zapisanie wska¹nika do danych parsera na wªa±ciw¡ ta±m¦ MEM.T 1 lub

M EM.T 2 (w zale»no±ci od stanu),

2. zako«czenie danej ±cie»ki analizy wraz z wypisaniem na wyj±cie gªównego auto-matu danych procesu. Zdarzenie to mo»e nast¡pi¢ wskutek:

a) wej±cia wªa±ciwego parsera w stan terminalny ACC lub ERR, b) zbyt niskiej warto±ci funkcji stopu analizy,

c) osi¡gni¦cia ko«ca wªa±ciwej ta±my MEM.T ∗. (oznacza to przekroczenie do-puszczalnej liczby aktywnych procesów).

3.2.3.4.1 Pod gªowic¡ ta±my P ST znajduje si¦ jeden z symboli I, W lub ⊥ Je±li pod gªowic¡ automatu P SA ta±my PST jest symbol I, W lub ⊥, wtedy gªowica przesuwa si¦ do nast¦pnego parsera, chyba, »e pod gªowic¡ jest znak ko«ca ta±my, wtedy gªowica ustawiana jest na pierwsz¡ komórk¦ ta±my P ST . W takim wypadku gªowica ta±my MEM.T 1 (odpowiednio MEM.T 2) pozostaje na uprzedniej pozycji, a stan automatu P SA nie ulega zmianie. Z powy»sz¡ zmian¡ konguracji nie jest powi¡zana

»adna akcja. Poni»sze tabele zawieraj¡ mo»liwe warianty zmiany konguracji w opisanej powy»ej sytuacji.

Q M EM.T 1 / MEM.T 2 P ST AKCJ A

Q1/Q2/Q5 pr1· · · ↑ pri· · · prn/  par1· · · ↑ parjparj+1· · · parm BRAK

Q1/Q2/Q5 pr1· · · ↑ pri· · · prn/  par1· · · parj↑ parj+1· · · parm

Q M EM.T 1 / MEM.T 2 P ST AKCJ A

Q1/Q2/Q5 pr1· · · ↑ pri· · · prn/  par1· · · parm↑ ⊥ BRAK

Q1/Q2/Q5 pr1· · · ↑ pri· · · prn/  ↑ par1· · · parm

Q M EM.T 1 / MEM.T 2 P ST AKCJ A

Q3/Q4/Q6  / pr1· · · ↑ pri· · · prn par1· · · ↑ parjparj+1· · · parm BRAK

Q3/Q4/Q6  / pr1· · · ↑ pri· · · prn par1· · · parj↑ parj+1· · · parm

Q M EM.T 1 / MEM.T 2 P ST AKCJ A

Q3/Q4/Q6  / pr1· · · ↑ pri· · · prn par1· · · parm↑ ⊥ BRAK

Q3/Q4/Q6  / pr1· · · ↑ pri· · · prn ↑ par1· · · parm

3.2.3.4.2 Pod gªowic¡ ta±my P ST znajduje si¦ jeden z symboli C (dane procesu do zapisania) lub T (proces do zako«czenia)

Je±li pod gªowic¡ automatu P SA ta±my PST jest symbol C (komórka park.status), oznacza to, »e wska¹nik do danych bie»¡cego parsera powinny zosta¢ zapisane na ta±mie

M EM.T 1 (MEM.T 2 odpowiednio). Poni»ej opisane s¡ mo»liwe warianty tej sytuacji. 3.2.3.4.3 Zapis kolejnego procesu na ta±mie MEM.T ∗. Je±li na ta±mie

M EM.T 1(MEM.T 2 odpowiednio) jest wolne miejsce, wtedy wska¹niki do danych pro-cesu wykonanego przez j-ty parser zostan¡ zapisane na ta±mie MEM.T 1 (MEM.T 2 odpowiednio). Nast¦pnie status j-tego parsera na ta±mie P ST zostanie ustawiony na warto±¢ I. Po wykonaniu tej czynno±ci, gªowice ta±m P ST oraz MEM.T 1 (MEM.T 2 odpowiednio) zostaj¡ przesuni¦te o jedn¡ komórk¦ w prawo.

Q M EM.T 1/ MEM.T 2 P ST AKCJ A

Q1/Q2/Q5 pr1· · · ↑ pripri+1· · · prn/  par1· · · ↑ parjparj+1· · · parm

Je±li parj.status = C, to:

pri:= parj.dpd parj.status := I

Q1/Q5/Q5 pr1· · · pri↑ pri+1· · · prn/  par1· · · parj↑ parj+1· · · parm

Je±li parj.status = T, to:

P R_T ERM :

Q M EM.T 1/ MEM.T 2 P ST AKCJ A

Q1/Q2/Q5 pr1· · · ↑ prn/  par1· · · ↑ parjparj+1· · · parm

Je±li parj.status = C, to:

pri:= parj.dpd parj.status := I

Q1/Q5/Q5 pr1· · · prn↑ ⊥/  par1· · · parj↑ parj+1· · · parm

Je±li parj.status = T, to:

P R_T ERM :

T ERM →OUTPUT

Q M EM.T 1/ MEM.T 2 P ST AKCJ A

Q3/Q4/Q6  / pr1· · · ↑ pripri+1· · · prn par1· · · ↑ parjparj+1· · · parm

Je±li parj.status = C, to:

pri:= parj.dpd parj.status := I

Q3/Q6/Q6  / pr1· · · pri↑ pri+1· · · prn par1· · · parj↑ parj+1· · · parm

Je±li parj.status = T, to:

P R_T ERM :

T ERM →OUTPUT

Q M EM.T 1/ MEM.T 2 P ST AKCJ A

Q3/Q4/Q6  / pr1· · · ↑ prn par1· · · ↑ parjparj+1· · · parm

Je±li parj.status = C, to:

pri:= parj.dpd parj.status := I

Q3/Q6/Q6  / pr1· · · prn↑ ⊥ par1· · · parj↑ parj+1· · · parm

Je±li parj.status = T, to:

P R_T ERM :

T ERM →OUTPUT

Akcja T ERM : P R_T ERM →OUTPUT oznacza wypisanie wszystkich danych procesu wykonywanego przez j-ty parser (ten, który znajduje si¦ pod gªowic¡ na ta±mie

P ST) na wyj±cie automatu F DP LLA(k).

Zapis kolejnego procesu - na wªa±ciwej ta±mie MEM.T ∗ osi¡gni¦to znak ko«ca ta±my

Je±li na ta±mie MEM.T 1 (MEM.T 2 odpowiednio) nie ma ju» wolnego miejsca, dany proces zostanie zako«czony z odpowiedni¡ informacj¡. Oznacza to wypisanie wszystkich danych procesu na wyj±cie automatu OUT P UT . Nast¦pnie status j-parsera na ta±mie

P ST zostanie ustawiony na warto±¢ I. Po wykonaniu tej akcji gªowica ta±my P ST zostaje przesuni¦ta i jedn¡ komórk¦ w prawo.

Q M EM.T 1/ MEM.T 2 P ST AKCJ A

Q1/Q2/Q5 pr1· · · prn↑ ⊥/  par1· · · ↑ parjparj+1· · · parm T ERM :

M AX_NO_P ROC_EXC

Q1/Q5/Q5 pr1· · · prn↑ ⊥/  par1· · · parj↑ parj+1· · · parm OUTPUT

Q M EM.T 1/ MEM.T 2 P ST AKCJ A

Q3/Q4/Q6  / pr1· · · prn↑ ⊥ par1· · · ↑ parjparj+1· · · parm T ERM :

M AX_NO_P ROC_EXC

Akcja T ERM : MAX_NO_P ROC_EXC →OUTPUT oznacza wypisanie wszystkich danych procesu wykonywanego przez j-ty parser (ten, który znajduje si¦ pod gªowic¡ na ta±mie P ST ) na wyj±cie automatu F DP LLA(k).

3.2.3.4.4 Kolejna iteracja analizy ta±my P ST (ta±ma P ST jest czytana od pocz¡tku) Je±li pod gªowic¡ na ta±mie P ST znajduje si¦ znak ko«ca ta±my, wtedy gªowica przesuwana jest na pocz¡tek ta±my P ST , wi¡»e si¦ to ze zmian¡ statusów automatu P SA (Q5 → Q2 (odpowiednio Q6 → Q4)). Gªowica na ta±mie MEM.T 1 (MEM.T 2 odpowiednio) pozostaje w uprzedniej pozycji. Z t¡ zmian¡ konguracji nie jest powi¡zana »adna akcja.

Q M EM.T 1/ MEM.T 2 P ST AKCJ A

Q5 pr1· · · ↑ pri· · · prn/  par1· · · parm↑ ⊥ BRAK

Q2 pr1· · · ↑ pri· · · prn/  ↑ par1· · · parm

Q M EM.T 1/ MEM.T 2 P ST AKCJ A

Q6  / pr1· · · ↑ pri· · · prn par1· · · parm↑ ⊥ BRAK

Q4  / pr1· · · ↑ pri· · · prn ↑ par1· · · parm

Zako«czenie zapisu procesów (gotowo±¢ do rozpocz¦cia analizy kolejnego prymitywu rozmytego)

Je±li pod gªowic¡ na ta±mie P ST znajduje si¦ znak ko«ca ta±my i automat P SA jest w stanie Q2(odpowiednio Q4), oznacza to, »e zapisano ju» dane wszystkich zada« analizy przydzielonych w danej iteracji i mo»na przej±¢ do analizy kolejnego prymitywu rozmytego. Oznacza to zmian¦ stanu z Q3(odpowiednio Q1). Z t¡ zmian¡ konguracji nie jest powi¡zana »adna akcja.

Q M EM.T 1/ MEM.T 2 P ST AKCJ A

Q2 pr1· · · ↑ pri· · · prn/  par1· · · parm↑ ⊥ BRAK

Q3 pr1· · · ↑ pri· · · prn/  ↑ par1· · · parm

Q M EM.T 1/ MEM.T 2 P ST AKCJ A

Q4  / pr1· · · ↑ pri· · · prn par1· · · parm↑ ⊥ BRAK

Q1  / pr1· · · ↑ pri· · · prn ↑ par1· · · parm

W dokumencie Index of /rozprawy2/11034 (Stron 49-55)

Powiązane dokumenty