Outline of computer programming
The following outline is provided as an overview of and topical guide to computer programming:
History
- History of computer science
- History of computing hardware
- History of programming languages
- Computer programming in the punched card era
- Operating systems timeline
Platforms
- Computer
- Computer hardware
- Analog computer
- Analytical Engine
- Digital computer
- Vacuum-tube computer
- Transistor computer
- Mainframe
- Minicomputer
- Microcomputer
- Home computers
- IBM PC compatible
- Personal computer
- Desktop computer
- Laptop computer
- Mobile computer
- Server
- Supercomputer
- Analog computer
- Virtual machine
Paradigms
- Agent-oriented
- Aspect-oriented
- Automata-based
- Class-based
- Concatenative
- Concept
- Concurrent
- Data-driven
- Declarative (as opposed to imperative programming)
- Event-driven
- Time-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)
- Natural language programming
- Intentional
- Non-structured (as opposed to Structured)
- Nondeterministic
- Probabilistic
- Process-oriented
- Role-oriented
- Semantic-oriented (SOP)
- Structured (as opposed to non-structured programming)
- Tacit
- Value-level (as opposed to function-level programming)
- Visual
Writing programs
Methodology
- Array programming
- End-user development
- Metaprogramming
- Automatic programming
- Reflection
- Homoiconicity
- Template metaprogramming
- Policy-based design
- Service-oriented architecture
- Recursion
- Separation of concerns
- Threaded coding
Algorithms
- List of algorithms
- List of algorithm general topics
- 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 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
- Alphabetical list of programming languages
- Compiled language
- Interpreted 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 2022[update]:[3]
- Python
- C
- C++
- Java
- C#
- Visual Basic .NET
- JavaScript
- SQL
- Assembly language
- PHP
- R
- Go
- Classic Visual Basic
- MATLAB
- Swift
- Delphi/Object Pascal
- Ruby
- Perl
- Objective-C
- Rust
Anatomy of a programming language
- Syntax
- Values
- Types
- Operators
- Program structures
- Variables
- Expressions
- Statements
- Keywords and reserved words
- Control structures
- Subroutines(also known as functions)
- Loops
- Conditionals
- 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
- 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
Compilation
- Programmer
- Source code
- Compilation
- Preprocessing
- Translation
- Assembly
- Linking
- Compiler optimization
- Compilation error
Software
- Computer program
- Hello world (a common form of example program for learning programmers)
- Application software
- Software suite
- Database management system
- Programming software
- Programming tool
- Text editor
- Source code editor
- Assembler
- Compiler
- Interpreter
- Linker
- Debugger
- Text editor
- Programming tool
- System software
Components
- Instruction
- Library
- Application programming interface(API)
Software development
- Software development
- Software development process
- Software development methodology
Software engineering
- Implementation
- Execution
- Software architecture
- Software reliability
- Software quality
- Software testing
- Software maintenance
- Software optimization
- Software brittleness
See also
- Outline of computers
- Outline of computing
- Outline of computer science
- Outline of the Internet
- Outline of software
- Types of software
- Outline of software development
- Outline of software engineering
- Outline of web design and web development
- Outline of computer programming
- Programming languages
- Outline of computing
References
- ^ Shaun Bebbington (2014). "What is coding". Retrieved 2014-03-03.
- ^ Shaun Bebbington (2014). "What is programming". Retrieved 2014-03-03.
- ^ "index | TIOBE - The Software Quality Company". www.tiobe.com. Retrieved 2022-12-27.
External links
- How to Think Like a Computer Scientist - by Jeffrey Elkner, Allen B. Downey and Chris Meyers