Developments in computational models: introduction

2006 Mathematical Structures in Computer Science  
In recent years several new models of computation have emerged that have been inspired by the physical sciences, biology and logic, to name but a few (for example, quantum computing, chemical machines and bio-computing). Also, many developments of traditional computational models have been proposed with the aim of taking into account the new demands of computer systems users and the new capabilities of computation engines. A new computation model, or a new feature in a traditional one, is
more » ... y reflected in a new family of programming languages, and new paradigms of software development. Thus, an understanding of the traditional and emergent models of computation facilitates the use of modern programming languages and software development tools, informs the choice of the correct language for a given application, and is essential for the design of new programming languages. To understand what we mean by a computational model, we briefly recall a little history. The notion of computability and computable functions goes back to the beginning of the 20th century. It refers to a general notion of 'algorithm', but does not refer to a specific programming language or physical computational device. A computation model abstracts away from the material details of the programming language and the processor we are using. In the 1930s, logicians (in particular, Alan Turing and Alonzo Church) studied the meaning of computation as an abstract (mental) process, and started to design theoretical devices to model the process of computation. Since the 1930s, it has been known that certain basic problems cannot be solved by computation; the typical example being the halting problem. To prove this, Turing and Church (independently) constructed two abstract models of computation that later became the basis of the modern theory of computing: Turing Machines (designed by Alan Turing around 1936, with the aim of solving Hilbert's decision problem, the Entscheidungsproblem, which asks if there is a definite method or process by which it could be decided whether any given mathematical assertion in the functional calculus is provable), and the lambda calculus (designed by Alonzo Church, also in the late 1930s, as a foundation for the mathematical theory of functions). Kleene's theory of recursive functions was also developed in the 1930s, and gave an alternative view of computable functions. These are the 'traditional' models of
doi:10.1017/s0960129506005305 fatcat:vsvchiizrrdwzdwsavimioyot4