CHƯƠNG TRÌNH DỊCH. Bài 1: Nhập môn

44 2 0
CHƯƠNG TRÌNH DỊCH. Bài 1: Nhập môn

Đ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

CHƯƠNG TRÌNH DỊCH Bài 1: Nhập mơn 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 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 XN 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 Nguyên, Đ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 50% + ĐTCK x 50%  Đ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 XUÂN 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 Phần Hệ thống dịch TRƯƠNG XUÂN NAM 30 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 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,…  Chương trình dịch có nhiều ứng dụng: phần mềm dịch ngơn ngữ lập trình, xử lý đoạn script nhúng file, hệ thống phân tích, diễn dịch giao thức,… TRƯƠNG XUÂN NAM 37 Bài toán “Dịch”  Để 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”  Ngay với toán hạn chế khối lượng kiến thức tìm hiểu lớn vấn đề nêu phức tạp  Phần kiến thức học tương đối sơ sài muốn xây dựng phần mềm compiler có giá trị sử dụng thật TRƯƠNG XUÂN NAM 38 Phần Mục tiêu môn học TRƯƠNG XUÂN NAM 39 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 Viết module phân tích từ vựng đơn giản, hiệu Nắm số phương pháp phân tích văn phạm Viết module phân tích văn phạm đơn giản, sử dụng thuật toán giảng dạy lớp  Hiểu vấn đề ngữ nghĩa, sinh mã, tối ưu,…  Hiểu hoạt động máy tính kiểu stack thực thi câu lệnh TRƯƠNG XUÂN NAM 40 Mục tiêu môn học  Ứ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ác cơng cụ xử lý văn • Xử lý ngơn ngữ tự nhiên  Nghiên cứu vấn đề xa chương trình dịch • Các thuật tốn dịch hiệu dành cho ngôn ngữ phức tạp ngơn ngữ tự nhiên • Các hệ thống trích rút thơng tin từ văn • Các hệ thống dịch liên ngữ  Nghiên cứu ứng dụng hệ thống dịch TRƯƠNG XUÂN NAM 41 Phần Thảo luận TRƯƠNG XUÂN NAM 42 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 43 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 tố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 44 ... 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: 14/07/2022, 10:05

Hình ảnh liên quan

3. Một chương trình dịch điển hình - CHƯƠNG TRÌNH DỊCH. Bài 1: Nhập môn

3..

Một chương trình dịch điển hình Xem tại trang 2 của tài liệu.
 Mơ tả hình ảnh (dịch từ hình ảnh thành văn bản) - CHƯƠNG TRÌNH DỊCH. Bài 1: Nhập môn

t.

ả hình ảnh (dịch từ hình ảnh thành văn bản) Xem tại trang 11 của tài liệu.
Một chương trình dịch điển hình - CHƯƠNG TRÌNH DỊCH. Bài 1: Nhập môn

t.

chương trình dịch điển hình Xem tại trang 18 của tài liệu.
 Sử dụng kĩ thuật bảng phương án (automat đẩy xuống)  Thực tế: ngay cả với một ngơn ngữ có cú pháp đơn  - CHƯƠNG TRÌNH DỊCH. Bài 1: Nhập môn

d.

ụng kĩ thuật bảng phương án (automat đẩy xuống)  Thực tế: ngay cả với một ngơn ngữ có cú pháp đơn Xem tại trang 21 của tài liệu.
Pha 2: phân tích cú pháp - CHƯƠNG TRÌNH DỊCH. Bài 1: Nhập môn

ha.

2: phân tích cú pháp Xem tại trang 21 của tài liệu.

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

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

Tài liệu liên quan