The following outline is provided as an overview of and topical guide to computer programming: Computer programming – process that leads from an original formulation of a computing problem to executable computer programs. Programming involves activities such as analysis, developing understanding, generating algorithms, verification of requirements of algorithms including their correctness and resources consumption, and implementation (commonly referred to as coding) of algorithms in a target programming language. Source code is written in one or more programming languages. The purpose of programming is to find a sequence of instructions that will automate performing a given task or solving a given problem.
History History of computer science History of computing hardware History of computing hardware (1960s–present) History of programming languages Timeline of programming languages Computer programming in the punched card era Timeline of operating systems
Platforms
Computer Computer hardware Analog computer Analytical Engine Digital computer Vacuum-tube computer List of vacuum-tube computers Transistor computer List of transistorized computers Mainframe Minicomputer Microcomputer Home computers IBM PC compatible Personal computer Desktop computer Laptop computer Mobile computer Personal digital assistant (PDA) Smartphone Tablet computer Wearable computer Server Supercomputer Virtual machine Hardware virtualization Runtime system
Paradigms
Agent-oriented Aspect-oriented Automata-based Class-based Concatenative Concept Concurrent Data-driven Declarative (in contrast to imperative programming) Constraint Constraint logic Concurrent constraint logic Dataflow Flow-based (FBP) Reactive Functional Functional logic Purely functional Logic Abductive logic Answer set Concurrent logic Functional logic Inductive logic Probabilistic logic Event-driven Time-driven Expression-oriented Feature-oriented Function-level (in contrast to value-level programming) Generic Imperative (in contrast to declarative programming) Literate Procedural Inductive programming Language-oriented (LOP) Natural language programming Non-structured (in contrast to Structured) Array Nondeterministic Probabilistic Process-oriented Role-oriented Semantic-oriented (SOP) Structured (in contrast to non-structured programming) Block-structured Modular Concurrent computing Relativistic programming Object-oriented (OOP) Class-based Concurrent OOP Prototype-based Subject-oriented Tacit Value-level (in contrast to function-level programming) Visual
Writing programs Pseudocode
Methodology
Array programming End-user development Metaprogramming Automatic programming Reflection Attribute-oriented programming (AOP) Homoiconicity Template metaprogramming Policy-based design Service-oriented architecture Service-oriented modeling Recursion Separation of concerns Threaded coding
Algorithms
List of algorithms List of algorithm general topics Algorithm characterizations Introduction to Algorithms Theory of computation Computational complexity theory Analysis of algorithms Empirical algorithmics Big O notation Algorithmic efficiency Algorithmic information theory Algorithmic probability Algorithmically random sequence Search algorithm Sorting algorithm Merge algorithm String algorithms Greedy algorithm Reduction Sequential algorithm Parallel algorithm Distributed algorithm Deterministic algorithm Randomized algorithm Quantum algorithm
Programming languages Programming language – formal constructed language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs to control the behavior of a machine or to express algorithms.
Generational list of programming languages List of programming languages by type List of open-source programming languages Alphabetical list of programming languages Compiled language Interpreted language Scripting language Comparison of programming languages Programming language dialect Programming language theory Formal semantics of programming languages Assembly language Macro
Attributes of programming languages Domain-specific language Dynamic programming language Esoteric programming language Extensible programming language High-level programming language Interpreted language Low-level programming language Machine programming language Multi-paradigm programming language Non-English-based programming language Object-based language Off-side rule programming language Reflective programming language Synchronous programming language Very high-level programming language
Popular languages The top 20 most popular programming languages as of December 2025:
Python C C++ Java C# JavaScript Visual Basic (.NET) SQL Perl R Delphi Object Pascal Fortran MATLAB Ada Go PHP Rust Scratch Assembly language Kotlin
Anatomy of a programming language Syntax Lexical grammar Semicolons Values Types Operators Program structures Variables Expressions Statements Keywords and reserved words Control structures Subroutines (also known as functions) Anonymous functions Loops For loops While loops Conditionals If-then If-then-else Case and switch statements Control flow Data structures Objects Arrays Regular expressions
Comparisons of programming languages Programming language comparisons
General comparison Basic syntax Basic instructions Exception handling Enumerated types Anonymous functions Conditional expressions Functional instructions Arrays Associative arrays String operations String functions List comprehension Object-oriented programming Object-oriented constructors While loops For loops Evaluation strategy List of "Hello World" programs Languages with dependent types Comparison of type systems
Comparisons of individual languages ALGOL 58's influence on ALGOL 60 ALGOL 60: Comparisons with other languages ALGOL 68: Comparisons with other languages Compatibility of C and C++ Comparison of Pascal and Borland Delphi Comparison of Object Pascal and C Comparison of Pascal and C Comparison of Java and C++ Comparison of C# and Java Comparison of C# and Visual Basic .NET Comparison of Visual Basic and Visual Basic .NET
Compilation
Programmer Source code Parsing Compilation Preprocessing Translation Assembly Linking Compiler optimization Compilation error
Software
… excerpt ends here. Continue reading the full article.
