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.