A definite clause grammar (DCG) is a way of expressing grammatical relationships. They are commonly used with the Prolog programming language.