This paper describes an algorithm for compiling attribute grammars into Prolog. The attribute grammars may include inherited and synthesized attributes and contain recursive (circular) definitions. The semantics of the recursive definitions is defined in terms of a fixed-point finding function. The generated Prolog code stands in direct relation to its attribute grammar, where logical variables play the role of synthesized or inherited attributes. Thus an effective method for the execution of recursive attribute grammars has been defined and applied.
Note: The Institute of Electrical and Electronics Engineers, Incorporated is distributing this Article with permission of the International Business Machines Corporation (IBM) who is the exclusive owner. The recipient of this Article may not assign, sublicense, lease, rent or otherwise transfer, reproduce, prepare derivative works, publicly display or perform, or distribute the Article.