1 / 30

Chapter 17 Programming Tools

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. Editors Assemblers Debuggers. Compilers Linkers Loaders Interpreters. Programming Tools Overview.

Download Presentation

Chapter 17 Programming Tools

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. The Program Translation Process • Terms,terms, andmore terms! Source Translator Object Linker Loader Executable Chapter 17 Programming Tools

  4. Visual Basic IDE Chapter 17 Programming Tools

  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 Chapter 17 Programming Tools

  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 Chapter 17 Programming Tools

  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 Chapter 17 Programming Tools

  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 Chapter 17 Programming Tools

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

  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); } Chapter 17 Programming Tools

  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 Chapter 17 Programming Tools

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

  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 Chapter 17 Programming Tools

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

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

  16. Railroad Diagram Examples Chapter 17 Programming Tools

  17. Typical BNF Rules for Java Chapter 17 Programming Tools

  18. Parsed English Sentence Chapter 17 Programming Tools

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

  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 Chapter 17 Programming Tools

  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 Chapter 17 Programming Tools

  22. Recursive Descent Parsing Chapter 17 Programming Tools

  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! Chapter 17 Programming Tools

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

  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 Chapter 17 Programming Tools

  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 Chapter 17 Programming Tools

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

  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 Chapter 17 Programming Tools

  29. Interpreter vs. Compiler Chapter 17 Programming Tools

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

More Related