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
👁️
1 | 🔗 | 💖 | ✨ | 🌍 | ⌚
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
**Lập trình hướng đối tượng** () là một mẫu hình lập trình dựa trên khái niệm "đối tượng", mà trong đó, đối tượng chứa đựng các dữ liệu trong các trường, thường được gọi là
Trong khoa học máy tính, **lập trình khai báo** (tiếng Anh: _declarative programming_) là một mẫu hình lập trình theo phong cách xây dựng cấu trúc và các yếu tố của chương trình máy tính
Trong điện toán, **lập trình phản ứng** (tiếng Anh: **reactive programming**) là một mẫu hình lập trình khai báo liên quan đến các luồng dữ liệu và lan truyền của sự thay đổi. Với mẫu
Trong lập trình máy tính, **lập trình hướng sự kiện**, hay chính xác là **lập trình dẫn động bằng sự kiện** (tiếng Anh: **Event-driven programming**), là một mẫu hình lập trình trong đó luồng của
Trong điện toán, **lập trình hướng khía cạnh** (tiếng Anh: _aspect-oriented programming_, viết tắt: _AOP_) là một mẫu hình lập trình nhằm tăng tính mô đun bằng cách cho phép phân tách những mối quan
Trong lập trình máy tính, **lập trình ký hiệu** (tiếng Anh: _symbolic programming_) là một Mẫu hình lập trình trong đó chương trình có thể sử dụng những công thức và thành phần của chương
Trong khoa học máy tính, **lập trình ràng buộc** (tiếng Anh: _constraint programming_) là một mẫu hình lập trình trong đó mối quan hệ giữa các biến được mô tả ở dạng các ràng buộc.
**Lập trình logic hàm** (tiếng Anh: **functional logic programming**) là sự kết hợp mẫu hình lập trình chức năng và lập trình logic thành một ngôn ngữ lập trình duy nhất. Phong cách lập trình
**Lập trình khái niệm** (tiếng Anh: **concept programming**) là một mẫu hình lập trình tập trung vào cách mà các _khái niệm_, vốn hiện diện trong tâm trí của lập trình viên, chuyển thành các
**Lập trình logic** là một mẫu hình lập trình dựa trên logic toán trong các mối quan hệ và các suy luận. Các chương trình được viết trong các Ngôn ngữ lập trình logic là
Trong khoa học máy tính, **lập trình mệnh lệnh **(_imperative programming_) là một mẫu hình lập trình sử dụng câu lệnh để thay đổi trạng thái của chương trình. Nó rất giống với cách mà
Trong ngành khoa học máy tính, **lập trình hàm** (**lập trình chức năng**) là một mô hình lập trình xem việc tính toán là sự đánh giá các hàm toán học và tránh sử dụng
**Lập trình hướng đối tượng đồng thời** là một mô hình lập trình kết hợp lập trình hướng đối tượng (OOP) cùng với đồng thời. Trong khi nhiều ngôn ngữ lập trình, như Java, kết
**C** là một ngôn ngữ mệnh lệnh được phát triển từ đầu thập niên 1970 bởi Dennis Ritchie để dùng trong hệ điều hành UNIX. Từ đó, ngôn ngữ này đã lan rộng ra nhiều
**Python** () là ngôn ngữ lập trình bậc cao đa năng. Triết lý thiết kế của nó nhấn mạnh khả năng đọc mã bằng cách sử dụng thụt lề đáng kể. Python có kiểu động
**D** là một ngôn ngữ lập trình hệ thống hướng đối tượng, dùng câu lệnh, đa mẫu hình do Walter Bright của Digital Mars tạo ra và phát hành năm 2001. Quá trình thiết kế
**Lập trình dựa trên nguyên mẫu** (tiếng Anh: **prototype-based programming**) là một kiểu lập trình hướng đối tượng, trong đó việc tái sử dụng hành vi (được gọi là kế thừa) được thực hiện thông
Đây là danh sách các thuật ngữ tìm thấy trong lập trình hướng đối tượng. Một số có liên quan đến lập trình hướng đối tượng và một số thì không. Lưu ý rằng, các
**Mẫu hình**, **hệ hình**, hay **mô phạm** (tiếng Anh: Paradigm) là một khái niệm có nhiều nghĩa hơi khác nhau. Từ cuối thế kỷ 19, từ này có nghĩa là nề nếp dạng thức suy
**Ruby** là một ngôn ngữ lập trình hướng đối tượng, có khả năng phản ứng. Theo tác giả, Ruby chịu ảnh hưởng bởi Perl, Smalltalk, Eiffel, Ada và Lisp. Ruby cung cấp nhiều mẫu hình
**Lập trình meta** hay còn gọi là **siêu lập trình** là việc tiến hành một trong hai thao tác (hay cả hai) sau: * Công việc viết một chương trình máy tính mà chương trình
**Lập trình cấu trúc** là một tập con của lập trình thủ tục. Trong một chương trình máy tính, các khối chức năng có thể được thực hiện không chỉ theo trình tự mà còn
**Lập trình lượng tử** là quá trình thiết kế hoặc ghép nối các chuỗi lệnh, được gọi là mạch lượng tử, sử dụng các cổng, công tắc và toán tử để điều khiển hệ thống
**Lập trình hướng tác tử** (tiếng Anh: _Agent-oriented programming_ hay _AOP_) là một mẫu hình lập trình trong đó việc xây dựng phần mềm dựa trên khái niệm tác tử phần mềm. Điều này ngược
Trong khoa học máy tính, **lập trình mảng** (tiếng Anh: _array programming_) là giải pháp cho phép áp dụng chương trình hoạt động lên toàn bộ tập các giá trị cùng một lúc. Các giải
Phương pháp **lập trình thủ tục** (_procedural programming_) chính là cách thực hiện phương pháp hướng chức năng kể trên. Phương pháp thủ tục chia một chương trình (chức năng) lớn thành các khối chức
Trong lập trình hướng đối tượng, **giao thức** (tiếng Anh: _protocol_) hay **giao diện** (_interface_) là một phương tiện phổ biến để các đối tượng không liên quan giao tiếp với nhau. Đây là định
thumb|**[[Phép tính lambda** là một hệ thống hình thức để định nghĩa hàm, ứng dụng hàm và đệ quy được Alonzo Church đề xuất vào những năm 193x.]] **Lý thuyết ngôn ngữ lập trình** (thường
**Dylan** là một ngôn ngữ lập trình đa mẫu hình có hỗ trợ hàm, lập trình hướng đối tượng (OOP), động và phục hồi trong khi cung cấp một mô hình lập trình được thiết
**Swift** là một ngôn ngữ lập trình hướng đối tượng dành cho việc phát triển iOS và macOS, watchOS, tvOS và z/OS. được giới thiệu bởi Apple tại hội nghị WWDC 2014. Swift được mong
**Pascal** là một ngôn ngữ lập trình cho máy tính thuộc dạng mệnh lệnh và thủ tục, được Niklaus Wirth phát triển vào năm 1970. Pascal là ngôn ngữ lập trình đặc biệt thích hợp
phải|nhỏ|402x402px|[[Mã nguồn của một chương trình máy tính đơn giản được viết bằng ngôn ngữ lập trình C. Khi được biên dịch và chạy, nó sẽ cho kết quả "Hello, world!".]] **Ngôn ngữ lập trình**
**C#** (**C Sharp**, đọc là _"xi-sáp"_) là một ngôn ngữ lập trình hướng đối tượng đa năng, mạnh mẽ được phát triển bởi Microsoft, C# là phần khởi đầu cho kế hoạch .NET của họ.
**Batch** là một ngôn ngữ lập trình được dựa trên các tập tin thực thi batch (*.bat, *.cmd,...) để chạy. Chúng sẽ được thực thi dưới dạng một cửa sổ **Command Prompt** để chạy những
**Java** (phiên âm Tiếng Việt: "_Gia-va_") là một ngôn ngữ lập trình hướng đối tượng, dựa trên lớp được thiết kế để có càng ít phụ thuộc thực thi càng tốt. Nó là ngôn ngữ
**Scratch** là một ngôn ngữ lập trình mang tính giáo dục miễn phí dựa trên các khối ngôn ngữ lập trình trực quan (VPL) và trang web chủ yếu để giáo dục lập trình, với
Trong lập trình hướng đối tượng, **lớp** (**class**) là một chương trình-mã-khuôn mẫu có thể mở rộng được để tạo các đối tượng, cung cấp giá trị khởi tạo cho trạng thái (biến thành viên)
thumb|Các vòng lặp lên kế hoạch và phản hồi trong lập trình cực hạn **Lập trình cực hạn** (tiếng Anh: **Extreme programming**, viết tắt là **XP**) là một quy trình phát triển phần mềm nhằm
**R** là một ngôn ngữ lập trình và môi trường phần mềm dành cho tính toán và đồ họa thống kê. Đây là một bản hiện thực ngôn ngữ lập trình S với ngữ nghĩa
**Lập trình dựa trên lớp** (tiếng Anh: _class-based programming_), hay thông dụng hơn **hướng lớp** (_class-orientation_), là một loại lập trình hướng đối tượng (OOP) mà tính kế thừa được xác định bằng cách định
**IDL**, viết tắt của _Interactive Data Language_ (ngôn ngữ tương tác dữ liệu) là một ngôn ngữ lập trình thiết kế dành riêng cho mục đích xử lý các số liệu trong khoa học kĩ
**Scala** ( ) là một ngôn ngữ lập trình đa mẫu hình, được thiết kế để tích hợp các tính năng của lập trình hướng đối tượng với lập trình hàm Nó cũng có thể
**Elixir** (phát âm là _Ê-líx-xơ_) là một ngôn ngữ lập trình hàm, đồng thời và đa năng, được chạy trên máy ảo BEAM, thứ còn được sử dụng để thực hiện ngôn ngữ lập trình
**C++** (**C Plus Plus**, **CPP,** IPA: /siː pləs pləs/) là một ngôn ngữ lập trình đa năng bậc cao (high-level) được tạo ra bởi Bjarne Stroustrup như một phần mở rộng của ngôn ngữ lập
**Quảng cáo lập trình** () là một quy trình tự động trong việc mua và bán các vị trí quảng cáo theo thời gian thực trên nền tảng kỹ thuật số và là một phần
nhỏ| Chương trình máy tính "Xin chào, thế giới" của [[Brian Kernighan (1978) ]] **Chương trình máy tính** là tập hợp các câu lệnh thực hiện một tác vụ cụ thể khi được máy tính
thumb|Minh họa mã nguồn [[Java (programming language)|Java với comment **mở đầu** được biểu thị bằng màu **đỏ** và comment **nội dòng** bằng màu **lục**. **Mã chương trình** là bằng màu **lam**.]]Trong lập
Trong trí tuệ nhân tạo, **lập trình di truyền** (_genetic programming, GP_) là một kỹ thuật tiến hóa các chương trình mà ban đầu chưa thích nghi (thường là chương trình ngẫu nhiên) cho đến
**Biểu diễn tri thức và suy luận** (**Knowledge representation and reasoning**, **KRR**, **KR&R**, **KR²**) là lĩnh vực của trí tuệ nhân tạo (AI) tập trung vào việc biểu diễn thông tin về thế giới dưới