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

doc: Polish userref

parent 6274170a
Loading
Loading
Loading
Loading
+62 −17
Original line number Original line Diff line number Diff line
@@ -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).
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:
### 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`)
DFA s explicitně definovaným počátečním stavem `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)
init=0
* `(A,"(a)")=B (A,b)=C`  
(0,a)=1 (0,b)=1
  `(B,"(a)")=A (B,b)=B`  
final={0,1}
  `(C,"(a)")=C (C,b)=A`  
```
  `final={A}` (DFA s počátečním stavem `A`)

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
## Regulární výrazy


@@ -79,13 +106,22 @@ Jako prázdné slovo (ε) lze psát `ε` nebo `\e`. Pravidla pro různé netermi




### Příklady
### Příklady
* `S -> aS | aA | a; A -> bA | aS`

* `A -> aB'`  
```
  `A -> bA`  
S -> aS | aA | a; A -> bA | aS
  `B' -> aB'`  
```
  `B' -> a`

* `<init> -> a<00X> | a<ab> | ε`  
```
  `<ab> -> b`
A -> aB'
A -> bA
B' -> aB'
B' -> a
```

```
<init> → a<00X> | a<ab> | ε
<ab> → b
```




## Bezkontextové gramatiky
## 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 ε.
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
### 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
-->