Chapter 17 Programming Tools
Document Sample


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
Programming Tools Overview
Editors Compilers
Assemblers Linkers
Debuggers Loaders
Interpreters
Integrated Development Environments (IDEs)
combine several of the above programming tools
Chapter 17 Programming Tools 17-2
The Program Translation Process
Terms,
terms, and Source
more terms!
Translator Object
Linker
Loader
Executable
Chapter 17 Programming Tools 17-3
Visual Basic IDE
Chapter 17 Programming Tools 17-4
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 17-5
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 17-6
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 17-7
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 17-8
What Does This Program Do?
00 IN 901 ;input three numbers and save
01 STO 99 399
02 IN 901
03 STO 98 398
04 IN 901
05 STO 97 397 ;subtract number in 98 from that in 97
06 SUB 98 298 ;number in 97 larger
07 BRP 10 811 ;number in 98 larger, restore 98
08 LDA 98 598
09 BR 11 611
10 LDA 97 597 ;restore 97
11 STO 96 396 ;store larger of (97, 98) in 96
12 SUB 99 299 ;subtract number in 99 from larger
13 BRP 16 816 ;number in 96 larger
14 LDA 96 599 ;number in 99 larger, restore 99
15 BR 17 617
16 LDA 96 596 ;restore 96
17 OUT 902
18 COB 000
Chapter 17 Programming Tools 17-9
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 17-10
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 17-11
Object-Oriented Languages
SmallTalk
C++
Java
Based on C++
Platform independent
Chapter 17 Programming Tools 17-12
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 17-13
Language Components
Lexicon
All legal words in the language
Meaning and type
Syntax
grammar rules
Semantics
meaning of command
Chapter 17 Programming Tools 17-14
Computer Language Descriptions
Narrative
Syntax (Railroad) Diagrams
BNF
Backus-Naur Form
Context-Free Grammar
Chapter 17 Programming Tools 17-15
Railroad Diagram Examples
Chapter 17 Programming Tools 17-16
Typical BNF Rules for Java
Chapter 17 Programming Tools 17-17
Parsed English Sentence
Chapter 17 Programming Tools 17-18
The Compilation Process
Updates
internal
Checks for tables
errors
Generates CPU
instructions or
library calls
Chapter 17 Programming Tools 17-19
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 17-20
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 17-21
Recursive Descent Parsing
Chapter 17 Programming Tools 17-22
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 17-23
Linking
Object file
Object Executable
file or object Linker
file
module
C library
Chapter 17 Programming Tools 17-24
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 17-25
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 17-26
Loader
Loads binary files that have been linked
into main memory
Program is ready for execution
Chapter 17 Programming Tools 17-27
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 17-28
Interpreter vs. Compiler
Resources during execution Interpreter Compiler
Contents in memory
Interpreter/compiler Yes No
Source code Partial No
Executable code Yes Yes
CPU cycles
Translation operations Yes No
Library linking Yes No
Application program Yes Yes
Chapter 17 Programming Tools 17-29
Debuggers
Assembly language debuggers
Source code debuggers
Step through programs
Check variable values
Chapter 17 Programming Tools 17-30
Related docs
Get documents about "