Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 14 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
14
Dung lượng
179,82 KB
Nội dung
Nguyễn Hữu Duy - 20200113 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG - - BÁO CÁO BÀI TẬP Đề tài: Tìm hiểu mơ thức lập trình Giảng viên: Vũ Đức Vượng Họ tên: Nguyễn Hữu Duy MSSV: 20200113 Học phần: IT3040 Mã lớp: 132626 Hà Nội, năm 2022 Nguyễn Hữu Duy - 20200113 I II III MỤC LỤC Tìm hiều chung mơ thức lập trình Lập trình mệnh lệnh(Imperative paradigm) Lập trình chức năng(Functional paradigm) Lập trình hướng logic(Logical paradigm) Lập trình hướng đối tượng(Object-oriented paradigm) Lập trình trực quan(Visual paradigm) Lập trình song song(Parallel paradigm) Lập trình tương tranh(Concurrent paradigm) Lập trình phân tán(Distributed paradigm) Lập trình hướng dịch vụ(Service-oriented paradigm) Tìm hiểu lập trình hướng đối tượng Lập trình hướng đối tượng gì? Một số khái niệm cần biết OOP Các nguyên lí OOP Các ưu điểm lập trình hướng đối tượng Tài liệu tham khảo BAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinh Nguyễn Hữu Duy - 20200113 I Tìm hiểu chung mơ thức lập trình Lập trình mệnh lệnh( Imperative paradigm ) Trong khoa học máy tính, Imperative paradigm mơ thức lập trình sử dụng câu lệnh để thay đổi trạng thái chương trình Nó giống với cách mà mệnh lệnh thức ngôn ngữ tự nhiên diễn tả mệnh lệnh, chương trình mệnh lệnh bao gồm câu lệnh(command) cho máy tính dễ thực Imperative paradigm tập trung vào miêu tả cách chương trình hoạt động Thành phần: Declarative statements (câu lệnh khai báo): Cung cấp tên cho biến Các biến thay đổi giá trị trình thực chương trinh Assignments statements (lệnh gán):Gán giá trị cho biến Program flow control statements (câu lệnh điều khiển cấu trúc chương trình): Xác định trình tự thực lệnh chương trình Module( chia chương trình thành chương trình con): Functions Procedures Ví dụ hốn đổi giá trị hai số a b: int main() { int a=5,b=10,t; t=a; a=b; b=t; } Khi này, a=10; b=5 Lập trình chức năng( Functional paradigm) Trong khoa học máy tính, Functional paradigm mơ thức lập trình theo phong cách xây dựng cấu trúc yếu tố chương trình máy tính, xử lí tính tốn đánh giá hàm toán học nhằm tránh thay đổi trang thái liệu Đây mơ thức lập trình khai BAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinh BAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinh Nguyễn Hữu Duy - 20200113 báo( Declarative programming), thực biểu thức khai báo thay câu lệnh Trong mã chức năng, giá trị đầu hàm phụ thuộc vào đối số truyền cho hàm Vì vậy, việc gọi hàm f hai lần giá trị đối số x tạo kết f(x) lần Thành phần: Tập hợp các cấu trúc dữ liệu và các hàm liên quan Tập hợp các hàm cơ sở Tập hợp các toán tử Đặc trưng bản: module hóa chương trình Chức năng là biểu diễn của một biểu thức Giải thuật thực hiện theo từng bước Giá trị trả về là khơng thể biến đổi Khơng thể thay đổi CTDL của giá trị nhưng có thể sao chép các thành phần tạo nên giá trị đó Tính tốn bằng cách gọi các chức năng Ví dụ int gcd(int a, int b) { If(b==0) return a; Else return gcd(b,a%b); } Int main() { Int a=56,b=12; gcd(a,b); } Khi này, kết in hình Lập trình hướng logic( Logic paradigm) BAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinh BAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinh Nguyễn Hữu Duy - 20200113 Logic paradigm mơ thức lập trình mà phần lớp dựa tính logic hình thức Bất kì chương trình viết ngơn ngữ lập trình logic tập hợp câu dạng logic, diễn đạt kiện quy tắc số vấn đề Các họ ngơn ngữ lập trình bao gồm Prolog, lập trình trả lời (ASP) Datalog Trong tất ngôn ngữ này, quy tắc viết dạng mệnh lệnh: H:-B1,…,Bn khai báo hàm ý logic: H if B1 and … Bn Trong H gọi phần đầu quy tắc B1Bn gọi phần thân Sự kiện quy tắc khơng có phần than viết dạng :H Việc đọc khai báo chương trình logic sử dụng lập trình viên để xác minh tính đắn chúng Hơn nữa, kĩ thuật chuyển đổi chương trình dựa logic sử dụng để chuyển đổi chương trình logic thành chương trình tương đương logic hiệu Trong ngơn ngữ lập trình logic Prolog, lập trình viên sử dụng giải vấn đề biết chế thực thi để cải thiện hiệu chương trình Ví dụ: Brother(X,Y) :Father(F,X), Father(F,Y), Mother(M,X), Mother(M,Y), Male(X) (X anh trai Y họ có chung bố(F), chung mẹ(M) X có giới tính nam) Lập trình hướng đối tượng(Object-oriented-paradigm) Object-oriented-paradigm(OOP) mơ thưc lập trình dựa khái niệm objects(đối tượng), chứa liệu, dạng trường thường gọi thuộc tính mã, dạng thủ tục thường gọi phương thức Một tính đối tượng thủ tục đối tượng truy cập thường sửa đổi trường liệu đối tượng mà chúng liên kết Trong OOP, chương trình máy tính thiết kế cách làm cho chúng khỏi đối tượng tương tác với Có đa dạng đáng kể ngôn ngữ OOP, ngôn ngữ phổ biến dựa lớp, có nghĩa đối tượng thể lớp, thường xác định loại chúng BAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinh BAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinh Nguyễn Hữu Duy - 20200113 Ý tưởng: Các khái niệm mơ hình tương tác giới thực Dữ liệu thao tác liệu bao gói đối tượng Cơ chế che giấu thông tin nội sử dụng để tránh tác động bên Các đối tượng tương tác với qua truyền thơng điệp, phép ẩn dụ cho việc thực thao tác đối tượng Trong phần lớp NNLT HĐT, đối tượng phân loại thành lớp + Đối tượng lớp có chung thuộc tính, cho phép lập trình lớp thay lập trình đối tượng riêng lẻ + Lớp đại diện cho khái niệm đối tượng đại diện cho thể + Lớp có tính kế thừa, cho phép mở rộng hay chuyên biệt hóa Nhiều ngơn ngữ lập trình sử dụng rộng rãi C++, Object Pascal, Java, Python,… ngôn ngữ đa mơ hình hỗ trợ lập trình hướng đối tượng mở mức độ lớn thấp hơn, thường kết hợp với lập trình thủ tục, bắt buộc Các ngôn ngữ OOP phổ biến bao gồm Java, C+ +, C#, Python, PHP,… Lập trình trực quan(Visual paradigm) Visual paradigm language ngơn ngữ lập trình cho phép người dùng tạo chương trình cách thao tác yếu tố chương trình đồ họa thay định chúng văn Một VPL cho phép lập trình với biểu thức trực quan, xếp khơng gian kí hiệu văn đồ họa, sử dụng thành phần cú pháp kí hiệu phụ Ví dụ: Nhiều VPL( gọi lập trình dataflow sơ đồ) dựa ý tưởng “hộp mũi tên”, hộp đối tượng hình khác coi thực thể, kết nối mũi tên, đường vòng cung biểu thị quan hệ Lập trình song song( Parallel paradigm) Tính tốn song song( Parallel Computing) việc chia công việc thành công việc nhỏ cho công việc thực đồng thời với hệ thống có nhiều vi xử lí( multiprocessor) hay vi xử lí đa nhân( multicore) nhằm giảm thời gian thực cơng việc xuống Việc lập trình để tách công việc nhỏ xếp để xử lí song song gọi lập trinh song song Tính tốn song song có liên quan chặt chẽ với tính toan tương tranh, cơng cụ thường sử dụng thường bị xáo trộn, BAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinh BAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinh Nguyễn Hữu Duy - 20200113 hai yếu tố khác biệt: có song song mà không cần tương tranh( bitlevel parallelism) đồng thời khơng có song song( đa nhiệm cách chia sẻ thời gian CPU lõi đơn) Trong điện toán song song, tác vụ tính tốn thường chia thành nhiều, thường nhiều tác vụ phụ giống xử lí độc lập kết kết hợp sau đó, sau hoan Ngược lại, điện toan đồng thời, quy trinh khác thường không giải nhiệm vụ liên quan; họ làm, điển hình điện toan phân tán, tác vụ riêng biệt có tinh chất đa dạng thường yêu cầu số giao tiếp quy trinh thực Các máy tinh song song phân loại cách đại khai theo mức độ mà phần cứng hỗ trợ song song, với máy tinh đa lõi đa xử lí có nhiều phần xử lí máy, cụm, MPP lưới sử dụng nhiều máy tinh để làm việc tập Kiến trúc máy tinh song song chuyên dụng sử dụng xử lí truyền thống, để tăng tốc tác vụ cụ thể Trong số trường hợp, tinh song song suốt người lập trình, chẳng hạn song song mức bit mức hướng dẫn, thuật toán song song rõ ràng, đặc biệt thuật tốn sử dụng đồng thời, khó viết trinh tự tuần tự, đồng thời giới thiệu số lõi phần mềm tiềm năng, điều kiện chủng tộc phổ biến Giao tiếp đồng hóa nhiệm vụ khác thường trở ngại lớn để có hiệu suất chương trinh song song tốt Lập trinh tương tranh( Concurrent paradigm) Lập trinh tương tranh hình thức điện tốn số tinh toan thực khoảng thời gian chồng chéo, đồng thời phần tử liên tục( hoàn thành trước bắt đầu tiếp theo) Đây thuộc tính hệ thống, chương trinh riêng lẻ, máy tinh có điểm thực thi riêng “luồng điều khiển” cho tinh toán( quy trinh) Một hệ thống đồng thời hệ thống tính tốn tiến lên mà không cần chờ tất tinh toan hoan Cũng mô thức lập trinh, lập trinh tương tranh dạng lập trinh modun, cụ thể chia nhỏ tinh toan tổng thể tinh toan thực đồng thời Những người tiên phong linh vực tinh toan đồng thời bao gồm Edsger Dijkstra, Per Brinch Hansen Car Hoare Lập trinh phân tán( Distributed paradigm) BAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinh BAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinh Nguyễn Hữu Duy - 20200113 Lập trinh phân tán dạng lập trinh song song( tinh toan song song) Lập trình song song tạo mối liên hệ máy tinh đơn vị tinh toan, khiến chúng hoạt động đồng thời vấn đề cụ thể( dự báo thời tiết chẳng hạn) Các đơn vị tinh toan đặt gần tách rời Khi đơn vị tách rời, ta goi lập trinh phân tán Với mơ hình lập trinh này, đơn vị tinh toan thường khác nhau, khác hệ điều hanh thiết lập mạng máy tinh Những yếu tố khiến cho việc lập trinh tinh toan máy tinh trở nên tương đối phức tập khó khăn Lập trinh mạng phân tán thường có hai khai niệm chinh: peer to peer, client-server,…Peer to peer lập trinh ngang hàng hai máy tinh Còn lập trinh client-server lập trinh cho phép n máy client kết nối tới m Server – mơ hình gặp nhiều thực tế Lập trình hướng dịch vụ( Service-oriented paradigm) Lập trình hướng dịch vụ (SOP) mơ hình lập trình sử dụng "dịch vụ" làm đơn vị hoạt động máy tính, để thiết kế triển khai ứng dụng kinh doanh tích hợp chương trình phần mềm quan trọng Các dịch vụ đại diện cho bước quy trình kinh doanh ứng dụng mơ hình phân phối hiệu chi phí ứng dụng kinh doanh độc lập tổng hợp "tích hợp từ ngồi" SOP vốn thúc đẩy kiến trúc hướng dịch vụ (SOA), nhiên, khơng giống với SOA Trong SOA tập trung vào giao tiếp hệ thống sử dụng "dịch vụ", SOP cung cấp kỹ thuật để xây dựng mô-đun ứng dụng linh hoạt sử dụng dịch vụ nhớ làm đơn vị công việc Dịch vụ nhớ SOP ngoại hóa cách minh bạch hoạt động dịch vụ web Do tiêu chuẩn Dịch vụ Web độc lập với ngôn ngữ tảng, SOP bao gồm tất mơ hình, ngơn ngữ tảng lập trình có Trong SOP, thiết kế chương trình xoay quanh ngữ nghĩa gọi dịch vụ, định tuyến logic mô tả luồng liệu giao diện dịch vụ xác định rõ ràng Tất mơ-đun chương trình SOP đóng gói dạng dịch vụ dịch vụ bao gồm dịch vụ lồng khác theo cách phân cấp với độ sâu vô hạn hệ thống phân cấp ngăn xếp dịch vụ Một dịch vụ tổng hợp chứa cấu trúc lập trình số cấu trúc cụ thể SOP Dịch vụ thành phần bên ngồi từ hệ thống khác truy cập thông qua việc sử dụng tiêu chuẩn dịch vụ web API BAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinh BAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinh Nguyễn Hữu Duy - 20200113 độc quyền thơng qua chế trình cắm thêm nhớ Mặc dù SOP hỗ trợ cấu trúc lập trình để giải trình tự, lựa chọn lặp lại, phân biệt với loạt cấu trúc lập trình cung cấp khả gốc tích hợp hướng tới thao tác danh sách liệu, tích hợp liệu, đa luồng tự động mô-đun dịch vụ, quản lý ngữ cảnh khai báo đồng dịch vụ Thiết kế SOP cho phép lập trình viên đồng hóa mặt ngữ nghĩa việc thực thi dịch vụ để đảm bảo xác để khai báo mô-đun dịch vụ làm ranh giới giao dịch với hành vi cam kết / khôi phục tự động Các công cụ thiết kế ngữ nghĩa tảng tự động hóa thời gian chạy xây dựng để hỗ trợ khái niệm SOP Ví dụ: máy ảo dịch vụ (SVM) tự động tạo đối tượng dịch vụ đơn vị công việc quản lý ngữ cảnh chúng thiết kế để chạy dựa siêu liệu chương trình SOP lưu trữ XML tạo công cụ tự động hóa thời gian thiết kế Theo thuật ngữ SOA, SVM vừa nhà sản xuất dịch vụ vừa người tiêu dùng dịch vụ II Tìm hiểu lập trình hướng đối tượng Lập trình hướng đối tượng gì? Lập trình hướng đối tượng(Tiếng anh: Object-oriented paradigm, viết tắt: OOP) mẫu hình lập trình dựa khái niệm "cơng nghệ đối tượng", mà đó, đối tượng chứa đựng các dữ liệu, các trường, thường gọi các thuộc tính; và mã nguồn, tổ chức thành các phương thức. Phương thức giúp cho đối tượng truy xuất hiệu chỉnh trường liệu đối tượng khác, mà đối tượng có tương tác (đối tượng hỗ trợ phương thức "this" "self") Trong lập trình hướng đối tượng, chương trình máy tính thiết kế cách tách khỏi phạm vi đối tượng tương tác với nhau. Ngôn ngữ lập trình hướng đối tượng đa dạng, phần lớn các ngơn ngữ lập trình theo lớp, nghĩa đối tượng ngôn ngữ xem như thực thể của một lớp, dùng để định nghĩa kiểu liệu OOP xem giúp tăng suất, đơn giản hóa độ phức tạp bảo trì mở rộng phần mềm cách cho phép lập trình viên tập trung vào đối tượng phần mềm bậc cao Ngồi ra, nhiều người cịn cho OOP dễ tiếp thu cho người học về lập trình hơn phương pháp trước Một cách giản lược, khái niệm nỗ lực nhằm giảm nhẹ thao tác viết mã cho người lập trình, cho phép họ tạo BAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinh BAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinh Nguyễn Hữu Duy - 20200113 các ứng dụng mà yếu tố bên tương tác với chương trình giống tương tác với đối tượng vật lý Những đối tượng ngôn ngữ OOP kết hợp mã liệu mà chúng nhìn nhận đơn vị Mỗi đối tượng có tên riêng biệt tất tham chiếu đến đối tượng tiến hành qua tên Như vậy, đối tượng có khả nhận vào thông báo, xử lý liệu (bên nó), gửi hay trả lời đến đối tượng khác hay đến môi trường Đa phần ngơn ngữ lập trình thơng dụng (như C++, Delphi,Java,Python etc.) ngôn ngữ lập trình đa mẫu hình hỗ trợ lập trình hướng đối tượng nhiều mức độ khác nhau, thường kết hợp với lập trình mệnh lệnh, lập trình thủ tục Các ngơn ngữ lập trình hướng đối tượng đáng ý gồm có Java, C++, C#, Python, PHP, Ruby, Perl, Object Pascal,… Một số khái niệm cần biết OOP a Lớp(class) Một lớp hiểu khuôn mẫu để tạo đối tượng Trong lớp, người ta thường dùng biến để mơ tả thuộc tính và hàm để mơ tả các phương thức của đối tượng Khi định nghĩa lớp, ta tạo đối tượng từ lớp Để việc sử dụng dễ dàng, thông qua hệ thống hàm tạo (constructor), người ta dùng lớp kiểu liệu để tạo đối tượng b Lớp con(subclass) Lớp lớp thông thường có thêm tính chất kế thừa phần hay tồn các đặc tính của lớp khác Lớp chia sẻ kế thừa gọi là lớp cha (parent class) c Phương thức(method) Phương thức lớp thường dùng để mô tả hành vi đối tượng (hoặc lớp) Ví dụ đối tượng thuộc lớp điện thoại có hành vi sau: Đổ chng, chuyển tín hiệu từ sóng sang dạng nghe được, chuyển tín hiệu giọng nói sang dạng chuẩn, chuyển tín hiệu lên tổng đài.v.v Khi thiết kế, người ta dùng phương thức để mô tả thực hành vi đối tượng Mỗi phương thức thường định nghĩa một hàm, thao tác để thực hành vi viết nội dung hàm Khi thực hành vi này, đối tượng phải thực hành vi khác Ví dụ điện thoại phải chuyển tín hiệu giọng nói sang dạng chuẩn trước chuyển lên tổng đài Cho nên phương thức lớp sử dụng phương thức khác trình thực hành vi 10 BAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinh BAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinh Nguyễn Hữu Duy - 20200113 d Thuộc tính(attribute) Thuộc tính lớp bao gồm biến, hằng, hay tham số nội lớp Ở đây, vai trị quan trọng thuộc tính biến chúng bị thay đổi suốt trình hoạt động đối tượng Các thuộc tính xác định kiểu kiểu chúng kiểu liệu cổ điển lớp định nghĩa từ trước Như ghi, lớp thực thể hố thành đối tượng cụ thể tập hợp giá trị biến nội làm thành trạng thái đối tượng Giống trường hợp phương thức, tùy theo người viết mã, biến nội dùng bên phương thức lớp đó, cho phép câu lệnh bên lớp, hay cho phép lớp có quan hệ đặc biệt quan hệ lớp con, (và quan hệ bạn bè (friend) C++) phép dùng tới (hay thay đổi giá trị nó) Mỗi thuộc tính lớp cịn gọi là thành viên liệu của lớp e Quan hệ lớp đối tượng Lớp quan niệm thông thường cách phân loại thực thể dựa đặc điểm chung thực thể Do lớp khái niệm mang tính trìu tượng hóa rất cao Ví dụ lớp "người" dùng để thực thể sống Trái Đất có thuộc tính: có hai chân, hai bàn tay khéo léo, có tư duy, ngơn ngữ v.v có phương thức: giao tiếp ngôn ngữ, tư duy, đi, đứng hai chân Khi hai người cụ thể ơng A, ơng B đối tượng thuộc lớp người Trong ngôn ngữ lập trình, ta hiểu khái niệm lớp tương tự, ta có q trình "Thực thể hóa" sau, tạo đối tượng thuộc lớp ta định nghĩa (phân loại) f Cộng đồng(Public) Công cộng tính chất dùng để gán cho phương thức, biến nội tại, hay lớp mà khai báo người lập trình cho phép câu lệnh bên đối tượng khác phép dùng đến Ví dụ: Trong C++ khai báo public: int my_var; thì biến my_var có hai tính chất tính cơng cộng integer hai tính chất hợp thành đặc tính biến my_var khiến sử dụng hay thay đổi giá trị (bởi câu lệnh) nơi bên lẫn bên lớp g Riêng tư(Private) Riêng tư thể tính chất đóng mạnh (của đặc tính hay lớp) Khi dùng tính chất gán cho biến, phương thức biến hay phương thức sử dụng bên 11 BAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinh BAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinh Nguyễn Hữu Duy - 20200113 lớp mà chúng định nghĩa Mọi nỗ lực dùng trực tiếp đến chúng từ bên qua câu lệnh hay từ lớp bị phủ nhận hay bị lỗi h Bảo tồn(Protected) Tùy theo ngơn ngữ, có vài điểm nhỏ khác cách hiểu tính chất Nhìn chung tính chất mà dùng để áp dụng cho phương thức, biến nội tại, hay lớp có nội lớp hay lớp (hay nội gói Java) phép gọi đến hay dùng đến phương pháp, biến hay lớp So với tính chất riêng tư tính bảo tồn rộng rãi nghĩa chia sẻ liệu hay chức Nó cho phép số trường hợp dùng tới đặc tính lớp (từ lớp chẳng hạn) Các nguyên lí OOP Đối tượng (object): Các liệu thị kết hợp vào đơn vị đầy đủ tạo nên đối tượng Đơn vị tương đương với chương trình đối tượng chia thành hai phận chính: phần phương thức (method) phần thuộc tính (attribute / Properties) Trong thực tế, phương thức đối tượng hàm thuộc tính biến, tham số hay nội đối tượng (hay nói cách khác tập hợp liệu nội tạo thành thuộc tính đối tượng) Các phương thức phương tiện để sử dụng đối tượng thuộc tính mơ tả đối tượng có tính chất Các phương thức thuộc tính thường gắn chặt với thực tế đặc tính sử dụng đối tượng Trong thực tế, đối tượng thường trìu tượng hóa qua việc định nghĩa lớp(class) Tập hợp giá trị có thuộc tính tạo nên trạng thái đối tượng Mỗi phương thức hay liệu nội với tính chất định nghĩa (bởi người lập trình) xem đặc tính riêng đối tượng Nếu khơng có lầm lẫn tập hợp đặc tính gọi chung đặc tính đối tượng Lập trình hướng đối tượng phương pháp lập trình có tính chất sau: Tính trừu tượng (abstraction): Đây khả chương trình bỏ qua hay khơng ý đến số khía cạnh thơng tin mà trực tiếp làm việc lên, nghĩa có khả tập trung vào cốt lõi cần thiết Mỗi đối tượng phục vụ "động tử" hồn tất cơng việc cách nội bộ, báo cáo, thay đổi trạng thái liên lạc với đối tượng khác mà không cần cho biết 12 BAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinh BAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinh Nguyễn Hữu Duy - 20200113 làm cách đối tượng tiến hành thao tác Tính chất thường gọi là sự trừu tượng liệu Tính trừu tượng thể qua việc đối tượng ban đầu có số đặc điểm chung cho nhiều đối tượng khác mở rộng thân đối tượng ban đầu khơng có biện pháp thi hành Tính trừu tượng thường xác định khái niệm gọi là lớp trừu tượng hay lớp sở trừu tượng Tính đóng gói (encapsulation) và che giấu thơng tin (information hiding): Tính chất khơng cho phép người sử dụng đối tượng thay đổi trạng thái nội đối tượng Chỉ có phương thức nội đối tượng cho phép thay đổi trạng thái Việc cho phép mơi trường bên tác động lên liệu nội đối tượng theo cách hoàn toàn tùy thuộc vào người viết mã Đây tính chất đảm bảo tồn vẹn đối tượng Tính đa hình (polymorphism): Thể thơng qua việc gửi các thơng điệp (message) Việc gửi thơng điệp so sánh việc gọi hàm bên đối tượng Các phương thức dùng trả lời cho thông điệp tùy theo đối tượng mà thơng điệp gửi tới có phản ứng khác Người lập trình định nghĩa đặc tính (chẳng hạn thông qua tên phương thức) cho loạt đối tượng gần thi hành dùng tên gọi mà thi hành đối tượng tự động xảy tương ứng theo đặc tính đối tượng mà khơng bị nhầm lẫn Tính kế thừa (inheritance): Đặc tính cho phép đối tượng có sẵn đặc tính mà đối tượng khác có thơng qua kế thừa Điều cho phép đối tượng chia sẻ hay mở rộng đặc tính sẵn có mà tiến hành định nghĩa lại Tuy nhiên, ngơn ngữ định hướng đối tượng có tính chất Các ưu điểm lập trình hướng đối tượng Dựa nguyên lí kế thừa, q trình mơ tả lớp loại bỏ chương trình bị lặp, dư Và mở rộng khả sử dụng lớp mà không cần thực lại Tối ưu tái sử dụng code hiệu Đảm bảo rút ngắn thời gian xây dựng hệ thống tăng suất thực Sự xuất khái niệm là lớp và đối tượng chính là đặc trưng phương pháp lập trình hướng đối tượng Nó giải 13 BAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinh BAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinh BAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinhBAO.cao.bai.tap.de.tai.tim.hieu.ve.cac.mo.thuc.lap.trinh