Đang chuẩn bị nút TẢI XUỐNG, xin hãy chờ
Tải xuống
Bài giảng "Xây dựng chương trình dịch - Bài 11: Sinh mã trung gian" cung cấp cho người học các kiến thức: Mã ba địa chỉ, sinh mã cho lệnh gán, sinh mã cho các biểu thức logic, sinh mã cho các cấu trúc lập trình. Hi vọng đây sẽ là một tài liệu hữu ích dành cho các bạn sinh viên Công nghệ thông tin và những ai quan tâm dùng làm tài liệu học tập và nghiên cứu. | 21/1/2010 Nội dung Bài 11 Sinh mã trung gian Mã trung gian Một chương trình với mã nguồn được chuyển sang chương trình tương đương trong ngôn ngữ trung gian bằng bộ sinh mã trung gian. Ngôn ngữ trung gian được người thiết kế trình biên dịch quyết định, có thể là: Cây cú pháp Ký pháp Ba Lan sau (hậu tố) Mã 3 địa chỉ Mã ba địa chỉ Sinh mã cho lệnh gán Sinh mã cho các biểu thức logic Sinh mã cho các cấu trúc lập trình Mã trung gian Được sản sinh dưới dạng một chương trình cho một máy trừu tượng Mã trung gian thường dùng : mã ba địa chỉ, tương tự mã assembly Chương trình là một dãy các lệnh. Mỗi lệnh gồm tối đa 3 toán hạng Tồn tại nhiều nhất một toán tử ở vế phải cộng thêm một toán tử gán Dạng tổng quát: x := y op z x,y,z là các địa chỉ , tức là tên, hằng hay các tên trung gian do trình biên dịch sinh ra Tên trung gian phải được sinh để thực hiện các phép toán trung gian Các địa chỉ được thực hiện như con trỏ tới lối vào của nó trong bảng ký hiệu 1 21/1/2010 Mã trung gian của x + y * z Các dạng mã ba địa chỉ phổ biến t1 := y*z t2 := x+t1 Mã 3 địa chỉ tương tự mã Assembly: lệnh có thể có nhãn, có những lệnh chuyển điều khiểnolcho các cấu trúc lập trình. 1. Lệnh gán x := y op z. 1 z 2. Lệnh gán với phép toán 1 ngôi : x := op y. 3. Lệnh sao chép: x := y. 4. Lệnh nhảy không điều kiện: goto L, L là nhãn của một lệnh 5. Lệnh nhảy có điều kiện x relop y goto L. Các dạng mã ba địa chỉ Sinh mã trực tiếp từ ĐNTCP 6. Lời gọi thủ tục param x và call p,n để gọi thủ tục p với n tham số . Return y là giá trị thủ tục trả về param x1 param x2 . param xn Call p,n 7. Lệnh gán có chỉ số x:=y[i] hay x[i]:=y Thuộc tính tổng hợp S.code biểu diễn mã ba địa chỉ của lệnh Các tên trung gian được sinh ra cho các tính toán trung gian Các biểu thức được liên hệ với hai thuộc tính tổng hợp E.place chứa địa chỉ chứa giá trị của E E.code mã ba địa chỉ để đánh giá E Hàm newtemp sinh ra các tên trung giant1, t2,. . Hàm gen