As an example, an optimizing compiler with three optimization passes could be implemented as a relation between an initial program and its optimized form: program_optimized(Prog0, Prog) :- optimization_pass_1(Prog0, Prog1), optimization_pass_2(Prog1, Prog2), optimization_pass_3(Prog2, Prog). or equivalently using DCG notation: program_optimized --> optimization_pass_1, optimization_pass_2, optimization_pass_3.
На пример, оптимизиран комапјлер со три премини може да се имплементира како релација помеѓу иницијалната програма и нејзината оптимална форма: program_optimized(Prog0, Prog) :- optimization_pass_1(Prog0, Prog1), optimization_pass_2(Prog1, Prog2), optimization_pass_3(Prog2, Prog). или евивалентно со употреба на DCG (definite clause grammar) нотација: program_optimized --> optimization_pass_1, optimization_pass_2, optimization_pass_3.