Mẫu hình lập trình
Trong tin học, là một kiểu lập trình mà nó là 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 (và xác định) quan điểm mà người lập trình có về sự thực thi của chương trình. Thí dụ: trong ...
Trong tin học, là một kiểu lập trình mà nó là 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 (và xác định) quan điểm mà người lập trình có về sự thực thi của chương trình. Thí 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. Thí 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 mẫu hì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 Lô gíc (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)