Keith Leonard Clark (born 29 March 1943) is a British computer scientist. He is Emeritus Professor in the Department of Computing at Imperial College London, England.
Education Clark studied Mathematics at Durham University (Hatfield College), graduating in 1964 with a first-class degree. He continued his studies at Cambridge University, taking a second undergraduate degree in Philosophy in 1966. He earned a Ph.D. in 1980 from the University of London.
Career and research Clark lectured in mathematics at City of London Polytechnic from 1966 to 1967, and then spent a year as a teacher in Sierra Leone with Voluntary Service Overseas. He lectured in Computer Science at the Mathematics Department of Queen Mary College from 1969 to 1975. That year he moved to Imperial College London, where he became a Senior Lecturer in the Department of Computer Science, and joined Robert Kowalski in setting up the logic programming group. He was a Visiting Associate Professor at University of California, Santa Cruz in 1977. In 1980, with colleague Frank McCabe, he founded an Imperial College spin-off company, Logic Programming Associates, to develop and market Prolog systems for microcomputers (micro-Prolog) and to provide consultancy on expert systems and other logic programming applications. In 1986, he became the first president of the newly founded Association for Logic Programming. He was appointed Professor of Computational Logic at Imperial College in 1987. As a researcher, his key contributions have been in the field of logic programming. In 1976, he presented work on negation as failure at a workshop on logic programming held at Imperial College, the results of which were published in a landmark paper in 1978. He was the first to investigate negation as failure in the context of logic programs containing negative conditions, and developed a logical interpretation of how negation operated in such programs. More recent research interests include multi-agent systems, cognitive robotics and multi-threading.
Selected publications
Books Clark, K. L.; McCabe, Frank G. (1983). micro-PROLOG: Programming in Logic. Old Tappan, NJ: Prentice Hall Inc. ISBN 9780135812648.
Book chapters Clark, K. L. (1978). "Negation as Failure". In Gallaire, Hervé; Minker, Jack (eds.). Logic and Data Bases. Boston, MA: Springer. pp. 293–322. doi:10.1007/978-1-4684-3384-5_11.
Journal articles Clark, K. L.; Darlington, John (1980). "Algorithm classification through synthesis". The Computer Journal. 23 (1): 61–65. ———; Gregory, Steve (1986). "PARLOG: parallel programming in logic". ACM Transactions on Programming Languages and Systems. 8 (1): 1–49. ———; McCabe, Frank G. (2004). "Go!—A multi-paradigm programming language for implementing multi-threaded agents" (PDF). Annals of Mathematics and Artificial Intelligence. 41 (2): 171–206.
References
External links Keith Clark publications indexed by Google Scholar
