Bài giảng Nhập môn công nghệ phần mềm - Chương 8: Lập trình và ngôn ngữ lập trình cung cấp cho người học các kiến thức: Định nghĩa lập trình, ngôn ngữ lập trình, kiểu, đa hình, mô-đun hóa, các phương pháp lập trình cơ bản,... Mời các bạn cùng tham khảo.
Lập trình ngơn ngữ lập trình (8) Nguyễn Thanh Bình Khoa Cơng nghệ Thơng tin Trường ðại học Bách khoa ðại học ðà Nẵng Lập trình kỹ cá nhân lực cá nhân hiểu biết công cụ lập trình lập trình viên cần nguyên tắc lập trình kinh nghiệm lập trình viên tốt viết chương trình • đắn • dễ hiểu • dễ bảo trì, phát triển CuuDuongThanCong.com https://fb.com/tailieudientucntt Ngơn ngữ lập trình Có nhiều phương pháp lập trình khác nhiều ngơn ngữ lập trình khác ðiểm chung ngơn ngữ lập trình (NNLT) dễ diễn đạt dễ hiểu dễ thực thi máy tính Một số tính chất NNLT kiểu kiểm tra kiểu mơ-đun hóa Kiểu Hầu hết NNLT có khái niệm kiểu kiểu số, kiểu lơ-gíc biến có kiểu liệu xác ñịnh Kiểm tra kiểu ñảm bảo toán tử/hàm áp dụng cho tốn tử/tham số có kiểu cho phép CuuDuongThanCong.com https://fb.com/tailieudientucntt Kiểu Ngơn ngữ định kiểu (types languages) có hệ thống kiểu cho phép kiểm tra sử dụng kiểu phù hợp mà không cần thực thi chương trình • kiểm tra tĩnh Ngơn ngữ định kiểu cho phép phát sớm số lỗi liên quan ñến kiểu Ngôn ngữ ñịnh kiểu C, Java, C++ ða hình Ưu điểm hệ thống kiểu kiểm tra kiểu chặt chẽ dễ kiểm tra Tuy nhiên hệ thống kiểu phải mềm dẽo sử dụng • ña hình CuuDuongThanCong.com https://fb.com/tailieudientucntt ða hình Một số tình đa hình Viết hàm áp dụng cho mảng có số phần tử khác • kiểu mảng ñược kiểm tra biên dịch • số phần tử mảng ñược kiểm tra thực thi Áp dụng hàm cho kiểu liệu khác • xây dựng nhiều phiên hàm tương ứng với kiểu khác • xây dựng phiên hàm, xử lý khác ñược thực thực thi • template (C++), generic (Java) ða hình Một số tình đa hình Viết hàm áp dụng cho mảng có số phần tử khác • kiểu mảng ñược kiểm tra biên dịch • số phần tử mảng ñược kiểm tra thực thi Áp dụng hàm cho kiểu liệu khác • xây dựng nhiều phiên hàm tương ứng với kiểu khác • xây dựng phiên hàm, xử lý khác ñược thực thực thi • template (C++), generic (Java) • sử dụng kiểu con/lớp • đa hình ngơn ngữ lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Mơ-đun hóa Xuất vào năm 70 ðóng vai trị quan trọng để tạo phần mềm chất lượng Thiết kế hướng mơ-đun phần mềm = tập hợp mơ-đun quan hệ chúng Hầu hết NNLT hỗ trợ mơ-đun hóa Mơ-đun hóa Một mơ-đun gồm hai phần Phần giao diện • giao tiếp với bên ngồi mơ-đun ay mơđun khác Phần thân • nội dung mơ-đun • cục mơ-đun, che dấu mơ-đun khác 10 CuuDuongThanCong.com https://fb.com/tailieudientucntt Mơ-đun hóa Các mơ-đun trao đổi liệu qua phần giao diện không sử dụng biến tồn cục Nếu thay đổi phần thân ảnh hưởng (hoặc khơng ảnh hưởng) đến mơ-đun khác Trong ngơn ngữ lập trình cấu trúc mơ-đun = hàm Trong ngơn ngữ lập trình hướng đối tượng mơ-đun = lớp / phương thức 11 Các phương pháp lập trình Lập trình thủ tục/cấu trúc (procedural programming) Lập trình hướng đối tượng (object-oriented programming) Lập trình hàm (functional programming) Lập trình lơ-gíc (logic programming) 12 CuuDuongThanCong.com https://fb.com/tailieudientucntt Lập trình thủ tục sử dụng phổ biến lập trình có cấu trúc phù hợp với thiết kế hướng chức NNLT thủ tục Fortran, Ada, Pascal, C 13 Lập trình hướng đối tượng khái niệm đối tượng, lớp đóng gói thừa kế đa hình xu hướng phát triển NNLT ñại NNLT hướng ñối tượng Smalltalk, C++, Java, Delphi 14 CuuDuongThanCong.com https://fb.com/tailieudientucntt Lập trình hàm tính tốn biểu thức hàm tính toán dựa giá trị tham số thao tác danh sách áp dụng lĩnh vực tính tốn trí tuệ nhân tạo NNLT hàm LISP, Scheme 15 Lập trình lơ-gíc thực biểu thức lơ-gíc khái niệm hợp giải (resolution) • tìm kiếm giá trị biến cho biểu thức lơgíc có giá trị ñúng ứng dụng xây dựng hệ chuyên gia xử lý ngơn ngữ tự nhiên NNLT lơ-gíc Prolog 16 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chọn NNLT ñịnh quan trọng phát triển phần mềm giảm chi phí mã nguồn chất lượng dễ bảo trì, phát triển 17 Chọn NNLT dựa vào nhiều yếu tố (1) yêu cầu khách hàng • khách hàng tự bảo trì sản phẩm chương trình dịch • cần có chương trình dịch có chất lượng tốt cơng cụ hỗ trợ • dễ dàng q trình lập trình, bảo trì kinh nghiệm lập trình viên • chọn NNLT mà lập trình làm chủ 18 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chọn NNLT dựa vào nhiều yếu tố (2) yêu cầu tính khả chuyển (portability) • thực nhiều máy tính/plaform khác lĩnh vực ứng dụng • • • • • hệ thống nhúng: C, Assembly hệ thống quản lý: NET, VB, C++ hệ chuyên gia: Prolog mạng: Java, NET website: PHP, ASP • khơng tồn ngơn ngữ đa cho ứng dụng 19 Phong cách lập trình Cần có chương trình dễ hiểu phụ thuộc vào ñặc ñiểm NNLT phong cách người lập trình Phong cách lập trình khơng lập trình viên tự đặt mà tổ chức/doanh nghiệp/dự án đặt luật lập trình quy ước lập trình Mục đích mã nguồn dễ hiểu, dễ kiểm thử, dễ bảo trì lỗi 20 10 CuuDuongThanCong.com https://fb.com/tailieudientucntt Phong cách lập trình Một số nguyên tắc lập trình đặt tên • có ý nghĩa, gợi nhớ trình bày • rỏ ràng, dễ hiểu thích • đầy đủ, dễ đọc hạn chế sử dụng cấu trúc khó hiểu • break, continue, goto ví dụ • quy ước lập trình C++ 21 11 CuuDuongThanCong.com https://fb.com/tailieudientucntt ... M? ?-? ?un hóa Xuất vào năm 70 ðóng vai trị quan trọng ñể tạo phần mềm chất lượng Thiết kế hướng m? ?-? ?un phần mềm = tập hợp m? ?-? ?un quan hệ chúng Hầu hết NNLT ñều hỗ trợ m? ?-? ?un hóa M? ?-? ?un hóa Một m? ?-? ?un... hai phần Phần giao diện • giao tiếp với bên ngồi m? ?-? ?un ay mơđun khác Phần thân • nội dung m? ?-? ?un • cục m? ?-? ?un, che dấu m? ?-? ?un khác 10 CuuDuongThanCong.com https://fb.com/tailieudientucntt M? ?-? ?un... hóa Các m? ?-? ?un trao đổi liệu qua phần giao diện khơng sử dụng biến tồn cục Nếu thay đổi phần thân ảnh hưởng (hoặc khơng ảnh hưởng) đến m? ?-? ?un khác Trong ngơn ngữ lập trình cấu trúc m? ?-? ?un = hàm