The Nature of Computing

The Nature of Computing

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.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    22 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us