Commit 5e60d51b authored by Vladimír Štill's avatar Vladimír Štill
Browse files

doc: Polish userref

parent 6274170a
......@@ -24,15 +24,42 @@ Bílé znaky mezi jednotlivými identifikátory nemají na vyhodnocení automatu
Vyžaduje-li zadání úlohy kanonizaci automatu, použijte při pojmenovávání velká písmena anglické abecedy v lexikografickém pořadí. V případě potřeby více než 26 stavů následují vícemístné kombinace písmen: A, B, ..., Y, Z, AA, AB, ..., AZ, BA, BB, ..., ZY, ZZ, AAA, AAB, ... (jde o bijektivní poziční soustavu s bází 26).
### Příklady:
* `init=0 (0,a)=1 (0,b)=1 final={0,1}` (DFA s počátečním stavem `0`)
* `(q_0, a) = q_1 (q_0, b) = q_1 (q_1, a) = q_1 final = {q_1}` (DFA s počátečním stavem `q_0`)
* `init=in (in,a)={fst,snd} (fst,b)={snd} (snd,b)={fst} final={fst,snd}` (NFA s počátečním stavem `in`)
* `(0,ε)={1} final={}` (NFA s epsilon kroky, počátečním stavem `init` a žádnými koncovými stavy)
* `(A,"(a)")=B (A,b)=C`
`(B,"(a)")=A (B,b)=B`
`(C,"(a)")=C (C,b)=A`
`final={A}` (DFA s počátečním stavem `A`)
### Příklady
DFA s explicitně definovaným počátečním stavem `0`:
```
init=0
(0,a)=1 (0,b)=1
final={0,1}
```
DFA s implicitně definovaným počátečním stavem `q_0`:
```
(q_0, a) = q_1 (q_0, b) = q_1 (q_1, a) = q_1
final = {q_1}
```
NFA s počátečním stavem `in`:
```
init=in
(in,a)={fst,snd}
(fst,b)={snd}
(snd,b)={fst}
final={fst,snd}
```
NFA s epsilon kroky, počátečním stavem `0` a bez koncových stavů
```
(0,ε)={1} final={}
```
DFA s počátečním stavem `A` nad abecedou se znaky `(a)` a `b`:
```
(A,"(a)")=B (A,b)=C
(B,"(a)")=A (B,b)=B
(C,"(a)")=C (C,b)=A
final={A}
```
## Regulární výrazy
......@@ -79,13 +106,22 @@ Jako prázdné slovo (ε) lze psát `ε` nebo `\e`. Pravidla pro různé netermi
### Příklady
* `S -> aS | aA | a; A -> bA | aS`
* `A -> aB'`
`A -> bA`
`B' -> aB'`
`B' -> a`
* `<init> -> a<00X> | a<ab> | ε`
`<ab> -> b`
```
S -> aS | aA | a; A -> bA | aS
```
```
A -> aB'
A -> bA
B' -> aB'
B' -> a
```
```
<init> → a<00X> | a<ab> | ε
<ab> → b
```
## Bezkontextové gramatiky
......@@ -93,4 +129,13 @@ Jako prázdné slovo (ε) lze psát `ε` nebo `\e`. Pravidla pro různé netermi
Pro zápis CFG platí všechna pravidla jako pro regulární gramatiky kromě omezení tvaru pravé strany pravidel. Pravé strany pravidel nemusí být jen typu samotný terminál nebo dvojice terminál a neterminál, ale mohou obsahovat terminály i neterminály v libovolné kombinaci nebo ε.
### Příklad
* `S -> aAa | bBb | ε; A -> aAa | bab | bbb; B-> bBaBb | A | a`
```
S -> aAa | bBb | ε
A -> aAa | bab | bbb
B-> bBaBb | A | a
```
<!--
vim: spell spelllang=cs
-->
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment