The Nature of Computing
Total Page:16
File Type:pdf, Size:1020Kb
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.