9/20/6Lecture 3 - Instruction Set - Al1 Program Design.

Slides:



Advertisements
Similar presentations
Branches Two branch instructions:
Advertisements

Chapter 1 An Overview of Computers and Programming Languages.
Copyright © 2002 W. A. Tucker1 Chapter 1 Lecture Notes Bill Tucker Austin Community College COSC 1315.
Overview of Computers & Programming Languages Chapter 1.
Computers Are Your Future
1/1/ / faculty of Electrical Engineering eindhoven university of technology Introduction Part 3: Input/output and co-processors dr.ir. A.C. Verschueren.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Software engineering, program management. The problem  Software is expensive to design! – Industry estimates put software development labor costs at.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
Design The goal is to design a modular solution, using the techniques of: Decomposition Abstraction Encapsulation In Object Oriented Programming this is.
1 Lecture 1  Getting ready to program  Hardware Model  Software Model  Programming Languages  The C Language  Software Engineering  Programming.
An introduction to systems programming
Choice for the rest of the semester New Plan –assembler and machine language –Operating systems Process scheduling Memory management File system Optimization.
Chapter 2: Impact of Machine Architectures What is the Relationship Between Programs, Programming Languages, and Computers.
Mehmet Can Vuran, Instructor University of Nebraska-Lincoln Acknowledgement: Overheads adapted from those provided by the authors of the textbook.
1 Software, Programmings. 2 Types of Software Figure 9.1 Shakeel Ahmad.
CS 101 Problem Solving and Structured Programming in C Sami Rollins Spring 2003.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Chapter 1 Introduction to Programming. Computer Hardware CPU Memory –Main or primary –Secondary or auxiliary Input device(s) Output device(s)
Assembly & Machine Languages
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Introduction to Programming Prof. Rommel Anthony Palomino Department of Computer Science and Information Technology Spring 2011.
Lesson 7 Guide for Software Design Description (SDD)
Structured programming 4 Day 34 LING Computational Linguistics Harry Howard Tulane University.
More with Methods (parameters, reference vs. value, array processing) Corresponds with Chapters 5 and 6.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
 2004 by SEC Chapter 4 Software Design. 2  2004 by SEC Chapter 4 Software Design 4.1 Design Fundamentals 4.2 Design Method 4.3 Architecture Design
Modularity Lecture 4 Course Name: High Level Programming Language Year : 2010.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 7 OS System Structure.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Design Concepts and Principles Instructor: Dr. Jerry Gao.
 Repository Model  Client-Server Model  Layered Model  Modular decomposition styles  Object Models  Function Oriented Pipelining  Control Styles.
Design Concepts By Deepika Chaudhary.
B.Ramamurthy11/9/20151 Computers and Programming Bina Ramamurthy 127 Bell Hall
C o n f i d e n t i a l 1 Course: BCA Semester: III Subject Code : BC 0042 Subject Name: Operating Systems Unit number : 1 Unit Title: Overview of Operating.
9/20/6Lecture 3 - Instruction Set - Al1 Program Design Examples.
Chapter 1 Computers, Compilers, & Unix. Overview u Computer hardware u Unix u Computer Languages u Compilers.
Chapter 1 : Overview of Computer and Programming By Suraya Alias
Systems Design.  Application Design  User Interface Design  Database Design.
CSCI 161 Lecture 3 Martin van Bommel. Operating System Program that acts as interface to other software and the underlying hardware Operating System Utilities.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
CMPSC 16 Problem Solving with Computers I Spring 2014 Instructor: Tevfik Bultan Lecture 6: Stepwise refinement revisited, Midterm review.
5-1 EE 319K Introduction to Microcontrollers Lecture 5: Conditionals, Loops, Modular Programming, Sub- routines, Parameter passing.
7. Modular and structured design
Algorithms and Problem Solving
Introduction to Operating Systems
Coupling and Cohesion Rajni Bhalla.
Key Ideas from day 1 slides
Microprocessor Systems Design I
System Programming and administration
Part 3 Design What does design mean in different fields?
Hierarchical Architecture
Roadmap to Programming work, right, fast KISS
Overview of Computers & Programming Languages
Assembler, Compiler, Interpreter
Program Design Examples
Computer Science I CSC 135.
Introduction to Operating Systems
Problem Solving Techniques
Application Binary Interface (ABI)
Assembler, Compiler, Interpreter
Algorithms and Problem Solving
Chapter 6 Programming the basic computer
An introduction to systems programming
Lecture 3 - Instruction Set - Al
Lecture 3 - Instruction Set - Al
Presentation transcript:

9/20/6Lecture 3 - Instruction Set - Al1 Program Design

9/20/6Lecture 3 - Instruction Set - Al2 Lecture Overview  Top down design  Modular design  Parameter Passing  Stack and Local Variables  Structured Programming

9/20/6Lecture 3 - Instruction Set - Al3 Top Down Design  Programming in assembler Assembler language does not intuitively result in good quality programs It takes special care to design quality programs  Five ingredients to good program design Top-down design Modularity Structured programming Testability Recoverability

9/20/6Lecture 3 - Instruction Set - Al4 Assembler Language  Greatest Challenge – Where to begin  Answer Don’t actually program in assembler Program in a program design language (PDL) and then translate from the PDL to assembler  Pseudo compiling  May even be desirable to write up the algorithm in a PDL and then translate to a high level language (HLL) Program the algorithm in PDL – much like any HLL

9/20/6Lecture 3 - Instruction Set - Al5 Top Down Design  Also called “Stepwise Refinement”  Iterative Process (ref Fig 3.1 of text)

9/20/6Lecture 3 - Instruction Set - Al6 Disk OS example Shows design along functional Lines.

9/20/6Lecture 3 - Instruction Set - Al7 Popular Approach to Programming  Approach is called Top-Down Design and Bottom-Up Coding.  Problem decomposed into levels of abstraction (top-down design)  System implemented by coding the lowest levels first (bottom-up coding)  EX: Word Processor – Code I/O of char first.

9/20/6Lecture 3 - Instruction Set - Al8 System Specification  Before system designed it must be specified  What is goal of system  Let us brainstorm on what is needed to implement a serial interface. Hardware wise Software wise TIME TO DO THE SPECIFICATION Suggest a system – create spec

9/20/6Lecture 3 - Instruction Set - Al9 Degree of Specification  Tightly specified – ultimately cover all possible eventualities  Loosely specified – situations may occur during operation which are not covered by spec.

9/20/6Lecture 3 - Instruction Set - Al10 Modular Design  Current software is modular in design.  Why? Overall less complex. – divided into subsystems and after levels of decomposition, leaf elements are simple. Leaf elements are called modules  Software module is analogous to a hardware element – has inputs, outputs and can be “plugged in”

9/20/6Lecture 3 - Instruction Set - Al11 Modules  Module Coupling How information is shared between one module and other modules of the system. Tightly coupled – modules share common data areas and both can modify the data.  When there is erroneous data hard to debug Loosely coupled – module has access to only its own data and not other process can access its data  Data transfers only through I/O interface

9/20/6Lecture 3 - Instruction Set - Al12 Modules  Module Strength A measure of its modularity Divide a large program up into units of ~75 lines each. Divide a large program up into units where each unit has a closed task.  Strong modules are easy to test as they only perform one function.

Assignment  Assignment HW 3 Problem 2-35 page For discussion in class  Time of execution – In class assignment for us to work HW4 – code the algorithm for reversing the order of the bits using your method vs. one given in class  Code this in the simulator. Use trap 15 with a value of 8 in register D0.L to get the time when execution of your program started (returned in D1), save it to another register. Do the same at the end and repeat the trap. Have your original data in one register ant the reversed in another. Capture and paste the simulator window into word. Make notes to specify the register used. Past the window, and then add your code. Fri Coming – code up your subroutine from /20/6Lecture 3 - Instruction Set - Al13