Download presentation
Presentation is loading. Please wait.
Published byCordelia Dennis Modified over 9 years ago
1
The Nature of Computing INEL 4206 – Microprocessors Lecture 3 Bienvenido Vélez Ph. D. School of Engineering University of Puerto Rico - Mayagüez
2
The Nature of ComputingCOMPEL 20022 Some Inaccurate Yet Popular Perceptions of Computing Computing = Computers Computing = Programming Computing = Software
3
The Nature of ComputingCOMPEL 20023 Computing = Computers Computing is about solving problems using computers A.K.A. The Computing Device View of Computing
4
The Nature of ComputingCOMPEL 20024 Computing = Programming Computing is about writing programs for computers A.K.A. The Programming Language view of Computing
5
The Nature of ComputingCOMPEL 20025 Computing = Software Computing is not concerned with hardware design A.K.A. The “Floppy Disk” view of Computing
6
The Nature of ComputingCOMPEL 20026 Outline What is Computing? Computing Models and Computability Intepretation and Universal Computers Abstraction and Building Blocks
7
The Nature of ComputingCOMPEL 20027 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 ComputingCOMPEL 20028 The Computation Process 01101100 1010100 101… encode 01101100 1010100 101… compute Problem decode Solution This Talk
9
The Nature of ComputingCOMPEL 20029 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 ComputingCOMPEL 200210 The Computation Process 01101100 1010100 101… encode 01101100 1010100 101… compute Problem decode Solution Integer Function
11
The Nature of ComputingCOMPEL 200211 Computability All Integer Functions (IF) Computable Integer Functions (CF) IF ≟ CF Halting Problem IF ≠ CF Computable Integer Functions (CF)
12
The Nature of ComputingCOMPEL 200212 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 Input I P Halts on I? Cannot Build This Want to describe the set of computable functions?
13
The Nature of ComputingCOMPEL 200213 Mathematical Computers: The Turing Machine (1936) Alan Turing 01 01 FSM Infinit e I/O TAPE 0/{1,0,R} 1/{0,1,R} Tape Head
14
The Nature of ComputingCOMPEL 200214 Mathematical Computers: The Turing Machine (1936) Alan Turing 01 01 FSM Infinit eTAPE 0/{1,0,R} 1/{0,1,R} FSM Infinit e I/O TAPE Tape Head Turing demonstrated how to solve several problems using his computing model
15
The Nature of ComputingCOMPEL 200215 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 a general purpose TM?
16
The Nature of ComputingCOMPEL 200216 The Universal Turing Machine (UTM) The Paradigm for Modern General Purpose Computers Universal TM Coded TM MCoded Tape for M Capable of Emulating Every other TM Shown possible by Alan Turing (1936) BIG IDEA: INTEPRETATION!!! Software (flexible) Hardware (fast)
17
The Nature of ComputingCOMPEL 200217 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?
18
The Nature of ComputingCOMPEL 200218 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 …
19
The Nature of ComputingCOMPEL 200219 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
20
The Nature of ComputingCOMPEL 200220 Computing in Perspective CMOS Gate FSM ISA Assembler 1Assembler 2Assembler 3 C++PascalFortran MatLab Build One Build Many Excel Interpreter Design Demands Programming Language Design PSpice All have embedded PL’s
21
The Nature of ComputingCOMPEL 200221 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 computers Each layer implements an INTERPRETER for some programming language
22
The Nature of ComputingCOMPEL 200222 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
23
The Nature of ComputingCOMPEL 200223 Hardware Building Blocks AB sel O SEL A B O Gate-Level Logic Provides a Computing Model
24
The Nature of ComputingCOMPEL 200224 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
25
The Nature of ComputingCOMPEL 200225 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
26
The Nature of ComputingCOMPEL 200226 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
27
The Nature of ComputingCOMPEL 200227 "Computer Science is no more about computers than Astronomy is about telescopes" E. Dijkstra Summary
28
The Nature of ComputingCOMPEL 200228 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
29
The Nature of ComputingCOMPEL 200229 Outline of The Talk Introduccion a la disciplina –Informacion, modelos computacionales, computabilidad Interpretacion –Universalidad, expresividad, PL Modularidad & Building Blocks –Software example vs hardware example Criterios HW vs. SW –flexibilidad vs. performance
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.