The Nature of Computing
ICOM 4036 Lecture 2
Prof. Bienvenido Velez
Spring 2006 ICOM 4036 Programming Laguages 1 Lecture 2 Some Inaccurate Yet Popular Perceptions of Computing
• Computing = Computers • Computing = Programming • Computing = Software
Spring 2006 ICOM 4036 Programming Laguages 2 Lecture 2 Computing = Computers
Computing is about solving problems using computers
A.K.A. The Computing Device View of Computing
Spring 2006 ICOM 4036 Programming Laguages 3 Lecture 2 Computing = Programming
Computing is about writing programs for computers
A.K.A. The Programming Language view of Computing
Spring 2006 ICOM 4036 Programming Laguages 4 Lecture 2 Computing = Software
Computing is not concerned with hardware design
A.K.A. The “Floppy Disk” view of Computing
Spring 2006 ICOM 4036 Programming Laguages 5 Lecture 2 Part I - Outline
• What is Computing? • Computing Models and Computability • Interpretation and Universal Computers • Church’s Thesis
Spring 2006 ICOM 4036 Programming Laguages 6 Lecture 2 What is computing then?
Algorithmic Input Output Information Computation Information Function
Computing is the study of Computation: the process of transforming information
Spring 2006 ICOM 4036 Programming Laguages 7 Lecture 2 The Computation Process
encode compute decode
0110110 0110110 0101010 0101010 0101… 0101… Information Information Problem Solution
Spring 2006 ICOM 4036 Programming Laguages 8 Lecture 2 Fundamental Questions Addressed by the Discipline of Computing • What is the nature of computation? • What can be computed? • What can be computed efficiently? • How can we build computing devices?
Spring 2006 ICOM 4036 Programming Laguages 9 Lecture 2 The Computation Process
encode compute decode
0110110 0110110 0101010 0101010 0101… 0101…
Problem Solution
Integer Integer Integer Function
Spring 2006 ICOM 4036 Programming Laguages 10 Lecture 2 Computability
All Integer Functions IFIF ≠≟ CFCF (IF) Computable IntegerInteger FunctionsFunctions (CF)
Halting Problem
Spring 2006 ICOM 4036 Programming Laguages 11 Lecture 2 The Halting Problem (Alan Turing 1936)
Given a program and an input to the program, determine if the program will eventually stop when it is given that input.
Program P Compute P Halts on I? Input I Want to describe Cannot Build This the set of computable functions? Spring 2006 ICOM 4036 Programming Laguages 12 Lecture 2 Mathematical Computers: The Turing Machine (1936)
0 1
Tape Infinite Head I/O 0/{1,0,R} TAPE 0 1 FSM 1/{0,1,L}
Input Alan Turing Next Head Symbol Write State Movement Symbol
Spring 2006 ICOM 4036 Programming Laguages 13 Lecture 2 Mathematical Computers: The Turing Machine (1936)
0 1
Tape Infinite Head TAPEI/O 0/{1,0,R} TAPE 0 1 FSM 1/{0,1,L}
Alan Turing Turing demonstrated how to solve several problems using his computing model
Spring 2006 ICOM 4036 Programming Laguages 14 Lecture 2 Ad-hoc Turing Machines
FSM FSMFSM SortingFSM TM SortingSorting TM TM Sorting TM FSM Searching TM FSM Integrating TM
Can we build a general purpose TM?
Spring 2006 ICOM 4036 Programming Laguages 15 Lecture 2 The Universal Turing Machine (UTM) The Paradigm for Modern General Purpose Computers
Coded TM M Coded Tape for M
Software Universal TM (flexible) Hardware
Programming = Encoding Algorithms (fast) • Capable of Emulating Every other TM • Shown possible by Alan Turing (1936) •BIG IDEA: INTEPRETATION!!!
Spring 2006 ICOM 4036 Programming Laguages 16 Lecture 2 Other Familiar Models of Computation • Combinational Circuits • Sequential Circuits (FSM’s) • Pentium Instruction Set Architectures • Lambda Calculus • Recursive Functions •C++
Can you tell which ones are Turing Universal? That is, which ones can emulate any other Turing Machine?
Spring 2006 ICOM 4036 Programming Laguages 17 Lecture 2 Computing in Perspective All have embedded PL’s Excel MatLab PSpice
Build Pascal C++ Fortran Many
Assembler 1 Assembler 2 Assembler 3
ISA FSM Build Gate One CMOS Interpreter Design Demands Programming Language Design Spring 2006 ICOM 4036 Programming Laguages 18 Lecture 2 Why Abstraction Layers?
• Resilience to change: – Each layer provides a level of indirection • Divide and Conquer Approach: – Can work on one small semantic gap at a time • Building Block Approach: Because we know of no – Can build many higher layer on same lowerother layer way of doing anything
Spring 2006 ICOM 4036 Programming Laguages 19 Lecture 2 Church’s Thesis
“Any realizable computing device can be simulated by a Turing machine”
“All the models of computation yet developed, and all those that may be developed in the future, are equivalent in power.” Alonso Church Issues not considered: Size, Programmability, Performance But they must be considered if one is to build … Spring 2006 ICOM 4036 Programming Laguages 20 Lecture 2 The (John) Von Neumann Architecture (late 40’s) I/O Allow communication devices with outside world
Central Interprets instructions Processing Unit (CPU)
Stores both programs and data Memory
After 60 years … most processors still look like this!
Spring 2006 ICOM 4036 Programming Laguages 21 Lecture 2 Practical Universal Computers (John) Von Neumann Architecture (1945)
CPU Memory DataPaths
AC Program This looks ALU just like a PC TM Tape ABR status control Data Control Unit (FSM) CPU is a universal TM An interpreter of some programming language (PL) Spring 2006 ICOM 4036 Programming Laguages 22 Lecture 2