Đang chuẩn bị liên kết để tải về tài liệu:
Trình biên dịch : Nguyên Lý - Kỹ thuật - Công cụ part 10
Đang chuẩn bị nút TẢI XUỐNG, xin hãy chờ
Tải xuống
Các trình biên dịch cần nhiều hơn một bước để hoàn tất gọi là trình biên dịch nhiều bước. Các kiểu trình biên dịch nhiều bước bao gồm: Trình biên dịch nguồn sang nguồn là loại trình biên dịch nhận vào mã nguồn là một ngôn ngữ cấp cao và chuyển dịch thành một ngôn ngữ cấp cao khác. Thí dụ: Một trình biên dịch tự động song song hoá sẽ thường xuyên lấy chương trình trong ngôn ngữ cấp cao ở ngõ vào và chuyển dạng mã nguồn và chú giải nó với các chú giải mã song song (như OpenMP. | 124 PHÁN TÍCH TỪ VựNG được với ký tự thứ nhất nó không phải ỉà mẫu dài nhát đôi sánh được với một tiền tố của nguyên liệu. Vì thế chiến lược của Lex trong việc chọn tiền tô dài nhất đô i sánh được với một mẫu tạo dễ dàng cho việc giải quyết xung đột giữa và bằng một phương pháp được mong đợi đó là chọn làm thẻ từ tiếp theo. Toán tử sải với Như chúng ta đã thấy trong Phần 3.1 thể phân từ vựng của một số kết cấu của ngôn ngữ lập trình cần phải xem trước một sô ký tự vượt quá điểm kết thúc của một từ tố trước khi có thể xác định chắc chán một thẻ từ. Chúng ta nhớ lại thí dụ về Fortran với cặp lệnh DO 5 I 1.25 DO 5 I 1 25 Trong Fortran các khoảng trổng blank không cỏ tác dụng gì bên ngoài các phần giải thích và các chuỗi Hollerith do vậy giả sử rằng mọi khoảng trống có thế loại được đều đã được lược bỏ trước khi thể phân từ vựng bắt đầu hoạt động. Vì thế khi chuyển cho thể phân từ vựng các câu lệnh trên sẽ trở thành DO5I 1.25 DO5I 1 25 Trong câu lệnh thứ nhâ t chúng ta không thể nói được gì cho đến khi gặp dâ u chấm thập phân cho biết rằng chuỗi DO là thành phần của định danh DO5I. Trong câu lệnh thứ hai bản thân DO là một từ khóa. Trong Lex chúng ta có thể viết một mẫu dưới dạng ri r2 trong đó và r2 là các biểu thức chính qui mang nghĩa là đô i sánh được một chuỗi với rr nhưng chỉ nếu theo sau nó là một chuỗi r2. Biểu thức chính qui r2 sau toán tủ sải vởi lookahead operator chỉ ra ngữ cảnh bên phải của một đối sánh nó chỉ được dùng đế hạn chế một đối sánh không phải là thành phần của đối sánh. Thí dụ một đặc tả Lex để nhận dạng từ khóa DO trong ngữ cảnh ở trên là DO letter I digit letter I digit Với đặc tả này thể phán từ vựng sẻ xem trong vùng đệm nguyên liệu đề tìm một chuỗi chữ cái và ký số qó một dấu bằng theo sau kế đến là các chữ cái và ký sô rái đến một dấu phẩy để bảo đảm rằng không có một câu lệnh gán. Thế thì chỉ các ký tự D và o đi trước toán tử sải với mới là thành phần của từ tố đã đô i sánh dược. Sau khi đôì sánh thành công yytext chỉ đến D và yyleng 2.