Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 17 Programming Tools The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3rd Edition, Irv Englander.

Similar presentations


Presentation on theme: "Chapter 17 Programming Tools The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3rd Edition, Irv Englander."— Presentation transcript:

1 Chapter 17 Programming Tools The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3rd Edition, Irv Englander John Wiley and Sons  2003

2 Chapter 17 Programming Tools 17-2 Programming Tools Overview  Editors  Assemblers  Debuggers  Compilers  Linkers  Loaders  Interpreters Integrated Development Environments (IDEs) combine several of the above programming tools

3 Chapter 17 Programming Tools 17-3 The Program Translation Process  Terms, terms, and more terms! Source Object Executable Translator Linker Loader

4 Chapter 17 Programming Tools 17-4 Visual Basic IDE

5 Chapter 17 Programming Tools 17-5 Program Text Editors  Word processors format the appearance of the text  Text editors  Format the spacing between words for legibility  Ideal for structured languages  Text is the same font size  Examples  DOS – Edit  Windows – Notepad, Wordpad  Unix / Linux – ed, vi, emacs  IDEs  MS Visual C++, Symantec Visual Cafe

6 Chapter 17 Programming Tools 17-6 Programming Language Categories  Machine Language  Binary coded instructions  Assembly Language  Symbolic coded instructions  Procedural Languages  procedural statements or arithmetic notation  Four-generation Languages  Natural language and nonprocedural statements  Object-oriented Languages  Combination of objects and procedures

7 Chapter 17 Programming Tools 17-7 Assembly Language  When to use  When speed or size of program is critical  Hybrid approach  Hardware Drivers  Can use specialized instructions  Disadvantages  Inherently machine specific  Architectures may become obsolete  Lack of programming structure

8 Chapter 17 Programming Tools 17-8 Assemblers  Binary code = machine code  Hex code  Assembly Language  Mnemonic names  op codes  Labels  memory addresses  Comments  Symbol table  Operations table  Memory Relocation  Cross Assembler

9 Chapter 17 Programming Tools 17-9 What Does This Program Do?

10 Chapter 17 Programming Tools 17-10 LMC Program in Java  Use instructions in a more understandable language static int max (int x[]) { for (i=1; i<=3; i++) x[i] = input.getint(); max_int = x[1]; for (i=2; i<=3; i++) if (x[I] > max_int) max_int = x[I]; System.output.println(max_int); }

11 Chapter 17 Programming Tools 17-11 Procedural Languages  COBOL  Wordy but easier to maintain  FORTRAN  Scientists and engineers  BASIC  Pascal  Highly structured teaching language  C  high-level commands and low-level access to hardware

12 Chapter 17 Programming Tools 17-12 Object-Oriented Languages  SmallTalk  C++  Java  Based on C++  Platform independent

13 Chapter 17 Programming Tools 17-13 Compilers  Translates high-level language into low- level instructions  High-level language: Source code  Machine-level: Object code  Changes, including bug fixes, require recompiling

14 Chapter 17 Programming Tools 17-14 Language Components  Lexicon  All legal words in the language  Meaning and type  Syntax  grammar rules  Semantics  meaning of command

15 Chapter 17 Programming Tools 17-15 Computer Language Descriptions  Narrative  Syntax (Railroad) Diagrams  BNF  Backus-Naur Form  Context-Free Grammar

16 Chapter 17 Programming Tools 17-16 Railroad Diagram Examples

17 Chapter 17 Programming Tools 17-17 Typical BNF Rules for Java

18 Chapter 17 Programming Tools 17-18 Parsed English Sentence

19 Chapter 17 Programming Tools 17-19 The Compilation Process Checks for errors Generates CPU instructions or library calls Updates internal tables

20 Chapter 17 Programming Tools 17-20 Process of Parsing  Lexical analysis  Also known as scanning  Divides the string of input characters into single elements, tokens, based on strict computer punctuation  Syntactic analysis  Checks for errors in grammar rules  Semantic parsing  Determines the meaning of the string

21 Chapter 17 Programming Tools 17-21 Source Code Instructions  Data declarations:  Data type such as floating point, integer  Data operations  Instructions that update or compute data value (lots of moving around!)  Control Structures  Branches, Goto (yetch!), If-then-else, loops such as While-do and Repeat-until  Function, procedure, or subroutine calls  Receives control via a call instruction, receives and possibly modifies parameters, and returns control to the instruction after the call

22 Chapter 17 Programming Tools 17-22 Recursive Descent Parsing

23 Chapter 17 Programming Tools 17-23 Optimization  Compiler analyzes code in order to  Reduce amount of code  Eliminate repeated operations  Reorganize parts of of the program to execute faster and more efficiently  Use computer resources more effectively  Example  Move a calculation repeated within the body of a loop that does not use any value modified by the loop  Different compilers can produce different results!

24 Chapter 17 Programming Tools 17-24 Object file or object module Object file C library Executable file Linker Linking

25 Chapter 17 Programming Tools 17-25 Linkers  Searches program libraries to find library routines used by the program  Library: collection of pre-written functions and subroutines made available to perform commonly required activities  Determines the memory locations that code from each module will occupy and relocates instructions by adjusting absolute references  Resolves references among files

26 Chapter 17 Programming Tools 17-26 Why Link?  Construct single executable program from multiple object code files compiled at different times  Program can be subdivided into components and parceled out to different developers  Example  Main program and multiple subroutines written and compiled by different programmers at different times

27 Chapter 17 Programming Tools 17-27 Loader  Loads binary files that have been linked into main memory  Program is ready for execution

28 Chapter 17 Programming Tools 17-28 Interpreters  Translates source code instructions into machine language and executes it one statement at a time  Disadvantages  Longer to execute, particularly bad for loops  Uses more memory  Advantage  Faster testing and code modification  Examples of interpreted languages  Java, BASIC, LISP

29 Chapter 17 Programming Tools 17-29 Interpreter vs. Compiler Resources during executionInterpreterCompiler Contents in memory Interpreter/compilerYesNo Source codePartialNo Executable codeYes CPU cycles Translation operationsYesNo Library linkingYesNo Application programYes

30 Chapter 17 Programming Tools 17-30 Debuggers  Assembly language debuggers  Source code debuggers  Step through programs  Check variable values


Download ppt "Chapter 17 Programming Tools The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3rd Edition, Irv Englander."

Similar presentations


Ads by Google