BUP: A Bottom-Up parser embedded in Prolog
definite clause grammars for language analysis - a survey of the formalism and a comparison with augmented transition networks .