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 specific task or solving a given problem.
- History of computer science
- History of computing hardware
- History of programming languages
- Computer programming in the punched card era
- Operating systems timeline
- Computer
- Computer hardware
- Virtual machine
- Agent-oriented
- Aspect-oriented
- Automata-based
- Data-driven
- Declarative (as opposed to imperative programming)
- Event-driven
- Expression-oriented
- Feature-oriented
- Function-level (as opposed to value-level programming)
- Generic
- Imperative (as opposed to declarative programming)
- Inductive programming
- Language-oriented (LOP)
- Non-structured (as opposed to Structured)
- Nondeterministic
- Process-oriented
- Role-oriented
- Semantic-oriented (SOP)
- Structured (as opposed to non-structured programming)
- Tacit
- Value-level (as opposed to function-level programming)
- Probabilistic
- Concept
- Array programming
- End-user development
- Metaprogramming
- Recursion
- Separation of concerns
- Threaded coding
- List of algorithms
- List of algorithm general topics
- List of important_publications in theoretical computer science § Algorithms
- Algorithm characterizations
- Theory of computation
- Search algorithm
- Sorting algorithm
- Merge algorithm
- String algorithms
- Greedy algorithm
- Reduction
- Sequential algorithm
- Parallel algorithm
- Deterministic algorithm
- Randomized algorithm
- Quantum algorithm
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
- Alphabetical list of programming languages
- Comparison of programming languages
- Programming language dialect
- Programming language theory
- Assembly language
- Macro
- Array programming language
- Aspect-oriented programming language
- Class-based programming language
- Concatenative programming language
- Concurrent programming language
- Data-structured language
- Dataflow programming language
- Declarative programming language
- Domain-specific language
- Dynamic programming language
- Esoteric programming language
- Event-driven programming language
- Extensible programming language
- Functional programming language
- High-level programming language
- Imperative programming language
- Interpreted language
- Logic programming language
- Low-level programming language
- Machine programming language
- Metaprogramming programming language
- Multi-paradigm programming language
- Non-English-based programming language
- Object-based language
- Object-oriented programming language
- Off-side rule programming language
- Pipeline programming language
- Procedural programming language
- Prototype-based programming language
- Reflective programming language
- Rule-based programming language
- Synchronous programming language
- Very high-level programming language
- Visual programming language
The top 20 most popular programming languages as of March 2016:
- Java
- C
- C++
- C#
- Python
- PHP
- Visual Basic .NET
- JavaScript
- Perl
- Ruby
- Delphi/Object Pascal
- Assembly
- Visual Basic
- Swift
- Objective-C
- R
- Groovy
- MATLAB
- PL/SQL
- D
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
- Java and .NET platforms
- ALGOL 58's influence on ALGOL 60
- ALGOL 60: Comparisons with other languages
- Comparison of ALGOL 68 and C++
- 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
- Computer program
- Hello world (a common form of example program for learning programmers)
- Application software
- Programming software
- System software
- Implementation
- Execution
- Software architecture
- Software reliability
- Software quality
- Software testing
- Software maintenance
- Software optimization
- Software brittleness