. 98 TỔNG QUAN VỀ BIÊN DỊCH
PHÂN 3.2 ĐỆM NGUYÊN LIỆU s
Biến đổi đế khắc phục lỗi như trên cĩ thể được thử với hy vọng sẽ sửa được nguyên Hệu. Chiến lược đơn giản nhất đĩ muốn thử xem cĩ thể biến đổi một tiên tố của phần nguyên liệu cịn lại thành một từ tố hợp lệ chỉ bằng một biến đổi duy nhất. Nĩ giả thiết rằng phần lớn lỗi từ vựng là kết quả của một biến đổi duy nhất, là điều
thường xảy ra trong thực hành.
Một cách tìm các lỗi trong một chương trình là tính số lượng biến đổi ít nhất cần để biến một chương trình lỗi thành một chương trình chỉnh dạng về mặt cú pháp. Chúng ta nĩi rằng một chương trình lỗi cĩ È lỗi nếu chuỗi biến đổi ngắn nhất chuyển
được nĩ thành một chương trình hợp lệ cĩ chiêu đài là &. Cbỉnh lỗi với số biến đổi ít
nhất là một chuẩn mực hợp lý về lý thuyết, nhưng nĩi chung thường khơng được dùng
trong thực hành bởi vì chỉ phí quá cao khí cài đặt nĩ. Tuy nhiên một số ít trình biên địch thử nghiệm đã sử dụng tiêu chuẩn này để hiệu chỉnh cục bộ.
3.2 DỆM NGUYÊN LIỆU
Trong phần này chúng ta để cập đến một số vấn để hiệu quả, cĩ liên quan đến việc
đệm nguyên liệu. Trước tiên chúng ta nĩi đến /ược đỏ đệm đơi (two-buffer input
scheme) rất cĩ ích khi cẩn xem trước nguyên liệu để nhận diện các thẻ từ. Sau đĩ chúng ta sẽ giới thiệu một số kỹ thuật cĩ ích làm tăng tốc độ của thể phân từ vựng, như sử dụng èƯĩơ cẩm canh (sentinel) để đánh đấu vị trí kết thúc vùng đệm.
Cĩ ba phương pháp cài đặt tổng quát cho thể phân từ vựng, l
1. Sử dụng một chương trình để tạo ra thể phân từ vựng (bộ sinh thể phân từ vựng) từ phần đặc tá bằng biểu thức chính qui, chẳng hạn như trình biên dịch Lex sẽ được thảo luận trong Phản 3.5. Trong trường hợp này, chính bộ sinh thể phân từ
vựng sẽ cung cấp các thủ tục để đọc và đệm nguyên liệu.
2. Viết một thể phân từ vựng bằng một ngơn ngữ lập trình hệ thống thơng thường
và sử dụng các tiện ích xuất nhập của ngơn ngữ đĩ để đọc nguyên liệu.
3. Viết một thể phân từ vựng bằng hợp ngữ và tự lo quản lý việc đọc nguyên liệu. Ba lựa chọn này được liệt kê theo thứ tự tăng dần về rhức độ khĩ khăn khi cài đặt.
Khơng may là, các phương pháp khĩ cài đặt thường tạo ra các thể phân tích chạy nhanh hơn. Bởi vì thể phân từ vựng là giai đoạn biên dịch duy nhất cĩ đọc chương
trình nguồn từng ký tự một, cĩ thể sẽ mất nhiễu thời gian trong giai đoạn phân tích này, dù rằng các giai doạn sau phức tạp hơn. Vì vậy, tốc độ của thể phân từ vựng là điều cần phải được xem xét khi thiết kế trình biên dịch. Mặc dù phần lớn của chương
này dành cho cách tiếp cận thứ nhất, là thiết kế và sử dụng bộ sinh tự động, chúng ta cũng xem xét một số kỹ thuật rất cĩ ích khi thiết kế thủ cơng. Phần 3.4 sẽ thảo luận
về các sơ đơ chuyển u‡ (transition diagram), là một khái niệm cĩ ích trong việc tổ chức một thể phân từ vựng được thiết kế thủ cơng.