IT6020 Ngun lý ngơn ngữ lập trình Tên học phần: NGUN LÝ CÁC NGƠN NGỮ LẬP TRÌNH Mã số: IT6020 Khối lượng: 2(1.5-1-0-4) Lý thuyết: 22.5 tiết Bài tập: 15 tiết Yêu cầu học phần: bắt buộc, học vào kỳ Đối tượng tham dự: Học viên cao học chuyên ngành Công nghệ Thông tin Điều kiện học phần: Mục tiêu học phần: Kết thúc học phần này, học viên có đƣợc kiến thức nguyên tắc tảng với kỹ thuật tiêu biểu nguyên lý ngơn ngữ lập trình: chƣơng trình dịch, lập trình dịng lệnh, lập trình hƣớng đối tƣợng, lập trình logic, lập trình hàm, lập trình tƣơng tranh lập trình song song Nội dung tóm tắt học phần: Giới thiệu tổng quan ngơn ngữ lập trình nguyên lý Giới thiệu chƣơng trình dịch kỹ thuật liên quan đến chƣơng trình dịch Các nguyên lý kỹ thuật lập trình dịng lệnh, lập trình hƣớng đối tƣợng, lập trình logic, lập trình hàm, lập trình tƣơng tranh lập trình song song Học viên làm tập công cụ phần mềm chọn lọc cho loại mô hình ngơn ngữ lập trình: SWI – Prolog, ML, Oz Nhiệm vụ sinh viên: Dự lớp: Theo quy định Bộ GD&ĐT trƣờng ĐHBKHN Bài tập: Theo quy định Bộ GD&ĐT trƣờng ĐHBKHN 10 Đánh giá kết quả: KT/BT(0.40)-T(TL:0.60) Điểm trình: trọng số 0.40 - Bài tập làm đầy đủ - Hoàn thành tập lớn - Kiểm tra kỳ Thi cuối kỳ (tự luận): trọng số 0.60 11 Tài liệu học tập: Sách giáo khoa chính: A Louden Programming language MIT, 2004, 2nd Edition Peter Van Roy, Seif Haridi, Concept Techniques and Models of Computer Programming, The MIT Press, 2004, ISBN-13: 978-0262220699 Sách tham khảo: Xem phần tài liệu tham khảo 12 Nội dung chi tiết học phần: NGUN LÝ CÁC NGƠN NGỮ LẬP TRÌNH Ngƣời biên soạn: PGS Huỳnh Quyết Thắng, TS Nguyễn Hƣ̃u Đƣ́c MỞ ĐẦU (LT 0.5) Mục đích mơn học Nội dung môn học Sách giáo khoa tài liệu tham khảo CHƢƠNG TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH VÀ CHƢƠNG TRÌNH DỊCH (LT 8; BT 3) 1.1 Tổng quan ngơn ngữ lập trình: 1.1.1 Lịch sử phát triển ngơn ngữ lập trình 1.1.2 Các khn phép (paradigm) lập trình 1.1.3 Các ngun lý thiết kế ngơn ngữ lập trình 1.2 Chƣơng trình dịch kiến trúc chƣơng trình dịch 1.2.1 Tổng quan chƣơng trình dịch 1.2.2 Kiến trúc chƣơng trình dịch 1.2.3 Một số kỹ thuật tiêu biểu chƣơng trình dịch 1.3 Cú pháp ngơn ngữ lập trình 1.3.1 Cấu trúc từ vựng với biểu thức quy (regular expression) 1.3.2 Cấu trúc ngữ pháp 1.3.2.1 Văn phạm phi ngữ cảnh BNF 1.3.2.2 Cây phân tích (parse tree) cú pháp trừu tƣợng (abstract syntax tree) 1.3.2.3 Sự nhập nhằng, tính kết hợp độ ƣu tiên 1.4 Ngữ nghĩa ngôn ngữ lập trình 1.4.1 Định danh, thuộc tính ràng buộc 1.4.2 Hệ thống kiểu 1.4.3 Các cấu trúc điều khiển Nội dung tập 1: Định nghĩa cú pháp, ngữ nghĩa ngôn ngữ với công cụ ANTLR CHƢƠNG LẬP TRÌNH CHỈ THỊ (IMPERATIVE PROGRAMMING) (LT 2; BT 2) 2.1 Tổng quan lập trình thị 2.2 Mơ hình nhớ lập trình thị 2.3 Các cấu trúc điều khiển lập trình thị 2.4 Lập trình cấu trúc với hàm thủ tục Nội dung tập 2: thực hành lập trình thị với PASCAL CHƢƠNG LẬP TRÌNH HƢỚNG ĐỐI TƢỢNG, HƢỚNG THÀNH PHẦN VÀ DỊCH VỤ (LT 3; BT 2) 3.1 Tổng quan lập trình hƣớng đối tƣợng 3.2 Các kỹ thuật lập trình hƣớng đối tƣợng 3.2.1 Kỹ thuật đóng gói 3.2.2 Kỹ thuật thừa kế 3.2.3 Kỹ thuật liên kết động tính đa hình 3.3 So sánh đánh giá ngơn ngữ lập trình hƣớng đối tƣợng 3.4 Phát triển lập trình hƣớng đối tƣợng: 3.4.1 Xây dựng phần mềm hƣớng thành phần: nguyên lý, quy trình, kiến trúc 3.4.2 Xây dựng phần mềm hƣớng dịch vụ: nguyên lý, quy trình, kiến trúc 3.4.3 Các tảng hỗ trợ lập trình hƣớng đối tƣợng, hƣớng thành phần, hƣớng dịch vụ Nội dung tập 3: Lập trình hƣớng đối tƣợng, hƣớng thành phần hƣớng dịch vụ CHƢƠNG LẬP TRÌNH LOGIC (LT 3; BT 3) 4.1 Tổng quan lập trình Logic 4.2 Các kỹ thuật lập trình Logic 4.2.1 Hợp giải (resolution) hợp (unification) 4.2.2 Kỹ thuật điều khiển với toán tử cắt 4.3 Cấu trúc liệu lập trình Logic 4.4 Phát triển lập trình Logic 4.4.1 Lập trình lơ-gic ràng buộc (Constraint Logic Programming) 4.4.2 Lập trình lơ-gic quy nạp (Inductive Logic Programming) Nội dung tập 4: Lập trình logic Công cụ sử dụng để minh họa SWI-Prolog CHƢƠNG LẬP TRÌNH HÀM (LT 3; BT 3) 5.1 Tổng quan lập trình hàm 5.2 Các kỹ thuật lập trình hàm 5.2.1 Hàm đệ quy 5.2.2 Hàm bậc cao (higher-order functions) 5.2.3 Hàm đa hình (polymorphic functions) 5.3 Các cấu trúc liệu lập trình hàm 5.3.1 Kiểu liệu ngƣời dùng định nghĩa 5.3.2 Kiểu liệu đa hình 5.3.3 Kiểu liệu trừu tƣợng 5.4 Phát triển lập trình hàm 5.4.1 Mơ đun mơ đun bậc cao 5.4.2 Định trị trì hỗn (lazy evaluation) Nội dung tập 5: Lập trình hàm Công cụ sử dụng để minh họa ML CHƢƠNG LẬP TRÌNH TƢƠNG TRANH VÀ LẬP TRÌNH SONG SONG (LT 3; BT 2) 6.1 Tổng quan lập trình tƣơng tranh lập trình song song 6.2 Các mơ hình lập trình tƣơng tranh lập trình song song 6.3 Lập trình tƣơng tranh với kỹ thuật chia sẻ nhớ chung 6.4 Lập trình song song với kỹ thuật truyền thông điệp Nội dung tập 6: Lập trình tƣơng tranh lập trình song song Cơng cụ sử dụng để minh họa Oz 13 Nội dung thí nghiệm (thực hành, tiểu luận, tập lớn) Các vấn đề tiên tiến định hƣớng phát triển ngun lý ngơn ngữ lập trình 14 Tài liệu tham khảo Peter Van Roy, Seif Haridi, Concept Techniques and Models of Computer Programming, The MIT Press, 2004, ISBN-13: 978-0262220699 A Louden, Programming language, MIT, 2004, 2nd Edition Allen Tucker, Robert Noonan, Programming Languages - Principles and Paradigms, 2002 Benjamin C Pierce, Advanced Topics in Types and Programming Languages, The MIT Press, 2004, ISBN 978-0262162289 ... NGƠN NGỮ LẬP TRÌNH VÀ CHƢƠNG TRÌNH DỊCH (LT 8; BT 3) 1.1 Tổng quan ngơn ngữ lập trình: 1.1.1 Lịch sử phát triển ngơn ngữ lập trình 1.1.2 Các khn phép (paradigm) lập trình 1.1.3 Các nguyên lý thiết... 5: Lập trình hàm Cơng cụ sử dụng để minh họa ML CHƢƠNG LẬP TRÌNH TƢƠNG TRANH VÀ LẬP TRÌNH SONG SONG (LT 3; BT 2) 6.1 Tổng quan lập trình tƣơng tranh lập trình song song 6.2 Các mơ hình lập trình. .. ANTLR CHƢƠNG LẬP TRÌNH CHỈ THỊ (IMPERATIVE PROGRAMMING) (LT 2; BT 2) 2.1 Tổng quan lập trình thị 2.2 Mơ hình nhớ lập trình thị 2.3 Các cấu trúc điều khiển lập trình thị 2.4 Lập trình cấu trúc