Bài giảng Nhập môn chương trình dịch: Chương 1 - Hoàng Anh Việt

48 8 0
Bài giảng Nhập môn chương trình dịch: Chương 1 - Hoàng Anh Việt

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng Nhập môn chương trình dịch - Chương 1 cung cấp cho người học các kiến thức cơ bản như: Lịch sử phát triển của Kỹ thuật dịch, khái quát quá trình biên dịch, cấu thành của chương trình dịch, định nghĩa của ngôn ngữ lập trình cấp cao,... Mời các bạn cùng tham khảo nội dung chi tiết.

Nhập mơn Chương Trình Dịch Hồng Anh Việt Viện CNTT&TT - ĐHBKHN Chương I: Giới thiệu Chương trình dịch Ngun lý Ngơn ngữ lập trình Thiết kế cấu tạo chương trình dịch Chương trình dịch Vấn đề Người dùng:sử dụng basic, pascal ,c,java…… ngữ cấp cao Diễn dịch Ngôn Biên dịch Chỉ hiểu mã nhị phân biểu thị lệnh liệu 3 • Chú trọng đến nguyên lý kỹ thuật liên quan • Mơn học Chương trình dịch cung cấp phương pháp luận giải vấn để lĩnh vực Khoa học máy tính cấp độ vĩ mô Đặt vấn đề, giải vấn đề •Mơn học có kết hợp Lý luận thực hành 4 Nội dung môn học Chương I: Giới thiệu Chương II: Văn phạm phi ngữ cảnh Chương III Phân tích từ vựng Chương IV Phân tích ngữ pháp Chương V Phân tích ngữ nghĩa sinh mã trung gian Chương VI Sinh mã mục tiêu §1.1 Lịch sử phát triển Kỹ thuật dịch  1820—1850Charles Babbage người Mỹ phát mính máy vi tính  Những năm 30 kỷ nhà toán học người Anh Turing đề xuất khái niệm máy Turing Máy Turing trở thành mô hình tốn học máy tính đại  1994 A.Aiken trường Đại học Haward thiết kế thành công máy MARKI với khả tự động điều kiển đọc mã, trở thành máy tự động giới  Năm 1946 Chiếc máy tính điện tử (ENIAC) đời Mỹ Sự hình thành ngơn ngữ  Ngơn ngữ máy Hợp ngữ Ngôn ngữ máy -Ngôn ngữ ký hiệu hợp ngữ Ngôn ngữ Macro  FORTRAN、ALGOLvà COBOL  FORTRAN(FORmulaTRANslation) Ngôn ngữ diễn dịch công thức, ngôn ngữ cấp cao đời vào năm 50 1954-1959 FORTRAN0Sự đời FORTRAN Hệ thống biên dịch đánh dấu hình thành kỹ thuật dịch Sự hình thành ngơn ngữ ALGOL(ALGOkithmic Language) Ngơn ngữ Đại số tốn học ALGOL58 ALGOL60 SỬ dụng ký pháp BNF: hình thức hóa ngơn ngữ, tạo tiền đề cho lĩnh vực nghiên cứu phân tích ngữ pháp ngơn ngữ COBOL Đề xuất phương pháp mô tả liệu độc lập với máy tính cụ thể, tạo tiền đề phát triển hệ quản trị sở liệu Sự hình thành ngơn ngữ  PASCAL Do tiểu nhóm ALGOL60 phát minh chủ yếu dùng vào việc giảng dạy, viết số phần mềm hệ thống, PASCAL kế thừa ưu việt ALGO60 PASCAL có vai trò lớn lịch sử phát triển ngơn ngữ lập trình hướng cấu trúc  Ada  PROLOG  IDE(Interactive Development Environment) Sự hình thành ngơn ngữ  SIMULA 67 Từ ALGOL60 phát triển lên,phát triển class đánh dấu phát triển liệu trừu tượng  Smalltalk 72-80 Kiến tạo giao diện người dùng: View Đơn vị chương trình là: Class Đánh dấu thành thục lập trình hướng đối tượng  C++ Cấu trúc hướng đối tượng kết hợp tòan mỹ.Hệ thơng biên dịch C tính cao tính oan tồn cịn hạn chế  Java Thế hệ ngơn ngữ phát triên cho Web, tính an tồn nâng cao (so sánh với C) 10 VD3 Câu lệnh Pascal w:=(a+b)*c ; Phân tích ngữ nghĩa định cộng trước nhân sau,và sinh mã trung gian Mã trung gian câu lệnh (1) (+,a,b) (2) (*,(1),c) (3) (:=,w,(2)) 34 4.Ưu hóa mã(Optimizer) —Bộ tối ưu mã Nhiệm vụ chủ yếu: mã trung gian tiến hành biến đổi tương đương mặt thuật giải để thu mã mục tiêu hữu hiệu  Hữu hiệu chỉ: có hiệu lực khơng gian thời gian tính tốn  Q trình tối ưu hóa hồn thành trước sau giai đoạn sinh mã mục tiêu 35 Sinh mã mục tiêu (code generator) —Bộ sinh mã Nhiệm vụ chủ yếu: dựa vào hệ máy cụ thể biến đổi mã trung gian thành ngôn ngữ máy hay hợp ngữ hệ máy tương ứng Thuyết minh Khơng phải tất chương trình biên dịch tn theo mơ hình giai đoạn Một CT biên dịch đầy đủ bao hàm, bảng quản lý ký hiệu (symbol) xử lý lỗi 36 Cấu thành CT Biên dịch điển hình Bảng quản lý ký hiệu Sinh mã mục tiêu Mã trung gian tối ưu Tối ưu mã Mã trung gian Phân tích ngữ nghĩa sinh mã trung gian Lớp ngữ pháp Phân tích ngữ pháp Đơn từ Phân tích từ vựng Mã nguồn CT mục tiêu Kiểm tra xử lý lỗi Vai trị mã trung gian: dễ tương thích, tiện ưu hóa, dễ sinh mã mục tiêu 37 II Cấu thành CT Biên dịch • • • • • • • Bộ phân tích từ vựng Bộ phân tích ngữ pháp Bộ phân tích ngữ nghĩa sinh mã trung gian Bộ tối ưu mã Bộ sinh mã mục tiêu Bộ quản lý bảng ký hiệu Bộ xữ lý lỗi 38 1.Quản lý bảng ký hiệu Bảng ký hiệu cấu trúc liệu lưu giữ định danh thuộc tính tương ứng, phục vụ cho q trình phân tích ngữ pháp sinh mã trung gian Định danh:tên biến、tên hàm số、tên thủ tục… Thuộc tính:cấp phát nhớ cho định danh, định kiểu, không gian sống (scope)  Thiết kế cách hợp lý bảng quản lý ký hiệu vấn đề quan trọng trình xây dựng chương trình dịch 39 Kiểm tra xử lý lỗi Mỗi giai đoạn biên dịch phát sinh lỗi, phải xử lý để cơng tác biên dịch tiếp tục, đồng thời tiếp tục kiểm sốt lỗi có giai đoạn sau  Thông thương giai đoạn phân tích ngữ pháp, ngữ nghĩa tìm đại phận lỗi  Một CT biên dịch tốt phải CT tìm loại lỗi khác mã nguồn, đồng thời hạn chế ảnh hưởng lỗi đến mức độ nhỏ 40 Lượt Là chu kỳ đầy đủ trình xử lý liệu: trình quét từ ký tự đầu đến ký tự cuối mã nguồn đông thời tiến hành gia cơng, q trình sinh dạng thức trung gian mã nguồn hay mã mục tiêu  Có thể coi giai đoạn biên dịch lượt  Cũng coi giai đoạn lượt  Căn phân lượt phụ thuộc nhiều yếu tố cụ thể 41 Main Bộ phân tích ngữ pháp Gọi Xử lý lỗi Trả Nhận đơn từ Gửi đơn từ Quản lý bảng ký hiệu Bộ phân tích Bộ sinh mã CT mục tiêu CT nguồn từ vựng CT CT Kết cấu CT Biên dịch Ngôn ngữ PL/0 (Một lượt) 42 Pha trước Tiền xử lý Mã nguồn Macro define Bao hàm include Phần mở rộng CT CT biênmục dịchtiêu CT hợp dịch Khả định vị mã máy Pha sau Load/Link Thư viện Mã mục tiêu tương đối Mã máy tuyệt đối 43 x:=2*x+y Phân tích từ vựng id1:=2*id1+id2 Phân tích ngữ pháp Phân tích ngữ nghĩa T1=int to real(2) T2:=id1*T1 T3:=id2+T2 id1:=T3 Ưu hóa E E + T F Sinh mã MOV R2 id1 MUL R2 2.0 MOV R1 id2 id1 ADD R1 R2 Quá trình biên dịch câu MOV id2 R1 T * F F T T1:=id1*2.0 id1:=id2+T1 id2 44 Kỹ thuật dịch Kỹ thuật phần mềm • CT biên tập ngơn ngữ hướng kết cấu • Cơng cụ debug • Công cụ Test • Biến đổi tương đương giửa ngơn ngữ cấp cao • Ngơn ngữ song song, biên dịch song song • …… Mục tiêu cua phát triển Máy (CT ) biên dịch nỗ lực giải thuật tối ưu sinh mã 45 Q trình học tập cần ý •Mơn học phân lý thuyết thực hành: Nắm phương pháp Tư trừu tượng, hình thức hóa mơ tả, có nhìn tổng thể • Nắm chế xây dựng ngôn ngữ Nguyên lýKỹ thuật  Cài đặt 46 47 Câu hỏi 48 ... đề cách tự nhiên, ngôn ngữ hướng giải pháp 14 14 ? ?1. 3 Chương trình biên dịch, Chương trình Hợp Ngữ, Chương trình Diễn dịch 1. CT Phiên dịch Là chương trình phiên dịch mã CT viết ngôn ngữ A sang... vựng id1:=2*id1+id2 Phân tích ngữ pháp Phân tích ngữ nghĩa T1=int to real(2) T2:=id1*T1 T3:=id2+T2 id1:=T3 Ưu hóa E E + T F Sinh mã MOV R2 id1 MUL R2 2.0 MOV R1 id2 id1 ADD R1 R2 Quá trình biên.. .Chương I: Giới thiệu Chương trình dịch Nguyên lý Ngơn ngữ lập trình Thiết kế cấu tạo chương trình dịch Chương trình dịch Vấn đề Người dùng:sử dụng basic,

Ngày đăng: 10/05/2021, 13:36

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan