The Nature of Computing

Slides:



Advertisements
Similar presentations
Microcomputer Circuits Prof Jess UEAB 2007 Designing a Microprocessor Chapter 1.
Advertisements

CS 345: Chapter 9 Algorithmic Universality and Its Robustness
INTRODUCTION OF COMPUTER
 Computer hardware components are the physical pieces of the computer.  The major hardware components of a computer are: – The central processing.
CSC 2400 Computer Systems I Lecture 3 Big Ideas. 2 Big Idea: Universal Computing Device All computers, given enough time and memory, are capable of computing.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1-1 Introduction to Computing Systems: From Bits and Gates.
1. By the end of this lecture you should be able … To describe in general terms how computers function To describe the fetch-execute cycle To explain.
Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.
Introduction to Computer Engineering ECE/CS 252, Fall 2010 Prof. Mikko Lipasti Department of Electrical and Computer Engineering University of Wisconsin.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1-1 Introduction to Computing Systems: From Bits and Gates.
Welcome Aboard – Chapter 1 COMP 2610 Dr. James Money COMP
Levels of Architecture & Language CHAPTER 1 © copyright Bobby Hoggard / material may not be redistributed without permission.
Computer Organization Intro 1 CEG 320/520: Computer Organization and Assembly Language Programming Introduction to Computer Organization.
Computer system overview1 The Effects of Computers Pervasive in all professions How have computers affected my life? How have computers affected my life?
Digital Design and Computer Architecture Dr. Robert D. Kent LT Ext Lecture 1 Introduction.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1-1 Introduction to Computer Engineering ELEC S100F (Fall.
MARC: Developing Bioinformatics Programs July 2009 Alex Ropelewski PSC-NRBSC Bienvenido Vélez UPR Mayaguez Reference: How to Think Like a Computer Scientist:
Spring 2006ICOM 4036 Programming Laguages Lecture 2 1 The Nature of Computing Prof. Bienvenido Velez ICOM 4036 Lecture 2.
Software Basics. Some Pioneers Charles Babbage Analytical Engine Countess Ada Lovelace First Programmer ? John Von Neumann storing instructions in memory.
Chapter 1 Introduction.
School of Computer Science & Information Technology G6DICP Introduction to Computer Programming Milena Radenkovic.
Spring 2002INEL 4206 Microprocessors Lecture 4 1 Practical Universal Computers Prof. Bienvenido Velez Lecture 4 Bits Wires Gates Turing Machines.
The Nature of Computing INEL 4206 – Microprocessors Lecture 3 Bienvenido Vélez Ph. D. School of Engineering University of Puerto Rico - Mayagüez.
The Nature of Computing INEL 4206 – Microprocessors Lecture 2 Bienvenido Vélez Ph. D. School of Engineering University of Puerto Rico - Mayagüez.
PART 1 Introduction 1. Layers of Abstraction 2. Turing Machine 3. Layer Transformation 4. Descriptions of Layers.
Computer Science 101 Theory of Computing. Computer Science is... The study of algorithms, with respect to –their formal properties –their linguistic realizations.
Introduction to Computer Engineering CS/ECE 252, Spring 2008 Prof. David A. Wood Computer Sciences Department University of Wisconsin – Madison Adapted.
Fall 2004ICOM 4036 Programming Laguages Lecture 2 1 Low-Level Programming Prof. Bienvenido Velez ICOM 4036 Lecture 2.
MARC ProgramEssential Computing for Bioinformatics 1 The Nature of Computing Prof. Bienvenido Velez ICOM 4995 Lecture 3.
Chapter 2 Data Manipulation © 2007 Pearson Addison-Wesley. All rights reserved.
©Brooks/Cole, 2003 Chapter 1 Introduction. ©Brooks/Cole, 2003 Figure 1-1 Data processor model This model represents a specific-purpose computer not a.
CS150: Computer Organization and Architecture Michael D. Wilder, Ph.D.
MARC: Developing Bioinformatics Programs Alex Ropelewski PSC-NRBSC Bienvenido Vélez UPR Mayaguez Reference: How to Think Like a Computer Scientist: Learning.
Chapter I: Introduction to Computer Science. Computer: is a machine that accepts input data, processes the data and creates output data. This is a specific-purpose.
Chapter 1 Welcome Aboard. Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1-2 Introduction to the World of.
Computer Organization and Architecture Lecture 1 : Introduction
Yale N. Patt Sanjay J. Patel
Computers’ Basic Organization
CSC235 Computer Organization & Assembly Language
Computer Organization and Machine Language Programming CPTG 245
15-740/ Computer Architecture Lecture 3: Performance
Chapter 1 Introduction.
CSCI-235 Micro-Computer Applications
Introduction to Computer Engineering
Instructor:Po-Yu Kuo 教師:郭柏佑
COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE
Stateless Combinational Logic and State Circuits
Chapter 1 Welcome Abroad
Turing Machines.
Introduction to Computer Engineering
Microprocessor and Assembly Language
Computer Organization & Assembly language
1.#.
Welcome Aboard 1.
Foundations of Computer Science
CISC AND RISC SYSTEM Based on instruction set, we broadly classify Computer/microprocessor/microcontroller into CISC and RISC. CISC SYSTEM: COMPLEX INSTRUCTION.
Intro to Architecture & Organization
T Computer Architecture, Autumn 2005
Chapter 1 Welcome Aboard!. Chapter 1 Welcome Aboard!
Instructor:Po-Yu Kuo 教師:郭柏佑
Introduction to Computer Engineering
The Von Neumann Architecture Odds and Ends
Principles of Programming Languages
CompSci 1: Principles of Computer Science Lecture 1 Course Overview
Professor: Shereen Khoja
The Church-Turing Thesis and Turing-completeness
OCR GCSE (9-1) Computer Science (J276)
CO Games Development 2 Week 21 Turing Machines & Computability
Introduction to Computer Engineering
Chapter 4 The Von Neumann Model
Presentation transcript:

The Nature of Computing ICOM 4036 Lecture 2 Prof. Bienvenido Velez Spring 2009 ICOM 4036 Programming Laguages Lecture 2

Some Inaccurate Yet Popular Perceptions of Computing Computing = Computers Computing = Programming Computing = Software Spring 2009 ICOM 4036 Programming Laguages Lecture 2

Computing = Computers Computing is about solving problems using computers A.K.A. The Computing Device View of Computing Spring 2009 ICOM 4036 Programming Laguages Lecture 2

Computing = Programming Computing is about writing programs for computers A.K.A. The Programming Language view of Computing Spring 2009 ICOM 4036 Programming Laguages Lecture 2

Computing = Software Computing is not concerned with hardware design A.K.A. The “Floppy Disk” view of Computing Spring 2009 ICOM 4036 Programming Laguages Lecture 2

ICOM 4036 Programming Laguages Lecture 2 Part I - Outline What is Computing? Computing Models and Computability Interpretation and Universal Computers Church’s Thesis Spring 2009 ICOM 4036 Programming Laguages Lecture 2

What is computing then? Computing is the study of Computation: Algorithmic Computation Function Input Information Output Information Computing is the study of Computation: the process of transforming information Spring 2009 ICOM 4036 Programming Laguages Lecture 2

The Computation Process 011011001010100101… encode 011011001010100101… compute decode Solution Problem Information Information Spring 2009 ICOM 4036 Programming Laguages 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 2009 ICOM 4036 Programming Laguages Lecture 2

The Computation Process 011011001010100101… encode 011011001010100101… compute decode Solution Problem Integer Integer Integer Function Every Algorithm is in Essence and Integer Function Spring 2009 ICOM 4036 Programming Laguages Lecture 2

ICOM 4036 Programming Laguages Lecture 2 Computability Halting Problem IF ≠ CF Computable Integer Functions (CF) IF ≟ CF All Integer Functions (IF) Computable Integer Functions (CF) Spring 2009 ICOM 4036 Programming Laguages 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. Compute Program P P Halts on I? Input I Want to describe the set of computable functions? Cannot Build This Spring 2009 ICOM 4036 Programming Laguages Lecture 2

Mathematical Computers: The Turing Machine (1936) 1 Tape Head Infinite I/O TAPE 0/{1,0,R} 1 FSM 1/{0,1,L} Alan Turing Input Symbol Next State Head Movement Write Symbol Spring 2009 ICOM 4036 Programming Laguages Lecture 2

Mathematical Computers: The Turing Machine (1936) 1 Tape Head Infinite I/O TAPE InfiniteTAPE 0/{1,0,R} 1 FSM FSM 1/{0,1,L} Alan Turing Turing demonstrated how to solve several problems using his computing model Spring 2009 ICOM 4036 Programming Laguages Lecture 2

Ad-hoc Turing Machines FSM Sorting TM FSM Sorting TM FSM Sorting TM FSM Sorting TM FSM Searching TM FSM Integrating TM Can we build a general purpose TM? Spring 2009 ICOM 4036 Programming Laguages Lecture 2

ICOM 4036 Programming Laguages Lecture 2 The Universal Turing Machine (UTM) The Paradigm for Modern General Purpose Computers Software (flexible) Coded TM M Coded Tape for M Programming = Encoding Algorithms Hardware (fast) Universal TM Capable of Emulating Every other TM Shown possible by Alan Turing (1936) BIG IDEA: INTEPRETATION!!! Spring 2009 ICOM 4036 Programming Laguages 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 2009 ICOM 4036 Programming Laguages Lecture 2

Computing in Perspective All have embedded PL’s Excel MatLab PSpice Build Many Pascal C++ Fortran Assembler 1 Assembler 2 Assembler 3 ISA FSM Build One Gate CMOS Interpreter Design Demands Programming Language Design Spring 2009 ICOM 4036 Programming Laguages 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: Can build many higher layer on same lower layer Because we know of no other way of doing anything Spring 2009 ICOM 4036 Programming Laguages 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 2009 ICOM 4036 Programming Laguages Lecture 2

The (John) Von Neumann Architecture (late 40’s) Allow communication with outside world I/O devices Central Processing Unit (CPU) Interprets instructions Stores both programs and data Memory After 60 years … most processors still look like this! Spring 2009 ICOM 4036 Programming Laguages Lecture 2

Practical Universal Computers (John) Von Neumann Architecture (1945) Memory CPU Program DataPaths AC ALU This looks just like a TM Tape PC Data ABR status control Control Unit (FSM) CPU is a universal TM An interpreter of some programming language (PL) Spring 2009 ICOM 4036 Programming Laguages Lecture 2

ICOM 4036 Programming Laguages Lecture 2 End of Lecture 2 Spring 2009 ICOM 4036 Programming Laguages Lecture 2