Production systems as control structures for programming languages