手順による処理の記述では、コンピュータの命令を抽象化して、人間が「理解できる」変数やifなどの形式で形式でプログラムを表した。 しかし、より複雑な処理をするプログラムを記述する場合、変数やifなどの形式を組合わせただけでは、人間が理解することがどんどん難しくなってしまう。 そこで、処理の表現を更に抽象化した計算モデルがいろいろと考えられている。
ack(0,n) = n+1 ack(m,0) = ack(m-1,1) ack(m,n) = ack(m-1,ack(m,n-1))