Mẫu hình lập trình

Trong tin học, mẫu hình lập trình là một kiểu lập trình kiểu có tính mẫu hình trong tiến hành về công nghệ phần mềm.

Một mẫu hình lập trình cung cấp (xác định) quan điểm người lập trình có về sự thực thi của chương trình. Ví dụ: trong lập trình hướng đối tượng, các lập trình viên có thể xem một chương trình như là một tập hợp của các đối tượng có tính tương tác, trong khi đó, trong lập trình chức năng, nó là một chương trình có thể được xem như là một chuỗi các đánh giá của các hàm vô thức.

Các nhóm khác nhau trong công nghệ phần mềm đề xướng các phương pháp khác nhau, các ngôn ngữ lập trình khác nhau tức là các mẫu hình lập trình khác nhau. Một số ngôn ngữ được thiết kế để hỗ trợ một mẫu hình đặc thù (Java hỗ trợ lập trình hướng đối tượng trong khi Haskell hỗ trợ lập trình chức năng). Số ngôn ngữ khác lại hỗ trợ nhiều mẫu hình (như Python và Common Lisp).

Một số mẫu hình lập trình cấm các thao tác mà chính ngôn ngữ đó có. Chẳng hạn, lập trình cấu trúc không cho phép sử dụng lệnh goto.

Quan hệ giữa các mẫu hình lập trình và các ngôn ngữ lập trình có thể phức tạp vì một ngôn ngữ có thể hỗ trợ nhiều mẫu hình lập trình. Ví dụ như C++ được thiết kế để hỗ trợ các phần tử của lập trình thủ tục, lập trình hướng đối tượng và lập trình tiêu bản.

Mặc dù vậy, những người thiết kế và những người lập trình quyết định làm thế nào để xây dựng một chương trình dùng các phần tử của mẫu hình. Người ta có thể viết một chương trình hoàn toàn theo kiểu lập trình thủ tục trong C++, cũng có thể viết chương trình hoàn toàn hướng đối tượng, hay viết chương trình có các phần tử của cả hai

Các mẫu hình lập trình

  • Lập trình cấu trúc- so sánh với Lập trình không cấu trúc (unstructured programming)
  • Lập trình mệnh lệnh (imperative programming), so sánh với Lập trình khai báo (declarative programming)
  • Lập trình truyền báo (message passing programming), so sánh với Lập trình mệnh lệnh (imperative programming)
  • Lập trình thủ tục (procedural programming), so sánh với Lập trình chức năng (functional programming)
  • Lập trình bậc giá trị (value-level programming), so sánh với Lập trình bậc chức năng (function-level programming)
  • Lập trình điều khiển theo luồng (flow-driven programming), so sánh với Lập trình điều khiển theo sự kiện (event-driven programming)
  • Lập trình vô hướng (scalar programming), so sánh với Lập trình mảng (array programming)
  • Lập trình cưỡng chế (constraint programming), so sánh với Lập trình Logic (logic programming)
  • Lập trình định hướng đối tượng (component-oriented programming) (như OLE)
  • Lập trình định dạng (aspect-oriented programming) (như AspectJ)
  • Lập trình ký hiệu (symbolic programming) (như Mathematica)
  • Lập trình định hướng bảng (table-oriented programming) (như FoxPro của Microsoft)
  • Lập trình ống (pipeline programming) (như dòng lệnh UNIX)
  • Lập trình hậu đối tượng (post-object programming)
  • Lập trình định hướng chủ thể (subject-oriented programming)
  • Lập trình phản xạ (reflective programming)
  • Lập trình dòng dữ liệu (dataflow programming) (như các Bản chiết tính hay spreadsheet)

Hỗ trợ đa mẫu hình

Tham khảo

Xem thêm

  • Ngôn ngữ mô tả kiến trúc
  • So sánh các mẫu hình lập trình
  • Ngôn ngữ đặc trưng miền
  • Kho trí tuệ
  • Ngôn ngữ lập mô hình
  • Mẫu hình
  • Miền lập trình
  • Tính đầy đủ Turing

Đọc thêm

Liên kết ngoài

Các danh sách
ngôn ngữ lập trình
  • Programming paradigms
  • Programming languages Lưu trữ 2008-08-28 tại Wayback Machine
  • Classification of the principal programming paradigms
Liên kết đến các bài viết liên quan
Công nghệ phần mềm
  • x
  • t
  • s
Mô tả kiến trúc · Mô tả phần cứng · Đánh dấu · Lập mô hình · Ngôn ngữ lập trình · Query · Specification · Stylesheet · Template processing · Transformation
  • x
  • t
  • s
Các lĩnh vực
Các khái niệm
Mô hình hóa dữ liệu • Kiến trúc doanh nghiệp • Chi tiết hóa chức năng • Ngôn ngữ mô hình hóa • Mô hình lập trìnhPhần mềmKiến trúc phần mềm • Phương pháp học phát triển phần mềm • Quy trình phát triển phần mềmChất lượng phần mềm • Bảo đảm chất lượng phần mềm • Khảo cổ học phần mềm • Phân tích có cấu trúc
Các định hướng
Định hướng khía cạnh • Định hướng đối tượng • Ontology • Định hướng dịch vụ • Vòng đời phát triển hệ thống
Các mô hình
Các mô hình phát triển
Linh hoạt • Mô hình lặp • RUP • Scrum • Mô hình xoắn ốcMô hình thác nướcXP • V-Model • Mô hình tăng tiến • Mô hình nguyên mẫu
Các mô hình khác
Automotive SPICE • CMMI • Mô hình dữ liệu • Mô hình hàm • Mô hình thông tin • Mô hình hóa meta • Mô hình đối tượng • Mô hình hệ thống • Mô hình quan sát
Các ngôn ngữ mô hình hóa
IDEF • UML
Các kỹ sư
phần mềm
Kent Beck • Grady Booch • Fred Brooks • Barry Boehm • Ward Cunningham • Ole-Johan Dahl • Tom DeMarco • Martin Fowler • C. A. R. Hoare • Watts Humphrey • Michael A. Jackson • Ivar Jacobson • Craig Larman • James Martin • Bertrand Meyer • David Parnas • Winston W. Royce • Colette Rolland • James Rumbaugh • Niklaus Wirth • Edward Yourdon • Victor Basili
Các lĩnh vực liên quan
Khoa học máy tínhKỹ nghệ máy tính • Kỹ nghệ doanh nghiệp • Lịch sử • Quản lýToán họcQuản lý dự ánQuản lý chất lượngCông thái học phần mềm • Kỹ nghệ hệ thống
  • x
  • t
  • s
Những lĩnh vực chính của khoa học máy tính
Các nền tảng toán học
Lý thuyết phép tính
Độ phức tạp Kolmogorov · Lý thuyết Automat · Lý thuyết tính được · Lý thuyết độ phức tạp tính toán · Lý thuyết điện toán lượng tử
Các cấu trúc dữ liệu
các giải thuật
Phân tích giải thuật · Thiết kế giải thuật · Hình học tính toán · Tối ưu hóa tổ hợp
Các ngôn ngữ lập trình
Các trình biên dịch
Tính song hành,
Song song,
và các hệ thống phân tán
Công nghệ phần mềm
Phân tích yêu cầu · Thiết kế phần mềm · Các phương pháp hình thức · Kiểm thử phần mềm · Quy trình phát triển phần mềm · Các phép đo phần mềm · Đặc tả chương trình · LISP · Mẫu thiết kế · Tối ưu hóa phần mềm
Kiến trúc hệ thống
Kiến trúc máy tính · Tổ chức máy tính · Các hệ điều hành · Các cấu trúc điều khiển · Cấu trúc bộ nhớ lưu trữ · Vi mạch · Thiết kế ASIC · Vi lập trình · Vào/ra dữ liệu · VLSI design · Xử lý tín hiệu số
Viễn thông
Mạng máy tính
Các cơ sở dữ liệu
Các hệ thống thông tin
Hệ quản trị cơ sở dữ liệu · Cơ sở dữ liệu quan hệ · SQL · Các giao dịch · Các chỉ số cơ sở dữ liệu · Khai phá dữ liệu · Biểu diễn và giao diện thông tin · Các hệ thống thông tin · Khôi phục dữ liệu · Lưu trữ thông tin · Lý thuyết thông tin · Mã hóa dữ liệu · Nén dữ liệu · Thu thập thông tin
Trí tuệ nhân tạo
Lập luận tự động · Ngôn ngữ học tính toán · Thị giác máy tính · Tính toán tiến hóa · Các hệ chuyên gia  · Học máy · Xử lý ngôn ngữ tự nhiên · Robot học
Đồ họa máy tính
Trực quan hóa · Hoạt họa máy tính · Xử lý ảnh
Giao diện người-máy tính
Khả năng truy cập máy tính · Giao diện người dùng · Điện toán mang được · Điện toán khắp mọi nơi · Thực tế ảo
Khoa học tính toán
Cuộc sống nhân tạo · Tin sinh học · Khoa học nhận thức · Hóa học tính toán · Khoa học thần kinh tính toán · Vật Lý học tính toán · Các giải thuật số · Toán học kí hiệu
Chú ý: khoa học máy tính còn có thể được chia thành nhiều chủ đề hay nhiều lĩnh vực khác dựa theo Hệ thống xếp loại điện toán ACM.
  • x
  • t
  • s
Dùng cho kỹ nghệ
Dùng trong giảng dạy
Có giá trị lịch sử
  • ABC
  • ALGOL
  • APL
  • BASIC
  • Clipper
  • COBOL
  • Hope
  • MUMPS
  • Pascal
  • PL/I
  • PowerBuilder
  • Simula