1. Trang chủ
  2. » Thể loại khác

CHƯƠNG TRÌNH DỊCH: Tổng quan về môn học

42 41 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 42
Dung lượng 0,9 MB

Nội dung

CHƯƠNG TRÌNH DỊCH Bài 1: Tổng quan mơn học Nội dung Giới thiệu Khái niệm “chương trình dịch” Một chương trình dịch điển hình Một hệ thống dịch Ứng dụng chương trình dịch Đối tượng nghiên cứu mơn học Mục tiêu môn học Thảo luận TRƯƠNG XUÂN NAM Phần Giới thiệu TRƯƠNG XUÂN NAM Môn học “chương trình dịch”  Tên mơn: chương trình dịch (compiler)  Số tín chỉ: (3 lý thuyết + tập)  Nội dung chính:      Tổng quan môn học Các khái niệm sở Phân tích từ vựng Phân tích cú pháp Các vấn đề khác  Giảng viên: Trương Xuân Nam, khoa CNTT  Email: truongxuannam@gmail.com TRƯƠNG XUÂN NAM Tài liệu mơn học  Giáo trình chính: “Compilers: Principles, Techniques and Tools, 2nd edition”  Tài liệu tham khảo: “Nhập mơn chương trình dịch” – Phạm Hồng Ngun, ĐH Cơng nghệ  Bài giảng, tập, mã nguồn, điểm số, thông báo,… đưa lên site http://txnam.net, mục BÀI GIẢNG TRƯƠNG XUÂN NAM Kiến thức yêu cầu  Sử dụng ngơn ngữ lập trình phổ thơng (C/C++, C#, Java,…) để viết chương trình  Hiểu biết tổ chức máy tính:  Hoạt động CPU (lệnh máy, cờ, ghi, ô nhớ,…)  Cách làm việc stack (trong máy tính)  Ngơn ngữ assembly  Lý thuyết tính tốn: automat, biểu thức quy, văn phạm phi ngữ cảnh, phân loại chomsky,…  Cấu trúc liệu: mảng, ngăn xếp, cây, danh sách,…  Thuật tốn: tìm kiếm, xếp, từ điển, duyệt cây,… TRƯƠNG XUÂN NAM Đánh giá kết  Điểm môn học = ĐQT x 30% + ĐTCK x 70%  Điểm trình:  Điểm danh  Bài làm lớp  Bài tập (nộp qua email)  Điểm thi cuối kỳ:     Thi viết, 90 phút Chỉ tập, không lý thuyết Được sử dụng tài liệu tham khảo Chi thi học, khơng có giới hạn nội dung thi TRƯƠNG XN NAM Tại phải học mơn này?  Để có kiến thức chương trình dịch  Để có hiểu biết cách thức hoạt động hệ thống dịch khai thác tốt hệ thống  Để có nâng cao kĩ viết chương trình  Để có hiểu biết điểm mạnh, điểm yếu ngơn ngữ lập trình, có lựa chọn ngơn ngữ lập trình phù hợp với cơng việc bạn  Có thêm lựa chọn cho đề tài làm tốt nghiệp  Có điểm mơn học trường TRƯƠNG XUÂN NAM Phần Khái niệm “chương trình dịch” TRƯƠNG XUÂN NAM Khái niệm “chương trình dịch” Tổng quát nhất: chương trình dịch hệ thống chuyển đổi đoạn văn viết ngôn ngữ A sang đoạn văn tương đương viết ngôn ngữ B Input Software Output Source String Compiler Destination String Grammar Compiler-Compiler Compiler TRƯƠNG XUÂN NAM 10 Pha 6: sinh mã đích  Sinh mã đích (code generation) tạo mã đích (thường dạng mã máy mã assembly) từ mã TAC SSA tối ưu  Đây bước tương đối đơn giản (so với bước khác), việc chuyển đổi từ mã TAC SSA sang mã máy mã trung gian thường sử dụng luật chuyển đổi đơn giản dạng nếu-thì  Ngồi bước bổ sung số thơng tin trường hợp mã đích loại tái định vị TRƯƠNG XUÂN NAM 28 Phân tích Tổng hợp  bước biên dịch chia thành giai đoạn:  Kỳ đầu (front-end), gọi giai đoạn phân tích: • Gồm bước • Giúp biến đổi từ ngơn ngữ nguồn sang mơ hình trung gian • Khơng phụ thuộc vào ngơn ngữ đích  Kỳ sau (back-end), gọi giai đoạn tổng hợp: • Gồm bước sau • Giúp chuyển đổi từ mơ hình trung gian sang ngơn ngữ đích • Không phụ thuộc vào ngôn ngữ nguồn  Thực tế có nhiều ứng dụng sử dụng vài phần trình biên dịch; chẳng hạn ứng dụng kiểm lỗi ngữ pháp trình soạn thảo văn TRƯƠNG XUÂN NAM 29 Phần Một hệ thống dịch TRƯƠNG XUÂN NAM 30 Một hệ thống dịch  Chương trình dịch hiệu phải kèm với nhiều công cụ hỗ trợ, công cụ với chương trình dịch tạo thành hệ thống dịch hồn chỉnh  Các IDE (mơi trường phát triển tích hợp) ngơn ngữ lập trình, ngồi trình biên dịch cịn nhiều cơng cụ khác như: tiền xử lý mã nguồn, công cụ soạn thảo mã nguồn, công cụ hỗ trợ viết mã, công cụ trợ giúp, công cụ gỡ rối, cơng cụ phân tích mã,…  Các cơng cụ dịch tự động ngơn ngữ tự nhiên, ngồi module dịch tự động cịn có cơng cụ khác: nhập liệu, từ điển, nhận dạng, tổng hợp tiếng nói,… TRƯƠNG XUÂN NAM 31 Một hệ thống dịch  Do việc nghiên cứu chương trình dịch sâu sắc, nên nhiều thành phần chương trình dịch chuẩn hóa tách đứng độc lập  Bộ công cụ Lex/Flex: sinh tự động scanner  Bộ công cụ Yacc/Bison: sinh tự động parser  Nhưng module độc lập có ứng dụng riêng thay lẫn  Hệ thống eclipse: hỗ trợ nhiều ngơn ngữ lập trình cách thêm module  Bộ dịch Intel C++ giúp dịch mã C++ tối ưu dùng chip Intel TRƯƠNG XUÂN NAM 32 Phần Ứng dụng chương trình dịch TRƯƠNG XUÂN NAM 33 Ứng dụng chương trình dịch  Từ ứng dụng ban đầu chương trình dịch cho ngơn ngữ lập trình, nhiều kĩ thuật áp dụng vào nhiều ngành khác  Bộ kiểm tra tả  Dùng cho ngơn ngữ tự nhiên (trong phần mềm soạn thảo văn bản)  Trợ giúp việc soạn thảo (intellisense, word suggestion)  Bộ kiểm tra ngữ pháp  Kiểm tra lỗi nhanh viết ngơn ngữ lập trình  Sốt lỗi viết tài liệu ngôn ngữ tự nhiên TRƯƠNG XUÂN NAM 34 Ứng dụng chương trình dịch  Sinh nhận dạng mã độc / virus:  Mỗi mã độc / virus nhận dạng mẫu (pattern) automat  Kết hợp nhiều automat làm để tăng tốc độ việc nhận dạng (thay phải chạy automat cho virus, ta chạy automat phát đồng thời nhiều virus)  Các công cụ ngơn ngữ:  Bộ tìm kiếm văn hiệu  Bộ phát ngôn ngữ  Bộ diễn dịch giao thức TRƯƠNG XUÂN NAM 35 Phần Đối tượng nghiên cứu môn học TRƯƠNG XN NAM 36 Bài tốn “Dịch”  Như tìm hiểu phần trên, thấy:  Chương trình dịch có nhiều biến thể: biên dịch, thơng dịch, kiểm tra ngữ pháp, kiểm tra lỗi tả,…  Chương trình dịch phong phú đầu vào đầu ra: dịch từ ngôn ngữ tự nhiên sang ngơn ngữ tự nhiên, dịch ngơn ngữ lập trình sang mã máy, dịch từ biểu thức quy thành automat,…  Để tránh vấn đề lan man, cần thu gọn đối tượng nghiên cứu môn học cách hạn chế chúng lại, ta phát biểu toán “Dịch” sau: “nghiên cứu bước hoạt động hệ thống biên dịch ngơn ngữ lập trình đơn giản thành mã máy” TRƯƠNG XUÂN NAM 37 Phần Mục tiêu môn học TRƯƠNG XUÂN NAM 38 Mục tiêu môn học  Mục tiêu kiến thức:      Nắm khái niệm chương trình dịch Nắm cách thức hoạt động hệ thống dịch Nắm phương pháp phân tích từ vựng đơn giản Nắm số phương pháp phân tích văn phạm Hiểu vấn đề ngữ nghĩa, sinh mã, tối ưu,…  Ứng dụng thực tế:  Áp dụng vào lĩnh vực khác: giao thức trao đổi thông tin, công cụ xử lý văn bản, xử lý ngôn ngữ tự nhiên  Nghiên cứu vấn đề xa chương trình dịch  Nghiên cứu ứng dụng hệ thống dịch TRƯƠNG XUÂN NAM 39 Phần Thảo luận TRƯƠNG XUÂN NAM 40 Thảo luận Hãy bước hoạt động trình dịch hợp ngữ (assembler) tương ứng với pha compiler mô tả Một dịch giả dịch thơ từ tiếng Anh sang tiếng Việt, theo bạn, dịch giả thực pha pha complier? Hãy mơ tả q trình thực kết bước Một nhân chứng mơ tả lại hình ảnh đối tượng vụ án cho cảnh sát, nhân chứng thực pha pha trên? TRƯƠNG XUÂN NAM 41 Thảo luận Các ưu điểm nhược điểm việc biên dịch so với việc thông dịch Sự giống khác toán “dịch ngơn ngữ lập trình thành mã máy” “dịch từ tiếng Anh sang tiếng Việt” Sự giống khác chương trình dịch người biên dịch Kể tên chương trình khơng phải chương trình dịch lại hoạt động chương trình dịch Việc diễn giải hành vi động vật có phải dịch? TRƯƠNG XUÂN NAM 42 ... dịch thành mã bytecode  Máy ảo chạy mã bytecode dạng thông dịch  Một số sử dụng compiler just-in-time compiler  Mã C# biên dịch thành mã IL  Mã IL biên dịch thành mã máy lần chạy đầu TRƯƠNG... cảnh (hoặc mở rộng)  Có nhiều phương pháp xây dựng parser:  Sử dụng kĩ thuật duyệt (top-down bottom-up)  Sử dụng kĩ thuật bảng phương án (automat đẩy xuống)  Thực tế: với ngôn ngữ có cú pháp... giản dạng nếu-thì  Ngồi bước bổ sung số thơng tin trường hợp mã đích loại tái định vị TRƯƠNG XUÂN NAM 28 Phân tích Tổng hợp  bước biên dịch chia thành giai đoạn:  Kỳ đầu (front-end), gọi giai

Ngày đăng: 02/09/2020, 13:18

HÌNH ẢNH LIÊN QUAN

Một chương trình dịch điển hình - CHƯƠNG TRÌNH DỊCH: Tổng quan về môn học
t chương trình dịch điển hình (Trang 18)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w