Notes/Languages & Machines/Introduction.md

1.3 KiB

type, ty
type ty
theoretical

The foundations of computation

Looking for answers for basic questions like:

  • Computability?
  • Power \leftrightarrow Programming constructs?

Which leads us to fundamental concepts like:

  • State
  • Transitions
  • Non-determinism
  • Undecideability

Models

Finite memory

Finite automata, regexp

Finite memory with stack

Push down automata

Unrestricted

Turing machines

Grammars

On a higher level, it seems like grammars and machines are very different, but parsing a language (a set of strings) is quite similar to computation.

State-based systems and glossary

An FSM can be a specification for OOP.

  • States (q_0,\ldots, q_n)
  • Transitions (a,b,c,\ldots,z)
  • We can interpret the transitions as class methods and specify the sequences of allowed invocations - typestate

Notation

  • x \in X, X\subseteq Y
  • \forall x \in X: P(x), \exists x \in X: P(x)
  • R \subseteq X \times Y is a relation between X and Y
  • xRy \equiv (x,y) \in R
  • G = (V, E), where E \subseteq V\times V is a directed graph

Part of Relations and Digraphs