1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu về các mô thức lập trình

23 1,2K 10

Đ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 23
Dung lượng 578,66 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tìm hiểu về các mô thức lập trình

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

BÁO CÁO TÌM HIỂU VỀ CÁC MÔ THỨC LẬP TRÌNH

Trang 2

I) Các mô thức lập trình phổ biến.

1 Imperative paradigm- Lập trình mệnh lệnh.

- Trong khoa học máy tính, Imperative paradigm là một mô thức lập trình sử dụng

câu lệnh để thay đổi trạng thái của chương trình Nó giống với cách mà mệnh lệnhthức trong ngôn ngữ tự nhiên diễn tả mệnh lệnh, một chương trình mệnh lệnh bao

gồm các mệnh lệnh (command) cho máy tính để thực hiện Imperative paradigm

tập trung vào miêu tả cách một chương trình hoạt động

Trang 3

- Trong khoa học máy tính, Functional paradigm là một mô thức lập trình theo

phong cách xây dựng cấu trúc và các yếu tố của các chương trình máy tính, bộ xử

lý tính toán như là sự đánh giá các hàm toán học nhằm tránh sự thay đổi trạng thái

dữ liệu Đây là một mô hình lập trình khai báo (Declarative programming), được

thực hiện bởi các biểu thức hoặc khai báo thay vì các câu lệnh Trong mã chứcnăng giá trị đầu ra của hàm chỉ phụ thuộc vào các đối số được truyền cho hàm, vì

vậy việc gọi hàm f hai lần với cùng giá trị đối số x tạo ra cùng một kết quả f(x) mỗi

lần

* Ví dụ sử dụng Functional paradigm :

// Tính ước chung lớn nhất của x và y

int ucln(int x, int y)

Trang 4

B3: ucln(4,0)

B4: => Ước chung lớn nhất là 4

3 Logical paradigm- Lập trình Logic

- Logical paradigm là một loại mô thức lập trình mà phần lớn dựa trên logic hình

thức Bất kỳ chương trình nào được viết bằng ngôn ngữ lập trình logic là một tậphợp các câu ở dạng logic, diễn đạt các sự kiện và quy tắc về một số miền vấn

đề Các họ ngôn ngữ lập trình logic chính bao gồm Prolog , lập trình bộ trảlời (ASP) và Datalog Trong tất cả các ngôn ngữ này, các quy tắc được viết dướidạng mệnh đề: H :- B1, …, Bn và được đọc khai báo là hàm ý logic: H if B1 and …and Bn

Trong đó H được gọi là phần đầu của quy tắc và B1Bn được gọi là phần thân Sựkiện là các quy tắc không có phần thân và được viết dưới dạng đơn giản là: H

- Việc đọc khai báo các chương trình logic có thể được sử dụng bởi một lập trìnhviên để xác minh tính đúng đắn của chúng Hơn nữa, các kỹ thuật chuyển đổichương trình dựa trên logic cũng có thể được sử dụng để chuyển đổi các chươngtrình logic thành các chương trình tương đương logic hiệu quả hơn Trong họ ngônngữ lập trình logic Prolog, lập trình viên cũng có thể sử dụng cách giải quyết vấn

đề đã biết của cơ chế thực thi để cải thiện hiệu quả của các chương trình

(X là anh trai của Y khi họ có chung bố (F), chung mẹ (M) và X có giới tính nam).

4 Object-oriented paradigm- Lập trình hướng đối tượng

- Object-oriented paradigm (OOP) là một mô thức lập trình dựa trên khái niệm

objects (đối tượng), có thể chứa dữ liệu, dưới dạng các trường thường được gọi là

4

Trang 5

thuộc tính và mã, dưới dạng thủ tục thường gọi là phương thức Một tính năng của các đối tượng là các thủ tục của đối tượng có thể truy cập và thường sửa đổi các trường dữ liệu của đối tượng mà chúng được liên kết Trong OOP, các chương trìnhmáy tính được thiết kế bằng cách làm cho chúng ra khỏi các đối tượng tương tác với nhau Có sự đa dạng đáng kể của các ngôn ngữ OOP, nhưng những ngôn ngữ phổ biến nhất là dựa trên lớp, có nghĩa là các đối tượng là các thể hiện của các lớp, thường xác định loại của chúng.

- Nhiều ngôn ngữ lập trình được sử dụng rộng rãi nhất (như C ++, Object Pascal,Java, Python, vv) là các ngôn ngữ lập trình đa mô hình hỗ trợ lập trình hướng đốitượng ở mức độ lớn hơn hoặc thấp hơn, thường kết hợp với lập trình thủ tục, bắtbuộc Các ngôn ngữ OOP phổ biến bao gồm: Java, C++, C#, Python, PHP,JavaScript, Ruby, Perl, Object Pascal, Objective-C, Dart, Swift, Scala, CommonLisp và Smalltalk

*Ví dụ sử dụng Object-oriented paradigm trong :

Trang 6

5 Visual paradigm- Lập trình trực quan.

- Visual paradigm language là bất kỳ ngôn ngữ lập trình nào cho phép người dùng

tạo chương trình bằng cách thao tác các yếu tố chương trình bằng đồ họa thay vìchỉ định chúng bằng văn bản Một VPL cho phép lập trình với các biểu thức trựcquan, sắp xếp không gian của các ký hiệu văn bản và đồ họa, được sử dụng làmthành phần của cú pháp hoặc ký hiệu phụ

- Ví dụ: nhiều VPL (được gọi là lập trình dataflow hoặc sơ đồ ) được dựa trên ýtưởng về "hộp và mũi tên", trong đó các hộp hoặc các đối tượng màn hình khácđược coi là các thực thể, được kết nối bằng mũi tên, đường hoặc vòng cung biểuthị quan hệ

*Ví dụ sử dụng dataflow:

6

Trang 7

6 Parallel paradigms- Lập trình song song.

- Tính toán song song (Parallel Computing) là việc chia một công việc ra thành các

công việc nhỏ và cho các công việc này thực hiện đồng thời với nhau bởi các hệ

thống có nhiều bộ vi xử lý (multiprocessor) hay bộ vi xử lý đa nhân (multicore)

nhằm giảm thời gian thực hiện công việc đó xuống Việc lập trình để tách ra cáccông việc nhỏ và sắp xếp để xử lý song song thì được gọi là lập trình song song

- Tính toán song song có liên quan chặt chẽ với tính toán tương tranh, các công

cụ này thường được sử dụng cùng nhau và thường bị xáo trộn, mặc dù hai yếu tốnày rất khác biệt: có thể có song song mà không cần tương tranh (như bit-levelparallelism) và đồng thời không có song song (như đa nhiệm bằng cách chia sẻthời gian trên CPU lõi đơn) Trong điện toán song song, một tác vụ tính toánthường được chia thành nhiều, thường là nhiều tác vụ phụ rất giống nhau có thểđược xử lý độc lập và kết quả được kết hợp sau đó, sau khi hoàn thành Ngược lại,trong điện toán đồng thời, các quy trình khác nhau thường không giải quyết cácnhiệm vụ liên quan; khi họ làm, như là điển hình trong điện toán phân tán, các tác

vụ riêng biệt có thể có tính chất đa dạng và thường yêu cầu một số giao tiếp giữacác quá trình trong khi thực hiện

- Các máy tính song song có thể được phân loại một cách đại khái theo mức độ màphần cứng hỗ trợ song song, với các máy tính đa lõi và đa xử lý có nhiều thànhphần xử lý trong một máy, trong khi các cụm , MPP và lưới sử dụng nhiều máytính để làm việc như nhau bài tập Kiến trúc máy tính song song chuyên dụng đôikhi được sử dụng cùng với các bộ xử lý truyền thống, để tăng tốc các tác vụ cụ thể

- Trong một số trường hợp, tính song song là trong suốt đối với người lập trình,chẳng hạn như song song ở mức bit hoặc mức hướng dẫn, nhưng các thuật toánsong song rõ ràng , đặc biệt là các thuật toánsử dụng đồng thời, khó viết hơn cáctrình tự tuần tự, bởi vì đồng thời giới thiệu một số mới các lớp lỗi phần mềm tiềmnăng , trong đó điều kiện chủng tộc là phổ biến nhất Giao tiếp và đồng bộ hóa giữacác nhiệm vụ khác nhau thường là một trong những trở ngại lớn nhất để có đượchiệu suất chương trình song song tốt

Trang 9

7 Concurrent programming- Lập trình tương tranh.

- Lập trình tương tranh là một hình thức điện toán trong đó một số tính toán được

thực hiện trong các khoảng thời gian chồng chéo, đồng thời là một phần tử liêntục (một hoàn thành trước khi bắt đầu tiếp theo) Đây là một thuộc tính của một hệthống, đây có thể là một chương trình riêng lẻ , một máy tính hoặc một mạngmạng và có một điểm thực thi riêng hoặc "luồng điều khiển" cho mỗi tính toán("quy trình") Một hệ thống đồng thời là một hệ thống trong đó một tính toán cóthể tiến lên mà không cần chờ tất cả các tính toán khác hoàn thành

- Cũng như một mô hình lập trình, lập trình tương tranh là một dạng lập trình đun , cụ thể là chia nhỏ một tính toán tổng thể thành các tính toán con có thể đượcthực hiện đồng thời Những người tiên phong trong lĩnh vực tính toán đồng thờibao gồm Edsger Dijkstra, Per Brinch Hansen và CAR Hoare

mô-8 Distributed programming- Lập trình phân tán.

Trang 10

- Lập trình phân tán là một dạng của lập trình song song (tính toán song song) Lậptrình song song tạo ra mối liên hệ giữa máy tính và các đơn vị tính toán, khiếnchúng hoạt động đồng thời đối với một vấn đề cụ thể (dự báo thời tiết chẳng hạn).Các đơn vị tính toán có thể đặt rất gần nhau hoặc tách rời nhau Khi các đơn vị tínhtoán được đặt tách rời, ta gọi đó là lập trình phân tán Với mô hình lập trình này,các đơn vị tính toán thường rất khác nhau, cũng như sự khác nhau giữa các hệ điềuhành và thiết lập mạng máy tính Những yếu tố đó khiến cho việc lập trình các tínhtoán của máy tính trở nên tương đối phức tạp và khó khăn Lập trình mạng phântán, thường có 2 khái niệm chính: peer to peer và client - server peer to peer làlập trình ngang hàng giữa 2 máy tính còn lập trình client - server là lập trình chophép n máy client kết nối tới m máy server - đây cũng là mô hình chúng ta sẽ gặpnhiều trong thực tế.

9 Extreme programming- Lập trình cực độ.

10

Trang 11

- Extreme programming (XP) là một phương pháp phát triển phần mềm nhằm cải

thiện chất lượng phần mềm và khả năng đáp ứng các yêu cầu của khách hàng Làmột loại phát triển phần mềm linh hoạt, nó chủ trương phát hành thường xuyêntrong các chu kỳ phát triển ngắn, nhằm cải thiện năng suất và đưa ra các điểm kiểmtra theo đó các yêu cầu mới của khách hàng có thể được chấp nhận

- Các yếu tố khác của lập trình cực độ bao gồm: lập trình theo cặp hoặc thựchiện đánh giá mã mở rộng , kiểm tra đơn vị tất cả mã, tránh lập trình các tính năngcho đến khi chúng thực sự cần thiết, cấu trúc quản lý phẳng, đơn giản mã và rõràng, mong muốn thay đổi theo yêu cầu của khách hàng theo thời gian vượt qua vàvấn đề được hiểu rõ hơn, và giao tiếp thường xuyên với khách hàng và giữa các lậptrình viên Phương pháp luận lấy tên từ ý tưởng rằng các yếu tố có lợi của thựchành kỹ thuật phần mềm truyền thống được đưa đến mức cực độ Ví dụ, đánh giá

mã được coi là một thực hành có lợi, đưa đến cực đoan, mã có thể được xem xétliên tục , tức là thực hành lập trình cặp

Trang 12

trên các máy tính nối mạng khác nhau, chúng giao tiếp và phối hợp các hành độngcủa chúng bằng cách truyền tin nhắn cho nhau Các thành phần tương tác với nhau

để đạt được mục tiêu chung Ba đặc điểm quan trọng của hệ thống phân tán là:đồng thời các thành phần, thiếu đồng hồ toàn cầu và sự thất bại độc lập của cácthành phần Ví dụ về các hệ thống phân tán khác nhau, từ các hệ thống dựa trênSOA đến các trò chơi trực tuyến nhiều người chơi cho các ứng dụng ngang hàng

- Một chương trình máy tính chạy trong một hệ thống phân tán được gọi là chươngtrình phân tán (và lập trình phân tán là quá trình viết các chương trình đó) Cónhiều loại triển khai khác nhau cho cơ chế truyền thông điệp, bao gồm HTTPthuần, các trình kết nối giống như RPC và hàng đợi tin nhắn

- Lập trình phân tán cũng đề cập đến việc sử dụng các hệ thống phân tán để giảiquyết các vấn đề tính toán Trong điện toán phân tán , một vấn đề được chia thànhnhiều nhiệm vụ, mỗi nhiệm vụ được giải quyết bằng một hoặc nhiều máy tính, liênlạc với nhau thông qua việc truyền tin nhắn

1 Giới thiệu

Từ “song song” trong các thuật ngữ như “hệ thống song song”, “lập trình phântán” và “thuật toán phân tán” ban đầu được gọi là các mạng máy tính nơi các máytính riêng lẻ được phân phối vật lý trong một số khu vực địa lý Các thuật ngữ ngàynay được sử dụng theo nghĩa rộng hơn nhiều, thậm chí đề cập đến các quy trình tựtrị chạy trên cùng một máy tính vật lý và tương tác với nhau bằng cách truyền tinnhắn

* Mặc dù không có định nghĩa duy nhất về hệ thống phân tán, các thuộc tính xácđịnh sau thường được sử dụng như:

- Có một số thực thể tính toán tự trị (máy tính hoặc nút), mỗi thực thể có bộnhớ cục bộ riêng

- Các thực thể giao tiếp với nhau bằng cách gửi tin nhắn

Một hệ thống phân tán có thể có một mục tiêu chung, chẳng hạn như giải quyếtmột vấn đề tính toán lớn, người dùng sau đó coi bộ sưu tập các bộ xử lý tự trị làmột đơn vị Ngoài ra, mỗi máy tính có thể có người dùng riêng với nhu cầu riêng

và mục đích của hệ thống phân tán là phối hợp sử dụng các tài nguyên được chia sẻhoặc cung cấp dịch vụ liên lạc cho người dùng

12

Trang 13

* Các đặc tính điển hình khác của hệ thống phân tán bao gồm:

- Hệ thống phải chịu đựng các lỗi trong các máy tính cá nhân

- Cấu trúc của hệ thống (cấu trúc liên kết mạng, độ trễ mạng, số lượng máy tính)không được biết trước, hệ thống có thể bao gồm các loại máy tính và liên kết mạngkhác nhau và hệ thống có thể thay đổi trong quá trình thực hiện chương trình phântán

- Mỗi máy tính chỉ có một cái nhìn hạn chế, không đầy đủ về hệ thống Mỗi máytính có thể chỉ biết một phần của đầu vào

2.Tính toán song song và phân tán

Hệ thống phân tán là các nhóm máy tính nối mạng, có cùng mục tiêu cho côngviệc của họ Các thuật ngữ " điện toán đồng thời ", " điện toán song song " và "điệntoán phân tán" có rất nhiều sự trùng lặp và không có sự phân biệt rõ ràng giữachúng Cùng một hệ thống có thể được mô tả cả "song song" và "phân phối"; các

bộ xử lý trong một hệ thống phân tán điển hình chạy song song Điện toán songsong có thể được coi là một dạng điện toán phân tán được kết hợp chặt chẽ, và điệntoán phân tán có thể được coi là một dạng điện toán song song lỏng lẻo Tuy nhiên,

có thể phân loại đại khái các hệ thống đồng thời là "song song" hoặc "phân phối"bằng các tiêu chí sau:

Trong điện toán song song, tất cả các bộ xử lý có thể có quyền truy cập vào bộ nhớdùng chung để trao đổi thông tin giữa các bộ xử lý

Trong điện toán phân tán, mỗi bộ xử lý có bộ nhớ riêng (bộ nhớ phân tán) Thôngtin được trao đổi bằng cách chuyển tin nhắn giữa các bộ xử lý

Hình bên dưới minh họa sự khác biệt giữa các hệ thống phân tán và songsong Hình (a) là một khung nhìn sơ đồ của một hệ thống phân tán điển hình; hệthống được biểu diễn dưới dạng cấu trúc liên kết mạng trong đó mỗi nút là mộtmáy tính và mỗi dòng kết nối các nút là một liên kết giao tiếp Hình (b) hiển thịcùng một hệ thống phân tán chi tiết hơn: mỗi máy tính có bộ nhớ cục bộ riêng và

Trang 14

Tình hình còn phức tạp hơn bởi việc sử dụng truyền thống các thuật ngữ song song

và thuật toán phân tán không hoàn toàn khớp với các định nghĩa trên của các hệthống song song và phân tán (xem bên dưới để thảo luận chi tiết hơn) Tuy nhiên,theo nguyên tắc thông thường, tính toán song song hiệu năng cao trong bộ xử lý đa

bộ nhớ dùng chung sử dụng thuật toán song song trong khi sự phối hợp của hệthống phân tán quy mô lớn sử dụng thuật toán phân tán

3.Lịch sử

14

Trang 15

Việc sử dụng các quy trình đồng thời liên lạc bằng cách truyền thông điệp cónguồn gốc từ các kiến trúc hệ điều hành được nghiên cứu trong những năm

1960 Các hệ thống phân tán rộng rãi đầu tiên là các mạng cục bộ như Ethernet ,được phát minh vào những năm 1970

ARPANET , tiền thân của Internet , được giới thiệu vào cuối những năm 1960

và e-mail ARPANET được phát minh vào đầu những năm 1970 E-mail đã trởthành ứng dụng thành công nhất của ARPANET, và đây có lẽ là ví dụ sớm nhất vềmột ứng dụng phân tán quy mô lớn Ngoài ARPANET, và người kế nhiệm của nó,Internet, các mạng máy tính đầu tiên trên toàn thế giới khác baogồm Usenet và FidoNet từ những năm 1980, cả hai đều được sử dụng để hỗ trợ các

hệ thống thảo luận phân tán

Nghiên cứu về điện toán phân tán đã trở thành nhánh khoa học máy tính của riêng

nó vào cuối những năm 1970 và đầu những năm 1980 Hội nghị đầu tiên trong lĩnhvực, Hội nghị chuyên đề về nguyên tắc tính toán phân tán (PODC), bắt đầu từ năm

1982, và Hội nghị chuyên đề quốc tế về tính toán phân tán (DISC) lần đầu tiênđược tổ chức tại Ottawa vào năm 1985 với tư cách là Hội thảo quốc tế về thuậttoán phân tán trên đồ thị

Lập trình phân tán thường rơi vào một trong một số kiến trúc cơ bản: máy chủclient , ba tầng , n -tier hoặc ngang hàng, hoặc loại: khớp nối lỏng lẻo , hoặc khớpnối chặt chẽ

Máy chủ Client sâu : kiến trúc nơi khách hàng thông minh liên hệ với máy chủ đểlấy dữ liệu sau đó định dạng và hiển thị nó cho người dùng Đầu vào tại máy kháchđược cam kết trở lại máy chủ khi nó thể hiện một sự thay đổi vĩnh viễn

Ngày đăng: 06/06/2019, 10:15

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w