Bài giảng môn học Trình biên dịch - Chương 3: Phân tích từ vựng

10 13 0
Bài giảng môn học Trình biên dịch - Chương 3: Phân tích từ vựng

Đang tải... (xem toàn văn)

Thông tin tài liệu

begin laáp ñaày N kyø hieäu nhaäp vaøo nöûa beân traùi boä ñeäm chuyeån. p2 veà kyù töï taän cuøng beân traùi cuûa boä ñeäm end else p2 := p2 + 1;.[r]

(1)

CHƯƠNG 3

PHÂN TÍCH TỪ VỰNG 3.1 Vai trị cuả phân tích từ vựng

1 Token, mẫu, trị từ vựng

Baûng 3.1 Bảng danh biểu token

Token Trị từ vựng Ý nghĩa mẫu

const if then ralation num id literal const if then

< , < =, < >, = , > = 3.14, 2.5, 7.6 abc, ou, bc1…

‘abcef’

const if then

các toán tử quan hệ số

chuỗi gồm ký tự chữ số, bắt đầu ký tự chữ

(2)

Hình 3.1 Sự giao tiếp phân tích từ vựng phân tích cú pháp

3.2 CÁC TÍNH CHẤT CỦA TOKEN

3.3 CHỨA TẠM CHƯƠNG TRÌNH NGUỒN 1 Cặp đệm

Cấu tạo

Bộ phân tích từ vựng

Bảng danh biểu

Bộ phân tích CP Chương trình

nguồn token

(3)

A : = B * - eof

p1 p2

Hình 3.2 Cặp đệm Quy trình hoạt động

Giải thuật:

if p2 ranh giới nửa đệm then

begin lấp đầy N ký hiệu nhập vào nửa bên phải p2 := p2 + 1;

end

else if p2 tận bên phải đệm then

begin lấp đầy N kỳ hiệu nhập vào nửa bên trái đệm chuyển

(4)

2 Phương pháp cầm canh

A : = B * X EOF - 2 EOF EOF

N ký tự N ký tự

p1 p2

Hình 3.3 Cặp đệm theo phương pháp cầm canh

Giải thuật:

p2 := p2 + 1;

if p2 ^ eof then

if p2 ranh giới nửa đệm then begin

chất đầy N kỳ hiệu nhập vào nửa bên phải đệm; p2 := p2 +

(5)

else if p2 tận bên phải đệm then begin

lấp đầy N ký hiệu vào nử bên trái đệm; chuyển p2 đầu đệm

end

else /* dừng phân tích từ vựng */

3.4 Đặc tả token

Các quy tắc định nghiã biểu thức quy

1 ∈ biểu thức quy, biểu thị cho tập {∈} a ký hiệu thuộc Σ, biểu thị cho tập {a}

3 r s hai biểu thức quy, biểu thị cho L (r) L (s) thì: ø a) (r) | (s) biểu thức quy, biểu thị cho L(r) ∪ L(s)

b) (r) (s) biểu thức quy, biểu thị cho L(r) L(s) c) (r)* biểu thức quy, biểu thị cho (L(r))*

(6)

Thí dụ 3.1 Cho Σ = {a, b} a|b

2 (a| b) | (b| a) a*

Hai biểu thức quy tương đương r s, ký hiệu r = s 2 Định nghĩa quy

Nếu Σ tập ký hiệu bản, định nghiã quy chuỗi định nghiã có dạng: d1 → r1

……

dn → rn

Thí dụ 3.2 letter → A | B | …|Z | a| b |…| z digit → |1| …|

id → letter ( letter | digit)* Thí dụ 3.3 digit → | |… |

digits → digit digit*

optional_fraction → digits | ∈

(7)

3.5 Nhận dạng token

Thí dụ 3.4 Cho văn phạm G:

stmt → if exp then stmt

| if exp then stmt else stmt | ∈

exp → term relop term | term term → id | num

Định nghóa quy

if → if then → then else → else relop → < | <= | > | >= | <> | =

id → letter (letter | digit)*

num → digit+ (.digit+ | ∈) ( E ( + | - | ∈) digit+ | ∈ ) delim → blank | tab | newline

ws → delim+

(8)

3.6 Sơ đồ dịch 1 Miêu tả

0

8

Bắt đầu > = other

2

Start < = return (relop, LE)

6

8

> return (relop, NE)

4 return (relop, LT)

=

return (relop, EQ) >

other

6 Hình 3.4 Sơ đồ dịch cho >=

vaø =

0

= other

(relop, EQ)

return (relop, EQ) *

*

*

(9)

Löu ý:

- Phần khai báo bao gồm khai báo hằng, biến biểu thị định nghóa quy

- Phần quy tắc biên dịch phát biểu có dạng: p1 → {hành vi ngữ nghĩa 1}

p2 → {hành vi ngữ nghĩa 2} ……

pn → {hành vi ngữ nghĩa n} 3.8 Automat hữu hạn

1 Automat hữu hạn không tất định (NFA) Thí dụ: Cho NFA:

(10)

Ngày đăng: 10/03/2021, 14:24

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan