1. Trang chủ
  2. » Địa lí lớp 6

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 14 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 114,75 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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]

Trang 1

CHƯƠNG 3 PHÂN TÍCH TỪ VỰNG

3.1 Vai trò cuả bộ phân tích từ vựng

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

Bảng 3.1 Bảng danh biểu của token

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ệ hằng số bất kỳ chuỗi gồm ký tự chữ và số,

bắt đầu là ký tự chữ là chuỗi ký tự bất kỳ nằm

giữa 2 dấu ‘

Trang 2

Hình 3.1 Sự giao tiếp giữa bộ phân tích từ vựng và bộ 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 bộ đệ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

yêu cầu token

Trang 3

A : = B * - 2 eof

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

Giải thuật:

if p2 ở ranh giới một nửa bộ đệm then

begin lấp đầy N ký hiệu nhập mới vào nửa bên phải

p2 := p2 + 1;

end else if p2 ở tận cùng bên phải bộ đệm then

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

chuyển

p2 về ký tự tận cùng bên trái của bộ đệm end else p2 := p2 + 1;

Trang 4

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

Hình 3.3 Cặp bộ đệ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 một nửa bộ đệm then

begin

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

p2 := p2 + 1

end

Trang 5

else if p2 ở tận cùng bên phải bộ đệm then

begin

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

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

3.4 Đặc tả token

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

1 ∈ là biểu thức chính quy, biểu thị cho tập {∈}

2 a là ký hiệu thuộc Σ, biểu thị cho tập {a}

3 r và s là hai biểu thức chính quy, biểu thị cho L (r) và L (s) thì:

ø a) (r) | (s) là biểu thức chính quy, biểu thị cho L(r) ∪ L(s)

b) (r) (s) là biểu thức chính quy, biểu thị cho L(r) L(s)

c) (r)* là biểu thức chính quy, biểu thị cho (L(r))*

d) r là biểu thức chính quy, biểu thị cho L(r)

Trang 6

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

1 a|b

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

3 a*

Hai biểu thức chính quy tương đương r và s, ký hiệu r = s

2 Định nghĩa chính quy

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

……

dn → rn

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

digit → 0 |1| …| 9

id → letter ( letter | digit)*

Thí dụ 3.3 digit → 0 | 1 |… | 9

digits → digit digit*

optional_fraction → digits | ∈ optional_exponent → (E (+| - |∈) digits) | ∈

Trang 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 chính quy

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

id → letter (letter | digit)*

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

ws → delim+

Từ định nghĩa chính quy ta xây dựng bảng mẫu cho token như ở bảng 3.3 trang 74

Trang 8

3.6 Sơ đồ dịch

1 Miêu tả

8

other

2 3

8

> return (relop, NE)

4 return (relop, LT)

5

=

return (relop, EQ)

>

other

và =

=

other

(relop, EQ) return (relop, EQ)

*

*

*

Hình 3.5 Sơ đồ dịch nhận dạng token relop

Trang 9

Lưu ý:

- Phần khai báo bao gồm khai báo hằng, biến biểu thị và các định nghĩa chính quy

- Phần quy tắc biên dịch là các 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:

Tập trạng thái S = {0, 1,2, 3}; Σ = {a, b}; Trạng thái bắt đầu so = 0; Tập trạng thái kết thúc F = {3}

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

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w