Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 149 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
149
Dung lượng
1,83 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN LUẬN VĂN TỐT NGHIỆP CAO HỌC ĐỀ TÀI CHƯƠNG TRÌNH SINH TỰ ĐỘNG MÃ ĐỐI TƯỢNG GIẢNG VIÊN HƯỚNG DẪN: PGS.TS PHAN THỊ TƯƠI HỌC VIÊN THỰC HIỆN: NGUYỄN CHÁNH THÀNH KHÓA: 11 TP.HỒ CHÍ MINH, THÁNG 08 NĂM 2003 BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA HỌ VÀ TÊN TÁC GIẢ: NGUYỄN CHÁNH THÀNH TÊN ĐỀ TÀI: XÂY DỰNG CHƯƠNG TRÌNH SINH TỰ ÐỘNG MÃ ÐỐI TƯỢNG CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN MÃ SỐ CHUYÊN NGÀNH: 01.02.10 LUẬN ÁN CAO HỌC TP HỒ CHÍ MINH, tháng 08 năm 2003 i CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH Cán hướng dẫn khoa học: Phó Giáo sư - Tiến sĩ PHAN THỊ TƯƠI Cán chấm nhận xét 1: Tiến sĩ CAO HOÀNG TRỤ Cán chấm nhận xét 2: Tiến sĩ NGUYỄN XUÂN DŨNG Luận án cao học bảo vệ HỘI ĐỒNG CHẤM BẢO VỆ LUẬN ÁN CAO HỌC TRƯỜNG ĐẠI HỌC BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH ngày 20 tháng 09 năm 2003 ii BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc Lập-Tự Do-Hạnh Phúc NHIỆM VỤ LUẬN ÁN CAO HỌC Họ tên học viên: NGUYỄN CHÁNH THÀNH Ngày tháng năm sinh: 01-12-1972 Chuyên ngành: CÔNG NGHỆ THÔNG TIN Phái: Nơi sinh: Nam Sài gòn I- TÊN ĐỀ TÀI: XÂY DỰNG CHƯƠNG TRÌNH SINH TỰ ÐỘNG MÃ ÐỐI TƯỢNG II- NHIỆM VỤ VÀ NỘI DUNG: III- NGÀY GIAO NHIỆM VỤ (Ngày bảo vệ đề cương): IV- NGÀY HOÀN THÀNH NHIỆM VỤ (Ngày bảo vệ luận án tốt nghiệp): V- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: PGS.TIẾN SĨ PHAN THỊ TƯƠI VI- HỌ VÀ TÊN CÁN BỘ CHẤM NHẬN XÉT 1: TIẾN SĨ CAO HOÀNG TRỤ VII- HỌ VÀ TÊN CÁN BỘ CHẤM NHẬN XÉT 2: TIẾN SĨ NGUYỄN XUÂN DŨNG CÁN BỘ HƯỚNG DẪN CÁN BỘ NHẬN XÉT CÁN BỘ NHẬN XÉT (Ký tên ghi rõ họ, tên, học vị, học hàm) Nội dung đề cương Luận án Cao học thông qua Hội Đồng Chuyên Ngành Ngày tháng _ năm _ PHÒNG QLKH-SĐH CHỦ NHIỆM NGÀNH iii Lời cảm ơn Trong trình học tập nhà trường, với kiến thức chuyên sâu mà tiếp nhận, dìu dắt tận tình giáo viên hướng dẫn giảng viên chuyên ngành, hoàn thành nhiệm vụ giao cho Luận văn tốt nghiệp cao học Tôi chân thành cảm ơn Cô Phan Thị Tươi, Giáo viên hướng dẫn, tận tình bảo, nhiệt tình hướng dẫn chúng tơi đến hồn thành tốt Luận văn Chúng tơi vơ cảm ơn Quý Thầy Cô - giảng viên trường Ðại học Bách Khoa Tp Hồ Chí Minh, trường Ðại học Khoa học tự nhiên Tp Hồ Chí Minh tận tâm giảng dạy, mở cho đường đến với kiến thức Chân thành cảm ơn TS Dương Tuấn Anh, TS Cao Hoàng Trụ, TS Nguyễn Xuân Dũng giúp nhiều góp ý, dẫn tài liệu quý giá trình thực Luận văn Chân thành cảm ơn Thầy Nguyễn Hứa Phùng giúp chúng tơi nhiều dẫn, góp ý tài liệu tham khảo quý giá trình thực Luận văn Tp Hồ Chí Minh, ngày 01 tháng 08 năm 2003 Nguyễn Chánh Thành iv TÓM TẮT NỘI DUNG LUẬN VĂN v Xây dựng chương trình sinh tự động mã đối tượng Tóm tắt: Trình biên dịch (compiler) phần ngành khoa học máy tính Việc thực xây dựng trình biên dịch đòi hỏi cần thiết kể từ máy tính số đời nhằm giúp người giao tiếp với máy tính thơng qua ngơn ngữ lập trình Vấn đề yếu trình biên dịch sinh mã hiệu quả, có chất lượng Việc thực tối ưu cho trình biên dịch nhằm làm hiệu việc sử dụng tài nguyên máy đích Sự tối ưu hóa trình biên dịch nhằm tối ưu chất lượng mã sinh ra, thực biến đổi chương trình làm cho biên dịch rút ngắn thời gian ngày hiệu Trong thực tế, mục đích đạt số trường hợp định khó thực Tuy nhiên, ngồi việc tối ưu hoá mã trung gian, với sinh mã đối tượng đơn giản chương trình đích tạo chưa thể kết luận tối ưu (nhất) hay chưa Nếu xét chuyên sâu vào sinh mã đối tượng, thấy ứng dụng nhiều kỹ thuật khác để sinh mã tối ưu mã đối tượng, kết có khác biệt đáng kể chưa tối ưu lúc tối ưu, phương pháp sinh mã đối tượng khác góp phần tăng hiệu suất cho chương trình Do với đề tài “Xây dựng chương trình sinh tự động mã đối tượng” thực việc nghiên cứu vấn đề phần sinh mã đối tượng trình biên dịch thuật tốn liên quan với mong muốn cải tiến nhằm thu mã đối tượng tối ưu chương trình ứng dụng Trong phạm vi nghiên cứu mình, chúng tơi tìm hiểu vấn đề liên quan đến thuật toán sinh mã đối tượng thuật toán sinh mã đơn giản, sinh mã từ DAG (directed acylic graph), thuật toán quy hoạch động (dynamic programming), thuật toán so trùng (tree matching/rewrite tree) thuật toán kết hợp số bước cải tiến thể thơng qua chương trình ứng dụng Sau thực việc đánh giá mức độ tối ưu mã đối tượng thu thuật toán vừa nêu Cuối phần giới thiệu chương trình ứng dụng vi Từ khố: Trình biên dịch, ngơn ngữ lập trình, mã đốI tượng, mã ba địa chỉ, thuật toán sinh mã đơn giản, thuật toán sinh mã từ DAG, thuật tốn lập trình động, thuật tốn so trùng/viết lại vii Construction Code Generation Generator Abstract: Compiler is part of computer science Since the compute appear, construction and implementation of compilers are needed to help people to interact with computer based on programming languages Main issue for compiler is code generation techniques so that it generates good effect and quality codes Optimal compiler construction takes better effect to use resources of computer Compiler optimization techniques optimize the quality of generated code and vary the generated code In fact, this purpose had been obtained in some cases and its implementation was difficult Compiler-component generators, such as lexical analyzer generators and parser generators, have long been used to facilitate to construction of compilers In this thesis, we discuss the code generation techniques and represent some algorithms, which transform data input (which are intermediate representation and them have three-address code form) into target code for register machines These algorithms are Simple algorithm, Graph Coloring algorithm, Labeling and Sethi-Ullman alogorithm, Aho-Johnson algorithm and Tree Matching/Tree Rewriting algorithm We introduce some optimal techniques, which based on some ideas of C.W.Kessler Thomas Rauber, Aho - Sethi and Ullman These techniques involve Peephole, DAG splitter, DAG labeling… We have some suggestions to improve above alogorithms Especially, we present the algorithm, that combines a fast top-down tree-pattern matching algorithm with dynamic programming, which produces optimal code for any machine in this class; and this algorithm runs in time linearly proportional to the size of the input After that, we have the evaluation for codes, which are generated by some algorithms And the rest of thesis is introduction of my application Additional Key Words and Phrases: Code generation, code generator-generator, optimization, dynamic programming, pattern matching, DAG code viii MỤC LỤC CHƯƠNG 1: GIỚI THIỆU ÐỀ TÀI 1.1 Mô tả đề tài - 1.2 Các phương pháp tiếp cận toán sinh mã đối tượng đề tài 1.3 Một số đóng góp đề tài lĩnh vực nghiên cứu - CHƯƠNG 2:TÌNH HÌNH NGHIÊN CỨU LIÊN QUAN ÐẾN ÐỂ TÀI - 2.1 Các nghiên cứu nước - 2.2 Các nghiên cứu nước 10 CHƯƠNG 3: MỘT SỐ VẤN ÐỀ LIÊN QUAN ÐẾN QUÁ TRÌNH SINH MÃ ÐỐI TƯỢNG 11 3.1 Giới thiệu trình biên dịch 11 3.1.1 Giới thiệu 11 3.1.2 Các giai đoạn trình biên dịch 12 3.2 Các yêu cầu liên quan đến trình sinh mã đối tượng - 13 3.2.1 Giới thiệu dạng mã trung gian ba địa - 13 3.2.2 Giới thiệu mã đối tượng - 14 3.2.3 Tiêu chuẩn cho việc sinh mã đối tượng - 15 3.2.4 Các vấn đề máy đích chi phí thị 19 3.2.5 Quản lý chỗ lưu trữ 21 3.2.6 Tiêu chuẩn cho việc tối ưu mã - 23 3.3 Khối đồ thị dòng - 24 3.3.1 Khối - 24 3.3.2 Ðồ thị dòng (control flow graph) 26 ix e) Nếu biến cịn sống khỏi vịng lặp L, thực mov giá trị từ ghi vào biến tương ứng Hình 67: Thuật tốn cải tiến • Hiện thực thuật tốn Function NewCombin ;; gọi L danh sách khốI liên quan tới vòng lặp ;; gọi B tập khối phân tích từ liệu nguồn For Bi ∈B If Bi∉L then Tạo danh sách biểu thức từ Bi Gọi thuật toán tên để thực việc sinh mã Else Tính lợI ích cho biến L ;; Gọi V tập biến có lợi ích cao If lvin(v, L) = true (với v∈V) then Phát sinh khối mới; Cấp phát ghi biến có tần suất cao Tạo danh sách biểu thức từ Bi Gọi thuật toán để thực việc sinh mã Fi Od End NewCombin; 5.3.5 So sánh đánh giá kết thu Thuật toán kết hợp xây dựng phần kết hợp ưu điểm hai thuật toán hai chương trước, điều dẫn kết trình sinh mã tối ưu thao tác chọn, so sánh mẫu giảm thiểu chi phí dư thừa Phần cải tiến thuật toán kết hợp đưa cách giải cho trường hợp tổng qt – có vịng lặp đồ thị dòng 122 CHƯƠNG KẾT LUẬN Đánh giá Trong phạm vi nghiên cứu đề tài này, với việc thực phát triển số thuật tốn sinh mã đối tượng, chúng tơi có nhận xét sau: Mặc dù có nhiều kỹ thuật khác nhằm thực việc sinh mã đối tượng, nhiên kết thu việc tối ưu mã đối tượng so với kết việc tối ưu mã trung gian tương ứng khơng cao, góp phần làm cho trình tối ưu trình biên dịch ngày tốt Kết thu dùng thuật toán sinh mã đối tượng đề tài có chênh lệch khơng nhiều, phụ thuộc vào tính chất liệu nhập số lượng khối bản, số lượng vịng lặp có đồ thị dịng Trong số thuật tốn nêu phạm vi đề tài này, thuật toán kết hợp dựa kỹ thuật so trùng/viết lại quy hoạch động nhiều nhà khoa học nghiên cứu có nhiều hướng giải khác Thuật toán kết hợp cho kết tốt thuật tốn cịn lại giải vấn đề tính tốn chi phí cho hành động lưu vào nhớ, hay lưu vào ghi, … Các phương pháp tối ưu đảm bảo việc bảo tồn nghĩa chương trình Chi phí lệnh sau tối ưu thấp đi, tăng tốc độ chương trình thời gian không gian chiếm dụng nhớ, ghi Đối với nhiều ngôn ngữ, việc tối ưu mã có ý nghĩa lớn thời gian chạy Phần lớn tối ưu mã thu hiệu việc tối ưu mã lệnh vòng lặp Do đó, thời gian chạy chương trình giảm đáng kể làm giảm số lệnh vịng lặp 123 Ðóng góp đề tài Trong phạm vi nghiên cứu đề tài này, chúng tơi tìm hiểu, ứng dụng cải tiến số thuật tốn áp dụng q trình sinh mã đối tượng: - Ứng dụng phát triển thuật tốn tối ưu hóa đại số, tối ưu dòng điều khiển để điều chỉnh loại bỏ bớt lệnh nhảy không cần thiết, phân phối gán ghi cho biến có tần suất sử dụng nhiều vòng lặp nhằm tăng hiệu suất cho trình sinh mã đối tượng - Ứng dụng phát triển thuật toán loại bỏ câu lệnh dư thừa DAG nhằm giảm thiểu số thao tác không cần thiết thực việc sinh mã đối tượng từ DAG - Xây dựng thuật toán tách DAG nhằm thu tập biểu thức để tận dụng kết biểu thức chung, để từ đặt trình tự duyệt DAG nhằm giảm thiểu cơng việc tính tốn liệu - Thể thuật toán sinh mã đối tượng dựa sở kết hợp thuật toán so trùng (tree matching) quy hoạch động (dynamic programming) không thông qua ngôn ngữ TWIG [19] Hạn chế: Tuy nhiên, số vấn đề chưa hoàn thiện phạm vi nghiên cứu như: - Việc giải triệt để vấn đề sinh mã đối tượng trường hợp liệu nhập tạo nên đồ thị dịng có nhiều vòng lặp phức tạp - Do thực việc sinh mã đối tượng với giả thiết liệu nhập (dạng mã trung gian ba địa chỉ) tối ưu nên chúng tơi khơng sâu vào việc phân tích vấn đề phụ thuộc liệu Hướng phát triển: Ðề tài phát triển theo hướng sau: - Phát triển việc áp dụng tốn tơ màu đồ thị triệt để nhằm cải thiện bước thuật tốn sinh mã đối tượng có 124 - Nghiên cứu vấn đề lập thời biểu cho việc sinh mã với thuật toán sinh mã đối tượng có - Nghiên cứu trường hợp liệu nhập tạo nên số lượng lớn khối bản, … - Kết hợp đoạn sinh mã trung gian, tối ưu mã trung gian tối ưu mã đối tượng nhằm tăng hiệu suất cao cho việc cải tiến tổng quát - Nghiên cứu chuyên sâu vấn đề phụ thuộc liệu 125 CHƯƠNG CHƯƠNG TRÌNH ỨNG DỤNG 7.1 CÁC BIỆN PHÁP KỸ THUẬT Chương trình minh họa thực kỹ thuật tối ưu mã xây dựng công cụ Microsoft -Visual C++ Chương trình thực file văn dạng text (*.txt) nhập sẵn gõ vào từ cửa sổ hình Một số biện pháp kỹ thuật sử dụng chương trình: - Chương trình thiết kế theo chế độ nhiều module, nhiều class liên kết - Sử dụng cấu trúc liệu kiểu danh sách liên kết để giải linh động vấn đề cấp phát nhớ lúc chương trình thực thi - Sử dụng kỹ thuật ANTLR(Another Tool for Language Recognition) trình xây dựng trình biên dịch - Dữ liệu chương trình dùng để tính tốn cho giá trị biến chương trình nhập vào Một số biện pháp kỹ thuật hổ trợ cho việc thực chương trình minh họa 7.2 CÀI ĐẶT CHƯƠNG TRÌNH Chương trình ứng dụng đóng gói tập tin setup.exe để giúp việc cài đặt thuận tiện 7.2.1 Hướng dẫn cài đặt Tiến hành cài đặt chương trình việc kích hoạt chương trình setup.exe thực thi thao tác từ bước (a) đến (f) theo hình 68a đến 68f đây, chương trình ứng dụng chép vào thư mục máy Trình tự thể qua hình 68 sau đây: 126 Hình 68 (a)-(b): Trình tự bước cài đặt Hình 68 (c)-(d): Trình tự bước cài đặt (e) (f) Hình 68: Trình tự cài đặt chương trình ứng dụng Sau hồn tất q trình cài đặt, chương trình xuất menu Start có biểu tượng ‘MyCG App’ Hình 69: Chương trình cài đặt vào máy 127 7.2.2 Hướng dẫn sử dụng chương trình Kích hoạt biểu tượng chương trình ‘MyCG App’ vừa tạo, cửa sổ chương trình Các thành phần chương trình mô tả phần 7.3 CÁC THÀNH PHẦN TRONG CHƯƠNG TRÌNH Trong chương trình minh họa gồm cửa sổ chức (cho menu, kiện click chuột) 7.3.1 Cửa sổ chương trình Giao tiếp với chương trình thơng qua cửa sổ Từ cửa sổ chính, nhập vào đoạn mã ba địa mở để lấy file (text) lưu sẵn đoạn mã chương trình ba địa để thực tiếp chức xử lý Cửa sổ chương trình minh họa sau 7.3.2 Các chức thể Lần lượt hình minh hoạ cho số chức chương trình ứng dụng Chức sinh mã theo phương pháp thông thường cải tiến Vùng nhập liệu Chức sinh mã từ DAG cải tiến Chức sinh mã theo phương pháp tô màu đồ thị Chức sinh mã theo phương Chúc so pháp kết hợp sánh kết Chức sinh mã theo thuật tốn lập trình động cải tiến Chức sinh mã theo phương pháp so trùng cải tiến Hình 70: Chương trình 128 Các tập tin liệu Hình 71: Các mẫu liệu để thử Phân tích liệu nhập tạo danh sách khối bản, đồ thị dịng, … Hình 72: Kết sau thực thi chức Prepare 129 Hình 73: Thể DAG từ kết nhập vào DAG phân tách đơn giản Nút dùng chung (viền đỏ) Hình 74: Phân tích DAG thành subDAG 130 Cây biểu thức xây dựng từ liệu nhập Chi phí kết lập trình động Hình 75: Kết thuật toán sinh mã từ DAG 7.4 VÍ DỤ MINH HOẠ Xét ví dụ sau đây: (1) i:=m-1 (2) j:=n (3) t1:=4*n (4) v:=a[t1] (5) i:=i+1 (6) t2:=4*I (7) t3:=a[t2] (8) if (t3v goto (9) Trong ví dụ này, bước đầu tiên, áp dụng thuật tốn chương 3, phân tích liệu nhập thành khối 131 đồ thị dòng sau: Khối Danh sách lệnh i:=m-1 j:=n t1:=4*n v:=a[t1] i:=i+1 t2:=4*i t3:=a[t2] if(t3v goto (9) Từ đó, áp dụng thuật tốn sinh mã đơn giản, sinh mã theo thuật tốn tơ màu đồ thị vào liệu nhập, thu dãy mã đối tượng sau: 132 Kết thu gồm phần: mã chưa cải tiến mã cải tiến Tương tự, kết thuật toán sinh mã theo cách ứng dụng thuật tốn tơ màu đồ thị cho kết sau: 133 Trường hợp số lượng ghi cần thiết giảm thiểu tốt 134 TÀI LIỆU THAM KHẢO [1] Optimizing Compilers Web page: http://www.ceng.metu.edu.tr/~e106170optimize.html/optimize.htm [2] Robet A van Engelen, Efficient Symbolic Analysis for Optimization Compilers, 2001 [3] Laurie J Hendren, Optimizing and Parallelizing Compilers Web page : http://www.brics.dk/~hendren-course.html/course.htm [4] Backus, J W, et al, The Fortran automatic coding system, 1957 [5] Allen, R., and K Kenedy, Advanced compilation for vector and parallel computers, 1987 [6] Leverett, B W, et al, An overview of the Production-Quality Compiler-Compiler project, 1979, Carnegie Mellon University [7] Reif, J H, and H R Lewis, Symbolic program analysis in almost linear time, 1978 [8] Chaitin, G.J, Register allocation and spilling via graph coloring, 1982 [9] Balachandran, A., Dhamdhere, D.M and Biswas, S, Eficient retargetable code generation using bottom-up tree pattern matching, 1989 Aho, A.V., Ganapathi, M.and Tjiang, S.W.K Code generation [10] using tree matching and dynamic programming ACMTransactions on Programming Languages and System, 1989, 1, 159-75 [11] Kwang, K.-W.and Choe, K.-M On the automatic generation of instruction selector using bottom-up tree pattern matching 1995 Tech.Rept CS-TR-95-93, Dept.of Computer Science, KAIST [12] Kyung-Woo Kang, Kwang-Moo Choe, Min-Soo Jung, HeungChul Shin An efficient bottom-up tree pattern matching that performs dynamic programming for code generation Journal of Programming Languages 5, 1997, 189–199 [13] C.W.Kessler, and Thomas Rauber, Generating Optimal Contiguous Evaluations for Expression DAGs, 1995 [14] Christoph W.Keβler, Scheduling Expression DAGs for Minimal Register Need, 1998 [15] Ronald Mak, Writing Compilers and Interpreters An Applied Approach Using C++, 1996 [16] Robert Morgan, Buiding an Optimizing Compiler, 1999 [17] Charles N Fischer Richard J LeBlanc, Jr , 1991, Crafting A Compiler with C [18] Kai Hwang, Advanced Computer Architecture, 1993 [19] Altred V.Aho leffrey D.Ullman Addison, 1986, Compilers Principles, Techniques and Tools, Wesley Publishing Company [20] Altred V.Aho leffrey D.Ullman, The Theory of parsing, translation and Compiling, 1972, Prentice – Hall, Inc 135 [21] Programming Languages: Design and Implemention, Prentice Hall International Editions [22] Ammann U, On code generation in a Pascal compiler, 1977 [23] Phan Thị Tươi, Trình biên dịch , 1996, NXB Giáo dục [24] Trần Ðức Quang, Trình biên dịch - nguyên lý kỹ thuật & công cụ, 2001, NXB Thống kê [25] Aho, A.V S C Iohnson , and J D UllMan, Code generation for expressions with common subexpressions, 1977 [26] Alfred V Aho, Data Structures and Algorithms, 1983 [27] John P Hayes, Computer Architecture and Organization, 1988 [28] Robet A van Engelen, Efficient Symbolic Analysis for Optimizing Compilers, 2001 Web page: http://www.cs.fsu.edu/~engelen-cc01.html/cc01.html [29] Compiler Construction and Code Optimization Web page: http://moss.csc.ncsu.edu/~mueller/compiler.html [30] Saumya K Debray, The Alto Project: Link-time Code Optimization, 2001 Web page: http://www.c8.arizona.edu/alto [31] Optimizing Compilers Web page : http://www.eecg.toronto.edu/~tsa [32] Aho, A V., J E Hopcroft, and J D Ullman, The design and analysis of computer algorithms, 1974 [33] Allen, R., and K Kenedy, Advanced compilation for vector and parallel computers, 1987 [34] Dick Grune, Henri E Bal, Ceriel J.H.Jacobs and Koen G Langerdoen, Modern Compiler Design, 2000 [35] Steven S Muchnick, Advanced Compiler-Design Implementation, 1997 [36] Hoffman, C W., O’Donnell, M J Pattern matching in trees J ACM 29, (1982), 68-95 [37] Aho, A V., johnson, S C “Optimal Code Generation, for Expression Trees” J ACM 23 (1976), pp 488-501 [38] Kyung-Woo Kang, Kwang-Moo Choe, Min-Soo Jung, HeungChul “On the automatic generation of instruction selector using bottom-up tree pattern matching” 1997 [39] Jussi Rintanen, “ML-Twig User’s Manual”, Helsinki University of Technology, June 10, 1989 [40] Nguyễn Anh Tuấn, “Tối ưu hoán sinh mã”, ÐHBK tp.HCM, 2002 136 ... ưu 3.2.3 Tiêu chuẩn cho việc sinh mã đối tượng • Yêu cầu nguồn liệu cho trình sinh tự động mã đối tượng Nguồn liệu dùng cho trình sinh mã đối tượng có dạng biểu diễn mã trung gian với thông tin... thực trước trình sinh mã hoạt động tối ưu • Chương trình đích mã đối tượng Có nhiều dạng chọn lựa cho trình sinh mã tạo mã đối tượng như: ngôn ngữ máy khả định vị, ngôn ngữ với địa tuyệt đối hay... 135 xi xii CHƯƠNG GIỚI THIỆU ĐỀ TÀI 1.1 MÔ TẢ ĐỀ TÀI Yêu cầu cụ thể đề tài: Luận văn Cao học ? ?Chương trình sinh tự động mã đối tượng? ?? đưa nhằm giải toán sinh tự động mã đối tượng theo phương