1. Trang chủ
  2. » Văn Hóa - Nghệ Thuật

Bài giảng môn học Trình biên dịch - Chương 6: Xử lí ngữ nghĩa

7 14 0

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

THÔNG TIN TÀI LIỆU

Nội dung

Ñeå thöïc hieän xöû lyù ngöõ nghóa trong quaù trình phaân tích cuù phaùp, chuùng ta seõ duøng moät stack ñaëc bieät goàm caùc phaàn:. A: kyù hieäu vaên phaïm (töôïng tröng cho moät danh [r]

(1)

XỬ LÝ NGỮ NGHĨA

Xử lý ngữ nghĩa có hai cách: kiểm tra tĩnh (static check) kiểm tra động (dynamic check)

Trong chương bàn đến kiểm tra ngữ nghĩa tĩnh Xử lý ngữ nghĩa tĩnh bao gồm:

1 Truyeàn thuộc tính Kiểm tra kiểu

3 Kiểm tra trình tự điều khiển Kiểm tra tính

5 Kiểm tra mối liên hệ tên

(2)

Bộ phân

tích cú pháp ngữ nghĩaBộ xử lý Sinh mãtrung gian chuỗi

token

cây cú pháp

cây cú pháp

trung gian

Hình 6.1 Vị trí xử lý ngữ nghĩa.

6.1 Truyền thuộc tính 1 Mã trung gian

Mã trung gian có nhiều loại: mã cambridge, mã Balan ngược, mã tam (triple code), mã tứ (quadruple code)

Bộ tứ cho biểu thức số học

Dạng tổng quát: <toán tử> (<tác tố 1>, <tác tố 2>, <kết quả>) Một cách biểu thị biến tạm bảng danh biểu:

Tên:rỗng Loại:

Kiểu liệu: tùy theo kiểu toán hạng tham gia phép toán

(3)

JMP (i, 0, 0) nhảy đến tứ có số i

JPG (i, p1, p2) nhảy đến tứ i toán hạng thứ lớn toán hạng hai

as1 (p1, p2, 0) gán trị p1 cho p2 p2 biến đơn

FLT (p1, p2, 0) Đổi trị p1 thành số thực, gán sang p2 FIX (p1, p2, 0) Đổi trị p1 thành số nguyên, gán sang p2

6.2 Xử lý ngữ nghĩa với phân tích cú pháp từ lên

1 Vấn đề truyền thuộc tính

Thí dụ 6.1. Chúng ta có văn phạm G

<assign stmt> → id := <expr>

<expr> → <expr> + <term> | <term> <term> → <term> * <factor> | < factor>

(4)

<expr> <term> n11

n10

id1

n2 <term> <factor>

n5 <expr>

n9<factor> n8<expr>

n1

id2

:= * (

n4 n3

id3

<term> <factor>

n7 n12 <assign stmt>

<term> n6 <factor>

+ id4 )

(5)

- Truyền thuộc tính

- Sinh biến tạm thu giảm

2 Phương pháp thực truyền thuộc tính

Để thực xử lý ngữ nghĩa q trình phân tích cú pháp, dùng stack đặc biệt gồm phần:

A: ký hiệu văn phạm (tượng trưng cho danh hiệu) B: có trị (ký hiệu biến tạm)

C: trỏ đến bảng danh biểu (thực chất vị trí danh biểu bảng danh biểu

Token Trị từ vựng Kiểu liệu

1

id id id id

A X R Q

(6)

Thí dụ 6.2 Cho văn phạm G thí dụ 6.1 <asign stmt> → id := <expr>

<expr> → <expr> + <term> | <term> <term> → <expr> * <factor> | <factor> <factor> → id | (<expr>)

3 Nguyên tắc xử lý ngữ nghĩa

Khi có chuỗi x = x1x2…xn thu giảm KHKKT U (với luật sinh U Ỉ x1, x2 …xn) hành vi xử lý ngữ nghĩa nút V hàm của:

1) Luật sinh U Ỉ x1x2…xn

2) Các xử lý ngữ nghĩa nút xi, tức nút V là:

i) Tra cứu bảng danh biểu ii) Tạo biến tạm

iii) Sinh mã trung gian

(7)

1 Hệ thống kiểu

Định nghĩa biểu thức kiểu

1 Kiểu liệu

2 Khi biểu thức kiểu đặt tên Bộ kiến thiết kiểu bao gồm:

1) Daõy (array): array (I, T)

2) Tích số (product): tích số cartesian T1 x T2

3) Bản ghi (record): kiểu ghi tích số biểu thức kiểu thành phần

Thí dụ:

type row = record

address : integer;

lexeme : array [1 15] of char;

end;

var table : array [1 10] of row;

Kiểu row biểu diễn biểu thức kiểu:

Ngày đăng: 09/03/2021, 04:04

TỪ KHÓA LIÊN QUAN