Title: CIS 212 Microcomputer Architecture Day 22
1CIS 212MicrocomputerArchitectureDay 22
Rhys Eric Rosholt
Gillet Hall - Room 304 718-960-8663 http//comet.l
ehman.cuny.edu/rosholt/ rhys.rosholt _at_
lehman.cuny.edu
Office Office Phone Web Site Email Address
2Reminder
Final ExaminationWednesday, December 16,
2009Gillet Hall Room 2251100 am to 100 pm28
Days from Today!Comprehensive / Open Book
3Chapter 10Application Development
4Chapter 10Application Development
- Chapter Outline
- The Application Development Process
- Programming Languages
- Compilation
- Link Editing
- Interpreters
- Focus - Java
- Symbolic Debugging
- Integrated Application Development Tools
- Focus Oracle JDeveloper
- Focus - Building the Next Generation of
Application Software
5Programming Languages
- Instruct computer to perform a task
- Sometimes called code
- Programmer goals
- Make language easier for people to understand
- Develop languages and development approaches that
require people to write fewer instructions to
accomplish a task
6Programming Language Evolution
7Programming Languages
- Summary of capabilities of recent generations
- Instruction explosion
- Database access
- Support for GUIs
- Nonprocedural programming
- All but 1GL must be translated into CPU
instructions prior to execution - compilers
- interpreters
- hybrid translation systems
8Programming Language Characteristics
9First-Generation Languages
- Required programmers to remember binary codes
that represented each CPU instruction and to
specify all operands as binary numbers - Tedious to program error-prone
10Second-Generation Languages
- Use mnemonics to represent variables (program
instruction memory address) and labels (data item
memory address) - Easier to manipulate than binary numbers
assembler translates program into binary CPU
instructions - Common in 1950s
11Third-Generation Languages
- Use mnemonics to represent instructions,
variables, and labels - Have degree of instruction explosion greater than
11 - Translated with compilers, link editors, and
interpreters - Machine independent
- Developed before GUIs, database managers, and
Internet
12Fourth-Generation Languages
- Majority were proprietary
- many were optional components of database
management systems - Most support mixture of procedural and
nonprocedural instructions
13Equivalent Programs in SQL and C
14Fifth-Generation Languages
- Nonprocedural language suitable for developing
software that mimics human intelligence - Rule processor accepts a starting state as input
and iteratively applies rules to achieve a
solution - First appeared in 1960s not widely used until
1980s
15Object-Oriented Programming (OOP) Languages
- View data and programs as two parts of integrated
whole (object) - Promote reusability and portability of source
code - Uniquely suited to developing real-time programs
- Not clear successors to 5GLs neither
nonprocedural nor exclusively used for developing
artificial intelligence
16OOP Languages
Objects reside in a specific location, wait for
messages to arrive, and return a response.
17Scripting Languages
- Enable programmers to develop applications that
do most of their work by calling other
applications and system software - Enable rapid assembly of application software by
gluing together capabilities of other programs - Evolved from 4GLs, though most now incorporate
OOP concepts
18Programming Language Standards
- Set by ANSI and ISO
- Include definitions of
- Language syntax and grammar
- Machine behavior for each instruction or
statement - Test programs with expected warnings, errors, and
execution behavior - Guarantee program portability among operating
systems and application programs
19Compilation
- Translates an entire source code file, building a
symbol table and object code file as output
20Program Development
21Compiler
- Checks for syntax and other errors issues
warning or error messages - Updates internal tables that store information
about data items and program components - Generates CPU instructions or library calls to
carry out the source code instruction
22Source Code Instruction Types
- Data declarations
- Data operations
- Control structures
- Function, procedure, or subroutine calls
23Data Declarations
- Define name and data type of program variables
- Stored in memory allocated by compiler
24Symbol Table
The compiler updates a symbol table to keep track
of data names, types, and assigned memory
addresses.
25Data Operations
- Instructions that update or compute a data value
- Translated by compiler into equivalent sequence
of data movement and data transformation
instructions for target CPU - Compiler refers to entries in symbol table to
determine source and destination memory addresses
for data movement instructions
26Control Structures
- Source code instructions that control the
execution of other source code instructions - Common thread is transfer of control among CPU
instructions
27Function Calls
- Named instruction sequences executed by call
instructions - Transfer control to the instruction following the
call by executing a return instruction
28Implementing Call and Return Instructions
- Compiler generates CPU instructions to
- Pass input parameters to the function
- Transfer control to the function
- Execute CPU instructions within the function
- Pass output parameters back to the calling module
- Transfer control back to the calling module at
the statement immediately following the function
call statement
29Symbol Table
30CompilationJust The First Step
- source code
- translated by compiler into
- object code
- linked with library routines to make
- load module
- loaded into memory by operating system as
- runnable machine instructions
31Compiler
- 1. Checks for errors
- 2. Issues warnings and/or error messages
- 3. Builds and uses a Symbol Table as it works
- stores information about data items and program
components - 4. Generates CPU instructions and library calls
to carry out the source code instructions - 5. Creates an object code file as output
32Source Code Instruction Types
- Data declarations
- A data declaration creates an entry in the symbol
table - Data operations
- A data operation becomes a series of data
transformation instructions - Control structures
- A control structure becomes a series of control
flow instructions - Subprogram calls
33Symbol Table
The compiler updates a symbol table to keep track
of data names, types, and assigned memory
addresses.
34Subprogram Call and Return Operations
- Compiler generates CPU instructions to
- Pass input parameters to the function
- Transfer control to the function
- Execute CPU instructions within the function
- Pass output parameters back to the calling module
- Transfer control back to the calling module at
the statement immediately following the function
call statement
35Symbol Table
36Link Editing
- Statically links external reference calls in
object code to library functions combines them
into a single file containing executable code - Can dynamically link external calls by statically
linking them to an OS service function that loads
and executes dynamic-link library (DLL) functions
at run time - Always used by interpreters
37Key Benefits of Link Editors in Program
Translation
- A single executable program can be constructed
from multiple object code files compiled at
different times - A single compiler can generate executable
programs that run under multiple operating systems
38Linking Separately CompiledFunctions into a
Single Program
39Dynamic and Static Linking
- Static linking
- Library and other subroutines cannot be changed
once inserted into executable code - Dynamic linking
- Performed during program loading or execution
40Advantages of Dynamicand Static Linking
- Dynamic
- Smaller application program executable files
- Flexibility
- Static
- Execution speed
- Improves reliability and predictability of
executable programs
41Interpreters
- Interleave source code translation, link editing,
and execution, one source code instruction at a
time - Advantage (vs. compilation)
- Provide flexibility to incorporate new or updated
code into an application program (dynamic
linking) - Disadvantage (vs. compilation)
- Increase memory and CPU requirements during
program execution
42Memory and CPU Resources Used During Program
Execution
43Java
- Object-oriented programming language and program
execution environment - Maximizes reliability of applications and
reusability of existing code - Has a standardized target machine language for
Java interpreters and compilers - Drawback Reduced execution speed due to use of
interpreted byte codes and OS translation
44(No Transcript)
45JavaHow Java and the JVMrelate to the CPU and
the OS
46Features of Java
- Provision of compilers and virtual machines at
little or no cost - Incorporation of JVMs into Web browsers
- Increasing development of application software
that uses a Web browser as primary I/O device - Ability of Java programs to execute on any
combination of computer hardware and OS
47Symbolic Debugging
- Use of an automated tool for testing executable
programs able to - Trace calls to specific source code statements or
subroutines - Trace changes to variable contents
- Execute source code instructions one at a time
- Detect and report run-time errors to programmer
48Symbolic Debugger
- Uses symbol table, memory map, and source code
files to trace memory addresses to specific
source code statements and variables - Inserts debugging checkpoints after each source
code instruction program execution can be paused - Debugging vs. production/distribution version
- Incorporated directly in most interpreters
49Application Development Tools
50Integrated Application Development Tools
51Programmers Workbench Components
- Smart program editor
- Compiler and/or interpreter
- Link editor and large library of classes or
subroutines - Interactive tool for prototyping and designing
user interfaces - Symbolic debugger
- Integrated window-oriented GUI
52CASE Tools
- Front-end CASE tools
- Support development of requirements and design
models - Back-end CASE tools
- Generate program source code from models
53Summary
- Software development process
- Programming languages
- Compilation and link editing
- Interpretation
- Symbolic debugging
- Application development tools
54Chapter Goals
- Describe the application development process and
the role of methodologies, models, and tools - Compare and contrast programming language
generations - Explain the function and operation of program
translation software, including assemblers,
compilers, and interpreters - Describe link editing, and contrast static and
dynamic linking - Describe integrated application development
software, including programmers workbenches and
CASE tools
55Reminder
Final ExaminationWednesday, December 16,
2009Gillet Hall Room 2251100 am to 100 pm28
Days from Today!Comprehensive / Open Book
56Next ClassMondayNovember 23, 2009
Rhys Eric Rosholt
Gillet Hall - Room 304 718-960-8663 http//comet.l
ehman.cuny.edu/rosholt/ rhys.rosholt _at_
lehman.cuny.edu
Office Office Phone Web Site Email Address