Download presentation
Presentation is loading. Please wait.
Published byBritton Robinson Modified over 9 years ago
1
The Nature of Computing INEL 4206 – Microprocessors Lecture 2 Bienvenido Vélez Ph. D. School of Engineering University of Puerto Rico - Mayagüez
2
The Nature of ComputingINEL 4206 - Microprocessors - Spring 20032 Some Inaccurate (Although Popular) Perceptions of Computing Computing = (Electronic) Computers Computing = Programming Computing = Software
3
The Nature of ComputingINEL 4206 - Microprocessors - Spring 20033 Computing = Computers Computing is about solving problems using computers A.K.A. The Computing Device View of Computing
4
The Nature of ComputingINEL 4206 - Microprocessors - Spring 20034 Computing = Programming Computing is about writing programs for computers A.K.A. The Programming Language view of Computing
5
The Nature of ComputingINEL 4206 - Microprocessors - Spring 20035 Computing = Software Computing is not concerned with hardware design A.K.A. The “Floppy Disk” view of Computing
6
The Nature of ComputingINEL 4206 - Microprocessors - Spring 20036 Outline What is Computing? Computing Models and Computability Interpretation and Universal Computers Abstraction and Building Blocks
7
The Nature of ComputingINEL 4206 - Microprocessors - Spring 20037 What is computing then? Algorithmic Computation Function Input Information Output Information Computing is the study of Computation: the process of transforming information
8
The Nature of ComputingINEL 4206 - Microprocessors - Spring 20038 The Computation Process Problem 01101100 1010100 101… encode 01101100 1010100 101… computedecode Solution
9
The Nature of ComputingINEL 4206 - Microprocessors - Spring 20039 Fundamental Questions Addressed by the Discipline of Computing What is the nature of computation? What can be computed? What can be computed efficiently? How to build practical computing devices?
10
The Nature of ComputingINEL 4206 - Microprocessors - Spring 200310 Computers as Integer Functions 01101100 1010100 101… encode 01101100 1010100 101… compute Problem decode Solution Integer Function
11
The Nature of ComputingINEL 4206 - Microprocessors - Spring 200311 Computability All Integer Functions (IF) Computable Integer Functions (CF) IF ≟ CF Halting Problem IF ≠ CF
12
The Nature of ComputingINEL 4206 - Microprocessors - Spring 200312 The Halting Problem (Alan Turing 1936) Given a program P and an input I to P determine if P stops on I Computer Program P Input I P Halts on I? We cannot build this machine … period
13
The Nature of ComputingINEL 4206 - Microprocessors - Spring 200313 Computability All Integer Functions (IF) Computable Integer Functions (CF) IF ≟ CF Halting Problem IF ≠ CF We want to formally describe the set of computable functions. BUT HOW???
14
The Nature of ComputingINEL 4206 - Microprocessors - Spring 200314 Mathematical Computers: The Turing Machine (1936) Alan Turing 01 01 FSM Infinit e I/O TAPE 0/{0,R} 1/{1,L} Tape Head Turing demonstrated how to solve several problems using his LCM computing model
15
The Nature of ComputingINEL 4206 - Microprocessors - Spring 200315 Mathematical Computers: The Turing Machine (1936) Alan Turing Turing demonstrated how to solve several problems using his LCM computing model 01 01 FSM Infinit e I/O TAPE 0/{0,R} 1/{1,L} Tape Head
16
The Nature of ComputingINEL 4206 - Microprocessors - Spring 200316 A TM Machine Recognizing a n b n Rutgers Turing Machine Example http://www.rci.rutgers.edu/~cfs/472_html/TM/anbnTM.html
17
The Nature of ComputingINEL 4206 - Microprocessors - Spring 200317 The Halting Problem Proof Sketch (Blackboard) Given a program P and an input I to P determine if P stops on I Computer Program P Input I P Halts on I? Cannot build this … period
18
The Nature of ComputingINEL 4206 - Microprocessors - Spring 200318 FSM Sorting TM FSM Sorting TM FSM Sorting TM Ad-hoc Turing Machines FSM Sorting TM FSM Searching TM FSM Integrating TM Can we build ONE general purpose TM? We know we can build TM’s to solve many interesting problems. But building a TM is a lot of work
19
The Nature of ComputingINEL 4206 - Microprocessors - Spring 200319 The Universal Turing Machine (UTM) The Paradigm for Modern General Purpose Computers Universal TM Encoded TM MEncoded Tape for M Capable of Emulating Every other TM Shown computable by Alan Turing (1936) Software just bits weightless effective computing models Hardware heavy expensive cumbersome computing model BIG IDEAS: INTERPRETATION & PROGRAMMABILITY!!!
20
The Nature of ComputingINEL 4206 - Microprocessors - Spring 200320 Other Familiar Models of Computation Combinational Circuits Sequential Circuits (FSM’s) Pentium Instruction Set Architecture Lambda Calculus Recursive Functions C, C++, Java, C#, etc… Can you tell which ones are Turing Universal, or which ones can emulate any other Turing Machine?
21
The Nature of ComputingINEL 4206 - Microprocessors - Spring 200321 Church’s Thesis Alonso Church “All the models of computation yet developed, and all those that may be developed in the future, are equivalent in power.” “Any realizable computing device can be simulated by a Turing machine” Issues not considered: Size, Programmability, Performance But they must be considered if one is to build …
22
The Nature of ComputingINEL 4206 - Microprocessors - Spring 200322 DataPaths PC ABR ALU AC Practical Universal Computers ( John) Von Neumann Architecture (1945) Program Data Memory Control Unit (FSM) CPU CPU is a universal TM An interpreter of some programming language (PL) status control This looks just like a TM Tape
23
The Nature of ComputingINEL 4206 - Microprocessors - Spring 200323 Computing in Perspective CMOS Gate FSM ISA Assembler 1Assembler 2Assembler 3 C++PascalFortran MatLab Build One Build Many Excel Programming is the art/science of encoding algorithms PSpice All have embedded PL’s Multiple Coexisting Levels of Interpretation
24
The Nature of ComputingINEL 4206 - Microprocessors - Spring 200324 Computing in Perspective Application Programs High-Level Language Assembly Language Machine Language (ISA) CS1/CS2, Programming, Data Structures Programming Languages, Compilers Computer Architecture Computer Human Interaction, User Interfaces people People computers Each abstraction layer implements an INTERPRETER of some computing/programming model INEL 4206
25
The Nature of ComputingINEL 4206 - Microprocessors - Spring 200325 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
26
The Nature of ComputingINEL 4206 - Microprocessors - Spring 200326 Hardware Building Blocks AB sel O SEL A B O Gate-Level Logic Provides a Computing Model A 2-1 multiplexer
27
The Nature of ComputingINEL 4206 - Microprocessors - Spring 200327 Software Building Blocks // MUX – Implements a 2-1 binary multiplexer bool MUX(bool a, bool b, bool sel) { switch(sel) { case 0: return a; break; case 1: return b; break; } Other abstraction tools include: structures, classes, modules The function is one of the most ubiquitous abstraction tools
28
The Nature of ComputingINEL 4206 - Microprocessors - Spring 200328 What Makes a Good Building Block Provides a clear and simple contract The contract hides irrelevant detail The contract is general and orthogonal The contract is easy to remember
29
The Nature of ComputingINEL 4206 - Microprocessors - Spring 200329 Some Properties of a Good Programming Language Does not hide expressive power of lower layers Can be efficiently interpreted Provides adequate higher level abstractions Provides a variety of constructs for creating new abstractions, layers and modules Achieves all of the above with minimal complexity
30
The Nature of ComputingINEL 4206 - Microprocessors - Spring 200330 Summary Computing = Information Transformation Information Transformation = Integer Functions Some integer functions are not computable Turing Machine computations = All computations Universal Computer = Universal TM Interpretation => Programmability => Flexibility Building blocks are abstract contracts
31
The Nature of ComputingINEL 4206 - Microprocessors - Spring 200331 "Computer Science is no more about computers than Astronomy is about telescopes" E. W. Dijkstra 1930-2002 1972 Turing Award Summary
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.