1 / 11

Computation Theory

Overview. Computation Theory. About This Course. Explores the theoretical foundations of computing What can and cannot be done by an algorithm Most of the material predates computers! Has direct application in digital design , programming languages , and compilers.

nami
Télécharger la présentation

Computation Theory

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Overview Computation Theory

  2. About This Course • Explores the theoretical foundations of computing • What can and cannot be done by an algorithm • Most of the material predates computers! • Has direct application in digital design, programming languages, and compilers CS 3240 - Introduction

  3. Automatic Computation Symbolic computation (numbers are just bit strings)

  4. Models of Computation - I • Turing Machine (1936-37) • von Neumann architecture • fetch/store in memory • led to creation of digital computers • machine language • Imperative programming paradigm • assembly, procedural, object-oriented (FORTRAN, Pascal, C, C++, Java, C#, Python, Perl, PHP, Ruby, etc.) • Covered in this course

  5. Models of Computation - II • Lambda Calculus (1936) • based on mathematical functions • higher-level than imperative programming • no assignment statement! • Functional programming paradigm • Lisp, Scheme, ML, Haskell, Scala, Groovy, F#.NET • Features creeping into C++, C#, Java, Python, Ruby, etc. • Covered in CS 4450

  6. The Things That Don’t Change • What is “computation”? • “The processing of ‘data’ according to an algorithm” • Theory was fairly complete before computers existed • Guided the development of computers and their use • And still does…

  7. Things That Can’t Be Done • Write a program that reads other programs and determines if they work correctly (e.g., halt without error) for all possible inputs • Write a general-purpose sorting algorithm (i.e., that only uses comparisons of its elements to determine order) that has a time complexity less than O(n log n) • Determine if a polynomial of arbitrary degree with integer coefficients has an integer root • Given two arbitrary language grammars, determine if they describe the same language

  8. How We Got Here • 360 BC Eudoxus (Method of Exhaustion) • 350 Aristotle (Deductive Logic) • 300 Euclid (The Axiomatic Method) • 250 AD Diophantine (Number Theory) • 628 Brahmasphuta (Carry/borrow decimals) • 830 al-Khowarizmi (The Algorithm) • 1614 Napier (Logarithms) • 1666 Leibniz (Symbology of calculus) • 1671 Newton (Approximations/infinitesimals) • 1815-1870 Fourier, Cauchy, Riemann (Formalization of Analysis) • 1833-1842 Babbage (Difference Engine) • 1852 Boole (Symbolic Logic- “Laws of Thought”) • 1874 Cantor (Cardinality) • 1884 Frege (Foundations of Arithmetic) • 1889 Peano (Axioms of Arithmetic) • 1900 Hilbert (Foundations of Geometry; 10 Problems) • 1908 Zermelo-Fränkel Set Theory • 1910 Russell & Whitehead (Prinicipia Mathematica – Type Theory) • 1931 Godel’s Incompleteness Theorem (Decidability) • 1936 Church, Post, Kleene, Turing

  9. Our Major Topics • “Formal” Languages • Syntax only, not semantics • Finite Automata • Simple machines (state machines), regular languages • Push-down Automata • Automata with memory • Context-free languages • Turing Theory • Universal abstract model for computation

  10. Course Outcomes • Understand the concepts of Regular Languages and their relationship to finite state machines (automata) • Understand the concepts of Context-Free Languages and their relationship to pushdown automata • Understand the concepts of Computable Languages and their relationship to Turing machines • Apply all of the above in computer programs • Understand the limits of automatic computation • Ultimate outcome: to grok the “big picture” of computation models

  11. Syllabus Walkthrough Visit chuckallison.com

More Related