CẤU TRÚC DỮ LIỆU CỦA BẢNG KÍ KIỆU

Một phần của tài liệu GIÁO TRÌNH MÔN CHƯƠNG TRÌNH DỊCH (Trang 108 - 113)

- Quỏ trỡnh tớnh ∆i j VD: tớnh ∆ 2 4, Tớnh:

3. CẤU TRÚC DỮ LIỆU CỦA BẢNG KÍ KIỆU

Cú nhiều cỏch tổ chức bảng kớ hiệu khỏc nhau như cú thể tỏch bảng riờng rẽ ứng với tờn biến, nhón, hằng số, tờn hàm và cỏc kiểu tờn khỏc… tuỳ thuộc vào từng ngụn ngữ.

Về cỏch tổ chức dữ liệu cú thể tỏ chức bởi danh sỏch tuyến tớnh, cõy tỡm kiếm, bảng băm…

Mỗi ụ trong bảng ký hiệu tương ứng với một tờn. éịnh dạng của cỏc ụ này thường khụng giống nhau vỡ thụng tin lưu trữ về một tờn phụ thuộc vào việc sử dụng tờn đú. Thụng thường một ụ được cài đặt bởi một mẩu tin cú dạng ( tờn, thuộc tớnh).

Nếu muốn cú được sự đồng nhất của cỏc mẩu tin ta cú thể lưu thụng tin bờn ngoài bảng ký hiệu, trong mỗi ụ của bảng chỉ chứa cỏc con trỏ trỏ tới thụng tin đú,

Trong bảng ký hiệu cũng cú thể cú lưu cỏc từ khúa của ngụn ngữ. Nếu vậy thỡ chỳng phải được đưa vào bảng ký hiệu trước khi bộ phõn tớch từ vựng bắt đầu.

* Nếu ghi trực tiếp tờn trong trường tờn của bảng thỡ: ưu điểm: đơn giản, nhanh. Nhược điểm: Độ dài tờn bị giới hạn bởi kớch thước của trường , hiệu quả sử dụng bộ nhớ khụng cao.

Trường hợp danh biểu bị giới hạn về độ dài thỡ chuỗi cỏc ký tự tạo nờn danh biểu được lưu trữ trong bảng ký hiệu.

Name Attribute s o r t a r e a d a r r a y i

Hỡnh 7.19 - Bảng ký hiệu lưu giữ cỏc tờn bị giới hạn độ dài

Trường hợp độ dài tờn khụng bị giới hạn thỡ cỏc Lexeme được lưu trong một mảng riờng và bảng ký hiệu chỉ giữ cỏc con trỏ trỏ tới đầu mỗi Lexeme

Hỡnh 7.20 - Bảng ký hiệu lưu giữ cỏc tờn khụng bị giới hạn độ dài

3.1 Danh sỏch.

Cấu trỳc đơn giản, dễ cài đặt nhất cho bảng ký hiệu là danh sỏch tuyến tớnh của cỏc mẩu tin.

Ta dựng một mảng hoặc nhiều mảng tương đương để lưu trữ tờn và cỏc thụng tin kết hợp với chỳng. Cỏc tờn mới được đưa vào trong danh sỏch theo thứ tự mà chỳng được phỏt hiện. Vị trớ của mảng được đỏnh dấu bởi con trỏ available chỉ ra một ụ mới của bảng sẽ được tạo ra.

Việc tỡm kiếm một tờn trong bảng ký hiệu được bắt đầu từ available đến đầu bảng. Trong cỏc ngụn ngữ cấu trỳc khối sử dụng quy tắc tầm tĩnh. Thụng tin kết hợp với tờn cú thể bao gồm cả thụng tin về độ sõu của tờn. Bằng cỏch tỡm kiếm từ available trở về đầu mảng chỳng ta đảm bảo rằng sẽ tỡm thấy tờn trong tầng gần nhất.

Hỡnh 7.21 - Danh sỏch tuyến tớnh cỏc mẩu tin

3.2. Cõy tỡm kiếm.

Một trong cỏc dạng cõy tỡm kiếm hiệu quả là: cõy tỡm kiếm nhị phõn tỡm kiếm. Cỏc nỳt của cõy cú khoỏ là tờn của bản ghi, hai con tro Left, right.

Đối với mọi nỳt trờn cõy phải thoả món:

- Mọi khoỏ thuộc cõy con trỏi nhỏ hơn khoỏ của gốc. - Mọi nỳt của cõy con phải lớn hơn khoỏ của gốc. Giải thuật tỡm kiếm trờn cõy nhị phõn:

+ Nếu trựng: tỡm kiếm thoả món.

+ Nếu < hơn: Thực hiện lại cỏch tỡm kiểm với cõy con bờn trỏi. + Nếu > gốc: thực hiện lại cỏch tỡm kiếm với cõy con bờn phải.

Để đảm bảo thời gian tỡm kiếm người ta thay thộ cõy nhị phõn tỡm kiếm bằng cõy nhị phõn cõn bằng.

3.3. Bảng Băm.

Kỹ thuật sử dụng bảng băm để cài đặt bảng ký hiệu thường được sử dụng vỡ tớnh hiệu quả của nú.

Cấu tạo bao gồm hai phần; bảng băm và cỏc danh sỏch liờn kết.

Hỡnh 7.22 - Bảng băm cú kớch thước 211

1. Bảng băm là một mảng bao gồm m con trỏ.

2. Bảng danh biểu được chia thành m danh sỏch liờn kết, mỗi danh sỏch liờn kết được trỏ bởi một phần tử trong bảng băm.

Việc phõn bổ cỏc danh biểu vào danh sỏch liờn kết nào do hàm băm (hash function) quy định. Giả sử s là chuỗi ký tự xỏc định danh biểu, hàm băm h tỏc động lờn s trả về một giỏ trị nằm giữa 0 và m- 1 h(s) = t => Danh biểu s được đưa vào trong danh sỏch liờn kết được trỏ bởi phần tử t của bảng băm.

Cú nhiều phương phỏp để xỏc định hàm băm.

1. Giả sử s bao gồm cỏc ký tự c1, c2, c3, ..., ck. Mỗi ký tự cho ứng với một số nguyờn dương n1, n2, n3,...,nk; lấy h = n1 + n2 +...+ nk.

CHƯƠNG 8 SINH MÃ TRUNG GIAN.1. MỤC ĐÍCH NHIỆM VỤ. 1. MỤC ĐÍCH NHIỆM VỤ.

* Sinh mó trung gian cú những ưu điểm như sau: - Dễ thiết kế từng phần

- Sinh được mó độc lập với từng mỏy tớnh cụ thể. Từ đú làm giảm độ phức tạp của sinh mó thực sự.

- Dễ tối ưu mó.

* Cỏc vấn đề của bộ sinh mó trung gian là: - Dựng mó trung gian nào.

- Thuật toỏn sinh mó trung gian.

Hành động sinh mó trung gian thực hiện qua cỳ phỏp điều khiển.

Ngụn ngữ trung gian là ngụn ngữ nằm giữa ngụn ngữ nguồn và ngụn ngữ đớch. Chương trỡnh viết bằng ngụn ngữ trung gian vẫn tương đương với chương trỡnh viột bàng ngụn ngữ nguồn về chức năng nhiệm vụ. Sau đõy ta xột loại mó trung gian thụng dụng nhất.

Một phần của tài liệu GIÁO TRÌNH MÔN CHƯƠNG TRÌNH DỊCH (Trang 108 - 113)

Tải bản đầy đủ (DOC)

(158 trang)
w