La relation entre programmation logique et grammaires formelles est connue depuis les débuts de la programmation logique, et en est même un des moteurs [Colmerauer 70, Colmerauer 78]. La relation a fait émerger la notion de grammaire logique* [Abramson et Dahl 89] à une époque où la programmation logique n'était que la programmation en clauses de Horn*. Les * se sont imposées comme un formalisme important, au point que la plupart des systèmes Prolog les intègrent. Nous avons étudié la transposition du concept de à Prolog [Le Huitouze et al. 93a] et avons décrit l'application du concept transposé au traitement de la langue naturelle [Coupet-Grimal et Ridoux 95]. Nous avons aussi appliqué Prolog comme métalangage pour formaliser et implémenter des transformations de grammaires à attributs [Ridoux 96].