I n t r o d u c t i o nOne of the features of attribute grammars is their evaluators can be generated automatically by mechanical transformations, and many research efforts have been focused on generating efficient evaluators. Generally, it is considered that the efficiency depends mainly on storage allocation for attributes. However there is a correlation between the storage allocation and evaluation order of attributes [I, 2]. This makes the allocation difficult.Most researches on the storage allocation are divided into two categories: one gives priority to evaluation order and the other to storage allocation. The former method such as [1,3,4,5,11] first firms up the evaluation order, and then allocates attributes to storage. Conversely, the latter method such as [2, 7, 10, 13] first makes some allocation for attributes, and then examines whether an evaluable order exists under that allocation or not and chooses evaluable and the most optimized one. The latter allows us to get more optimized allocation than the former. However, the allocation problem of the latter is known to be NP-complete [2,13].In this paper we propose an allocation strategy in order to solve the problem within a practical amount of time. We suppose the class of attribute grammars is absolutely non-circular and their evaluator is a recursive attribute evaluator proposed in [6]. The structure of this paper is as follows. In Section 2, we explain notations used in this paper and the recursive evaluator. In Section 3, restrictions on the allocation are introduced and a formal definition of allocation problem is given. Reduction theorems to solve the a~ocation problem within a practical amount of time are proved in Section 4. Basic method called single-chain is suggested in Section 5 and two improved methods are suggested in Section 6. Section 7 is the conclusion.A is a set of attributes. Each nonterminal X E VN has a subset A[X] of A. A[X] is a disjoint union of the set INH[X] of inherited attributes, which pass