CIS 212 Microcomputer Architecture Day 22 - PowerPoint PPT Presentation

1 / 56
About This Presentation
Title:

CIS 212 Microcomputer Architecture Day 22

Description:

Focus - Building the Next Generation of Application Software. Chapter 10 ... Interleave source code translation, link editing, and execution, one source code ... – PowerPoint PPT presentation

Number of Views:46
Avg rating:3.0/5.0
Slides: 57
Provided by: cometLeh
Category:

less

Transcript and Presenter's Notes

Title: CIS 212 Microcomputer Architecture Day 22


1
CIS 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
2
Reminder
Final ExaminationWednesday, December 16,
2009Gillet Hall Room 2251100 am to 100 pm28
Days from Today!Comprehensive / Open Book
3
Chapter 10Application Development
4
Chapter 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

5
Programming 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

6
Programming Language Evolution
7
Programming 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

8
Programming Language Characteristics
9
First-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

10
Second-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

11
Third-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

12
Fourth-Generation Languages
  • Majority were proprietary
  • many were optional components of database
    management systems
  • Most support mixture of procedural and
    nonprocedural instructions

13
Equivalent Programs in SQL and C
14
Fifth-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

15
Object-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

16
OOP Languages
Objects reside in a specific location, wait for
messages to arrive, and return a response.
17
Scripting 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

18
Programming 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

19
Compilation
  • Translates an entire source code file, building a
    symbol table and object code file as output

20
Program Development
21
Compiler
  • 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

22
Source Code Instruction Types
  • Data declarations
  • Data operations
  • Control structures
  • Function, procedure, or subroutine calls

23
Data Declarations
  • Define name and data type of program variables
  • Stored in memory allocated by compiler

24
Symbol Table
The compiler updates a symbol table to keep track
of data names, types, and assigned memory
addresses.
25
Data 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

26
Control Structures
  • Source code instructions that control the
    execution of other source code instructions
  • Common thread is transfer of control among CPU
    instructions

27
Function Calls
  • Named instruction sequences executed by call
    instructions
  • Transfer control to the instruction following the
    call by executing a return instruction

28
Implementing 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

29
Symbol Table
30
CompilationJust 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

31
Compiler
  • 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

32
Source 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

33
Symbol Table
The compiler updates a symbol table to keep track
of data names, types, and assigned memory
addresses.
34
Subprogram 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

35
Symbol Table
36
Link 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

37
Key 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

38
Linking Separately CompiledFunctions into a
Single Program
39
Dynamic 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

40
Advantages of Dynamicand Static Linking
  • Dynamic
  • Smaller application program executable files
  • Flexibility
  • Static
  • Execution speed
  • Improves reliability and predictability of
    executable programs

41
Interpreters
  • 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

42
Memory and CPU Resources Used During Program
Execution
43
Java
  • 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)
45
JavaHow Java and the JVMrelate to the CPU and
the OS
46
Features 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

47
Symbolic 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

48
Symbolic 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

49
Application Development Tools
50
Integrated Application Development Tools
51
Programmers 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

52
CASE Tools
  • Front-end CASE tools
  • Support development of requirements and design
    models
  • Back-end CASE tools
  • Generate program source code from models

53
Summary
  • Software development process
  • Programming languages
  • Compilation and link editing
  • Interpretation
  • Symbolic debugging
  • Application development tools

54
Chapter 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

55
Reminder
Final ExaminationWednesday, December 16,
2009Gillet Hall Room 2251100 am to 100 pm28
Days from Today!Comprehensive / Open Book
56
Next 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
Write a Comment
User Comments (0)
About PowerShow.com