.


:




:

































 

 

 

 





V . : {0,1}, {a,b,c,d}. . , , , - . - . {0,1} .

a b , ab. . +, →, : a+b → ab; ab+b2 → abb2. -, y , y, , , y . , x = dog, y = house, = doghouse.

V V , V. , , . (sentence) (word) "". s, |s|, . , banana . , ε (, ), , ε.

. V={1,2,3}. 2, 31 12331 V, a, 341 1b301 V.

, .

x y +. +?

) + . : +b→b ;

) : (x+y)+z = x+(y+z)=x+y+z. (+b)+c= +(b+c)=+b+c=bc;

) () , , +=. 0. , ε ( , , λ, Ω).

V2 = V+V 2, V;

V3 = V2 + V 3, V;

Vn= Vn-1 + V n, V;

:

V V+ = V ᴜ V2 ᴜ V3

ᴜ Vn-1 ᴜ Vn

V V* = ε ᴜ V ᴜ V2 ᴜ = ε ᴜ V+

, ' , . 2.3.

 
s (prefix) , s; , ban banana  
s (suffix) , s; , nn banana  
ϳ s (substring) , s; , nan banana. , . s s ε , s.  
, s - , , s s  
ϳ s (subsequence) - , ( ' ) s. , b banana
       

. 2.3. ,

.

(language) - . . Ø( ) {ε} (, ) . Pascal, (, , ) .

, - s s ε = ε s = s.

"", " " . , s=ε, i >0 s s-1s. ε s s, s1=s. ³, s2=ss, s3=sss ..

, . ', (. 2.4). , L0 {ε}, a L L-1L. , L L, -1 .

 

 

' (union) L L U M L U M = { s|s ϵ L s ϵ M }
(concatenation) L LM LM = { st|s ϵ L t ϵ M }
(Kleene closure); L L*.   L*= U L, i= 0, ∞ L* L
(positive closure). L+= U L, i= 1, ∞ L+ " L"

. 2.4.

2.2

L {, ,..., Z, , b,..., z}, D {0, 1, 2,..., 9}. L D . , L , , a D , . , , L D . , L D , . 2.4.

1. L U D .

2. LD , , .

3. L4 .

4. L * , ε.

5. L (L U D)* , .

6. D+ .

. , .

Pascal , ; , , . 5 2.2. , , . Pascal

letter(letter|digit)*

"", , letter , , .

. r L(r). , , r, L(r).

, V.

1. ε , {ε}, , .

2. V, , { }, , . , . , - .

3. , r s , L(r) L(s).

(r)|(s) , L(r) U L(s).

(r)(s) , L(r)L(s).

(r)* - , (L(r))*.

(r) , L(r).

, , .

. (1) (2) ; ε V, ' . (3) .

, .

1. * .

2. .

3. | (') .

()|((b)*()) | b*. , , b, .

2.3

V = { a,b }.

1. | b { ,b }.

2. ( | b)( | b) { , ab, ba, bb }, b
2. 򳺿 aa | ab | ba | bb.

3. * , {ε, , , ,... }.

4. ( | b)* ,
b, b. ( *| b *)*.

5. | *b , ,
, b.

r s , r s , r = s. , ( | b) = (b | ).

, . . 2.5 r, s t.

 

r | s = s | r |
r | (s | t) = (r | s)| t (rǀst |
(rs) t = r (st)
r (s | t) = rs | rt (s | t) r = sr | tr   |
ε r = r r ε = r   ε
r* = (r |ε) * ' * ε
r** = r* *

. 2.5.

2.2.4

, . V ,

d1 → r1, d2 → r2, d3 → r3, , dn → rn,

di ', ri VU{ d1,d2,...,di-1 }, . ri V , V - ri, (, ) . ri d j ≥ i, ri , .

, .

2.4

, Pascal , . :

letter A | B |... | Z | a | b | |z

digit 0 | 1 | |9

id letter(letter | digit)*

2.5

Pascal 5280, 39.37, 6.3364 1.894-4. :

digit 0 | 1 | |9

digits digit digit*

optional_fraction . digits|ε

optional_exponent (E(+| - | ε)digits) |ε

num digits optional_fraction optional_exponent

, optional_fraction , , ( ). optional_exponent , ' + - . , , 1. , 1.0.

2.2.5

, .

1. . + "
". r - , L (r), (r)+ , (L (r))+. , + . + , *.

r*=r+r+=rr* ' .

2. . ? " ". r? r |ε. r , (r)? - , L (r)U{ε}. , + ?, num 2.5

digit 0 | 1 | |9

digits digit +

optional_ffaction (.digits)?

optional_exponent (E(+| -)?digits)?

num digits optional_fraction optional_exponent

3. . [abc], a, b , a | b | . [a- z ] | b |... | z. , [A-Za-z] [A-Za-z0-9]*.

. , .

. , , . , - .

.

{ wcw | w b }

- , - .

( ) . ', .

() . , . , .

2.6

:

stmtif expr then stmt

| if expr then stmt else stmt

exprterm relop term

| term

termid

| num

stmt, expr term , , if, then, else, relop, id num , :

if → if

then → then

else → else

relop → < | <= | = | <> | > | >=

id → letter (letter | digit)*

num → digit+ (. digit+)? ( E (+ | -)? digit+)?

letter digit , .

if, then, else, , relop, id num. , , , . 2.5, num Pascal.

, " ", , . ws, :

ws → delim+

delim → blank | tab | newline

 

ws, . , , .

-
ws
if if
then then
else else
id id
num num
< relop LT
<= relop LE
= relop EQ
<> relop NE
> relop GT
>= relop GE

. 2.10.

, , . 2.10, , -. - LT,LE,EQ,NE, GT,GE.

ij

-, (transition diagram). ij 䳿, , . 2.1, , , . , forward. , .

(states). ' , (edges). , s, , , ' s. ̳ other - , .

, ( ).

start . 䳿, . , , , . , , .

. 2.11 >= >.

 

 

. 2.11. ij >= >

ij . 0, . , >, 6, ">". > >=. 6 . , =, 6 7, "=". other 8. , 7, , - , >=.

, > , , 8. , , .

, , . , forward , , . forward , , lexeme_beginning. , .

 

2.7

ij relop . 2.12. , . 2.11 .

 

 

. 2.12. ij ()

 

2.8

, , , , . . . 2.13 , , , , - .

. 2. 13. ij

, . . 2.10 if, then else . . , ' (. 2.13), gettoken() install_id() - . install_id() , . , , installed() 0. , install_id() . , , install_id() .

gettoken() . , ; id.

, .

. , .

 

. 2.14.ij Pascal

2.9

,

num digit* (. digit+)? (E(+ | -)? digit+)?

, digits fraction? exponent?, fraction exponent ' .

( , ). , , 12 12.3, 12.34. 25, 20 12 . 2.14, 12.34, , 12, 12.3 12.34 . ij 25, 20 12 digits, digits fraction digits fraction? exponent, 12, 20, 25.

19, 24 27 install_num(), . num
.

, , . , 1,< 14 22 . 2.14 "<". , 1, , 1.0< . , , .

. 2.14. , , ' ( ). - . ϳ, , , , .

2.10

2.6 ' , . 2.12-2.14. .

, ' . ws, , , - . ij , , .


, , ; .

, ,

. , , .





:


: 2015-11-05; !; : 717 |


:

:

- , .
==> ...

1972 - | 1764 -


© 2015-2024 lektsii.org - -

: 0.116 .