Top Banner
Overview
11

Computation Theory

Jan 26, 2016

Download

Documents

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. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Computation Theory

Overview

Page 2: Computation Theory

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

2CS 3240 - Introduction

Page 3: Computation Theory

Symbolic computation (numbers are just bit strings)

Page 4: Computation Theory

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

Page 5: Computation Theory

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

Page 6: Computation Theory

What is “computation”? “The processing of ‘data’ according to an

algorithm”Theory was fairly complete before

computers existedGuided the development of

computers and their use And still does…

Page 7: Computation Theory

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

Page 8: Computation Theory

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

Page 9: Computation Theory

“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

Page 10: Computation Theory

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

Page 11: Computation Theory

Visit chuckallison.com