Der Euklid’sche Algorithmus C (imperative Sprache) int g g t ( int a , int b ) { int r ; while ( b != 0 ) { r = a % b; a = b; b = r; } return a ; } Java (objektorientierte Sprache) s t a t i c int g gt ( int a , int b ){ int r ; while ( b != 0 ) { r = a % b; a = b; b = r; } return a ; } Haskell (funktionale Sprache) g g t : : Integer −> Integer −> Integer g g t a b | b == 0 = a | otherwise = g gt b ( a ‘mod‘ b ) Prolog (logische/deduktive Sprache) g g t (A, 0 ,A) . g g t (A, B, Z) :− U i s A mod B, g gt (B, U, Z ) . C-Shell (Skriptsprache) s e t a = $1 s e t b = $2 while ( $b != 0 ) @ r = $a % $b s e t a = $b s e t b = $r end echo $a 1 Markow-Algorithmus M = (Σ, P ), P : Pt = ∅ Σ = {a, A, B, C, #} aA → Aa a#a → A# Eingabe: ai #aj a# → #B B→a A→C C→a #→λ Ausgabe: ak , k = ggt(i, j) Bei diesem Algorithmus handelt es sich nicht um den Euklid’schen Algorithmus. 2