▁capabilities ▁so ▁that ▁no ▁input ▁will ▁ever ▁cause ▁the ▁machine ▁to ▁enter ▁an ▁infinite ▁loop . ▁ ▁As ▁a ▁trivial ▁example , ▁a ▁machine ▁implementing ▁a ▁finit ary ▁decision ▁tree ▁will ▁always ▁halt . ▁ ▁It ▁is ▁not ▁required ▁that ▁the ▁machine ▁be ▁entirely ▁free ▁of ▁looping ▁capabilities , ▁however , ▁to ▁guarantee ▁hal ting . ▁ ▁If ▁we ▁restrict ▁loops ▁to ▁be ▁of ▁a ▁predict ably ▁finite ▁size ▁( like ▁the ▁FOR ▁loop ▁in ▁B AS IC ), ▁we ▁can ▁express ▁all ▁of ▁the ▁primitive ▁recursive ▁functions ▁( M ey er ▁and ▁R itch ie , ▁ 1 9 6 7 ). ▁An ▁example ▁of ▁such ▁a ▁machine ▁is ▁provided ▁by ▁the ▁to y ▁programming ▁language ▁PL - { G OT O } ▁of ▁Bra in erd ▁and ▁Land we ber ▁( 1 9 7 4 ). ▁ ▁We ▁can ▁further ▁define ▁a ▁programming ▁language ▁in ▁which ▁we ▁can ▁ensure ▁that ▁even ▁more ▁s oph istic ated ▁functions ▁always ▁halt . ▁ ▁For ▁example , ▁the ▁A ck ermann ▁function , ▁which ▁is ▁not ▁primitive ▁recursive , ▁never theless ▁is ▁a ▁total ▁comput able ▁function ▁comput able ▁by ▁a ▁term ▁re writing ▁system ▁with ▁a ▁reduction ▁ordering ▁on ▁its ▁arguments ▁( Oh le bus ch , ▁ 2 0 0 2 , ▁pp .   6 7 ). ▁ ▁Despite ▁the ▁above ▁examples ▁of ▁programming ▁languages ▁which ▁guarantee ▁term ination ▁of ▁the ▁programs , ▁there ▁exists ▁no ▁programming ▁language ▁which ▁capt ures ▁exactly ▁the ▁recursive ▁functions , ▁i . e . ▁the