Rozšířené formáty
textových souborů s příponou TI2
pro datovou reprezentaci objektů
Deterministický konečný automat (rozpoznávací)
DKAR# // Typ souboru
6 // Počet prvků množiny stavů, stavy jsou pak implicitně S1,S2,S3,S4,S5,S6
7 // Počet prvků množiny vstupů, vstupy jsou pak implicitně 1, 2, 3, 4, 5, 6, -7
// Přechodová tabulka bude mít 6 řádků, v každém bude 7 stavů oddělených mezerami
S1# S1 S3 S1 S1 S2 S3 S5
S2# S1 S3 S4 S1 S1 S2 S5
S3# S1 S1 S2 S3 S4 S1 S5
S4# S1 S3 S6 S1 S1 S2 S4
S5# S3 S4 S1 S1 S2 S2 S4
S6# S1 S4 S2 S5 S4 S3 S4
S4 // Počáteční stav
3 S1 S3 S5 // Počet koncových stavů a koncové stavy
Deterministický konečný automat (klasifikační)
DKAK# // Typ souboru
6// Počet prvků množiny stavů, stavy jsou pak implicitně S1,S2,S3,S4,S5,S6
7// Počet prvků množiny vstupů, vstupy jsou pak implicitně 1, 2, 3, 4, 5, 6, 7
// Přechodová tabulka bude mít 6 řádků, v každém bude 7 stavů oddělených mezerami
S1# S1 S3 S1 S1 S2 S3 S5
S2# S1 S3 S4 S1 S1 S2 S5
S3# S1 S1 S2 S3 S4 S1 S5
S4# S1 S3 S4 S1 S1 S2 S4
S5# S3 S4 S1 S1 S2 S6 S4
S6# S1 S4 S2 S5 S4 S3 S4
S4 // Počáteční stav
3 // Počet bloků rozkladu
3 S1 S4 S2 // Počet stavů v prvním bloku rozkladu a stavy v prvním bloku rozkladu
1 S3 // Počet stavů v prvním bloku rozkladu a stavy v prvním bloku rozkladu
2 S5 S6 // Počet stavů v prvním bloku rozkladu a stavy v prvním bloku rozkladu
Deterministický konečný automat (s výstupní funcí Mealyho)
DKAME# // Typ souboru
6 // Počet prvků množiny stavů, stavy jsou pak implicitně S1, S2, S3, S4, S5, S6
7 // Počet prvků množiny vstupů, vstupy jsou pak implicitně 1,2,3,4,5,6,7
// Přechodová tabulka bude mít 6 řádků, v každém bude 7 stavů oddělených mezerami
S1# S1 S3 S1 S1 S2 S3 S5
S2# S1 S3 S4 S1 S1 S2 S5
S3# S1 S1 S2 S3 S4 S1 S5
S4# S1 S3 S4 S1 S1 S2 S4
S5# S3 S4 S1 S1 S2 S6 S4
S6# S1 S4 S2 S5 S4 S3 S4
S4 // Počáteční stav
6 // Počet prvků množiny výstupů, výstupy jsou pak implicitně 1,2,3,4,5,6
// Výstupní funkce má 6 řádků, v každém bude 7 stavů oddělených mezerami
S1# 1 5 6 3 4 2 3
S2# 5 6 3 2 4 1 6
S3# 4 3 2 6 1 5 4
S4# 5 4 2 6 3 1 1
S5# 5 2 2 3 6 4 2
S6# 5 6 2 2 2 4 3
Deterministický konečný automat (s výstupní funkcí Moorův)
DKAMO# // Typ souboru
6 // Počet prvků množiny stavů, stavy jsou pak implicitně S1, S2, S3, S4, S5, S6
7 // Počet prvků množiny vstupů, vstupy jsou pak implicitně 1,2,3,4,5,6,7
// Přechodová tabulka bude mít 6 řádků, v každém bude 7 stavů oddělených mezerami
S1# S1 S3 S1 S1 S2 S3 S5
S2# S1 S3 S4 S1 S1 S2 S5
S3# S1 S1 S2 S3 S4 S1 S5
S4# S1 S3 S4 S1 S1 S2 S4
S5# S3 S4 S1 S1 S2 S6 S4
S6# S1 S4 S2 S5 S4 S3 S4
S4 // Počáteční stav
4 // Počet prvků množiny výstupů, výstupy jsou pak implicitně 1,2,3,4
// Tabulka výstupní funkce má pro každý stav jeden výstupní. Výstupy postupně přísluší stavům S1, S2, S3, S4, S5, S6
S1#2
S2#1
S3#1
S4#4
S5#4
S6#1
Nedeterministický konečný automat (rozpoznávací)
NKAR# // Typ souboru
6 // Počet prvků množiny stavů, stavy jsou pak implicitně S1, S2, S3, S4, S5, S6
7 // Počet prvků množiny vstupů, vstupy jsou pak implicitně 1,2,3,4,5,6,7
// Přechodová tabulka bude mít 6 řádků, v každém bude 7 nebo 8 množin stavů oddělených mezerami; I jednoprvkové množiny lze psát do množinových závorek, ale není to nutné, programy musí být schopny pracovat s oběma variantami, případná osmá množina představuje hodnotu přechodové funkce pro prázdný řetězec, který budeme kódovat jako $
S1# {S1 S2 S3} {S3 S1} S1 S1 S2 S3 S6
S2# S1 S3 S4 S1 S1 S2 S5
S3# S1 S1 S2 S3 S4 S1 S5
S4# S1 S3 S4 S1 S1 S2 S4
S5# S3 S4 S1 S1 S2 S2 S4
S6# S1 S4 S1 {S2 S3 S4} S5 S6 {S5 S6}
2 S4 S1 // Počet počátečních stavů, počáteční stavy
3 S1 S3 S5 // Počet koncových stavů a koncové stavy
Gramatika obecná
G# // Typ souboru
2
// Počet prvků množiny neterminálních symbolů, neterminály
jsou pak implicitně
// N1, N2
2
// Počet prvků množiny terminálních symbolů, výstupy jsou pak
implicitně t1, t2
// prázdný řetězec budeme kódovat jako $
N1 // Počáteční symbol
// Přepisovací pravidla
t1t1N1 -> t1t1N2 | t2t1N2 | $
t1N2t1 -> t1t1N1 | t2t1N2 | $
Gramatika typu 3 pravá
G3P# // Typ souboru
3
// Počet prvků množiny neterminálních symbolů, neterminály
jsou pak implicitně
// N1,N2, N3
3
// Počet prvků množiny terminálních symbolů, výstupy jsou pak
implicitně t1, t2, t3
// prázdný řetězec budeme kódovat jako $
N1 // Počáteční symbol
// Přepisovací pravidla
N1 -> t1t1N2 | t2t3N2 | $
N2 -> t1t1N1 | t3t1N2
N3 -> t3t3t3 | $
Gramatika typu 3 pravá v regulárním tvaru
G3PR# // Typ souboru
2 // Počet prvků množiny
neterminálních symbolů, neterminály jsou pak implicitně
// N1,N2
3 // Počet prvků množiny
terminálních symbolů, terminály jsou pak implicitně t1, t2, t3
// prázdný řetězec budeme kódovat jako $
N1 // Počáteční symbol
// Přepisovací pravidla
N1 -> t1N2 | t3N1 | $
N2 -> t1N1 | t3N2 | $
Gramatika typu 3 levá
G3L# // Typ souboru
4
// Počet prvků množiny neterminálních symbolů, neterminály
jsou pak implicitně
// N1,N2, N3
4
// Počet prvků množiny terminálních symbolů, výstupy jsou pak
implicitně t1, t2, t3
// prázdný řetězec budeme kódovat jako $
N1 // Počáteční symbol
// Přepisovací pravidla
N1 -> N2 t1t1 | N2 t2t3 | $
N2 -> N1 t1t1 | N2 t3t1
N3 -> t3t3t3 | $
Gramatika typu 3 levá v regulárním tvaru
G3LR# // Typ souboru
2 // Počet prvků množiny
neterminálních symbolů, neterminály jsou pak implicitně
// N1,N2
3 // Počet prvků množiny
terminálních symbolů, terminály jsou pak implicitně t1, t2, t3
// prázdný řetězec budeme kódovat jako $
N1 // Počáteční symbol
// Přepisovací pravidla
N1 -> N2 t1 | N1 t3 | $
N2 -> N1 t1 | N2 t3 | $