Prolog as Description and Implementation Language in Computer Science Teaching

Henning Christiansen
Roskilde University, Computer Science Dept., Denmark

Ladda ner artikelhttp://www.ep.liu.se/ecp_article/index.en.aspx?issue=012;article=004

Ingår i: Proceedings of the First International Workshop on Teaching Logic Programming: TeachLP 2004

Linköping Electronic Conference Proceedings 12:4, s. 43-54

Visa mer +

Publicerad: 2004-10-04


ISSN: 1650-3686 (tryckt), 1650-3740 (online)


Prolog is a powerful pedagogical instrument for theoretical elements of computer science when used as combined description language and experimentation tool. A teaching methodology based on this principle has been developed and successfully applied in a context with a heterogeneous student population with uneven mathematical backgrounds. Definitional interpreters; compilers; and other models of computation are defined in a systematic way as Prolog programs; and as a result; formal descriptions become running prototypes that can be tested and modified by the students. These programs can be extended in straightforward ways into tools such as analyzers; tracers and debuggers. Experience shows a high learning curve; especially when the principles are complemented with a learning-by-doing approach having the students to develop such descriptions themselves from an informal introduction.


Inga nyckelord är tillgängliga


[1] Henning Christiansen. Sprog og abstrakte maskiner; 3. rev. udgave [in Danish; eqv. “Languages and abstract machines”]. Datalogiske noter 18; Roskilde University; Roskilde; Denmark; 2000.

[2] Henning Christiansen. Teaching computer languages and elementary theory for mixed audiences at university level. Computer Science Education Journal; 14; 2004. To appear.

[3] Henning Christiansen. CHR Grammars. Int’l Journal on Theory and Practice of Logic Programming; 2005. To appear.

[4] Thom Frühwirth. Theory and Practice of Constraint Handling Rules; Special Issue on Constraint Logic Programming. Journal of Logic Programming; 37(1– 3):95–138; October 1998.

[5] Donald Knuth. Semantics for Context-Free Languages. Mathematical Systems Theory; 2:127–145; 1968.

[6] F. C. N. Pereira and D. H. D. Warren. Definite clause grammars for language analysis — a survey of the formalism and a comparison with augmented transition networks. Artificial Intelligence; 13:231–278; 1980.

Citeringar i Crossref