It is generally recognized that Algorithmics, Semantics and to a large extent Logic together constitute the backbone of Theoretical Computer Science, with Semantics and Logic dealing mostly with qualitative aspects and Algorithmics dealing mostly with quantitative aspects. Despite these differences in objectives there is an abundance of examples of problems in one discipline benefitting from results and techniques in another, and often stimulating research in another area. It is to be expected that their coexistence under a common centre will yield fruitful interaction between researchers and a productive cross-fertilisation between the different disciplines. This century has seen Logic extend beyond the preserve of philosophers and philosophically-minded mathematicians, to become a central tool in understanding and reasoning about computer systems. The original motivation for formal systems, to make the activity of mathematics an object of study in itself, has arguably been supplanted in importance by the everyday use of logical systems in Computer Science.
Logic touches on many aspects of computing.
Its use ranges from that in the execution of machines, as in Logic Programming, or in the machine assistance to reasoning of theorem provers, to argumentation within a specialised program logic to verify that a program or system does what is required of it. Unquestionably, Computer Scientists are important users of Mathematical Logic, with problems in Computer Science giving new impetus to Logic. A variety of logics are widespread in Computer Science. The familiar Predicate Calculus finds applications in a range of diverse areas from Program Correctness, Logic Programming, Database Theory, to knowledge representation in Artificial Intelligence. However, the role of Logic in Computer Science reaches far beyond that of classical Predicate Calculus.