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 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 (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 (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 • • 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