Computer
Computer (theoretical) — machine that can be programmed to perform computations.
- Machine — system that uses power to apply forces and control movement to perform an action (ok, in this case «movement» and «action» are about controlling electricity flow).
- Programming — creating instructions for computer for solving applied tasks.
- Computation — any type of arithmetic (+-*/) and similar calculation that is well-defined.
- Calculation — mathematical transforming of inputs into outputs.
Contrast it with practical definition of Computer system — a system consisting of Hardware, Software, IO, OS, Network
Models of computation
Existing models of computation:
- Turing Machine (Assembly, Fortran, C, C++)
- Lambda-Calculus (Lisp, ML, Haskell)
- Goudel recursive functions
- Related math concept: Peano Axioms
Modern imperative programming is built on Turing machine and Von-Neumann Arhitecture. Functional programming is built on Lambda calculus.
Von-Neumann Architecture
VN Architecture consists of 3 parts:
- Control Unit, Instructions, ALU
- Memory (internal/external)
- IO devices (input/output)