Title: Chapter 8: Introduction to High-Level Language Programming
1Chapter 8 Introduction to High-Level Language
Programming
- Invitation to Computer Science,
- Java Version, Third Edition
2Objectives
- In this chapter, you will learn about
- Where do we stand?
- High-level languages
- Introduction to Java
- Virtual data storage
- Statement types
3Objectives (continued)
- Meeting expectations
- Managing complexity
- Object-oriented programming
- Graphical programming
- The big picture Software engineering
4Where Do We Stand?
- Early days of computing
- Programmers were satisfied with assembly language
- Programs mostly written by very technically
oriented people - Later decades
- Programmers demanded a more comfortable
programming environment - Programs were now also written by nontechie
people
5High-Level Languages
- High-level programming languages
- Called third-generation languages
- Created to overcome deficiencies of assembly
language - Expectations of a high-level language program
- The programmer need not manage the details of the
movement of data items within memory nor exactly
where those items are stored
6High-level Languages (continued)
- Expectations of a high-level language program
(continued) - Programmer can take a macroscopic view of tasks
primitive operations can be larger - Program will be portable
- Programming statements will be closer to standard
English and use standard mathematical notation
7Introduction to Java A Simple Java Program
- Comments
- Give information to human readers of code
- Class header
- Announces that a class is about to be defined
- Class
- A collection of methods
- Method
- A section of code that performs a service
8- Figure 8.2 A Simple Java Program
9Running a Java Program
- File containing the Java code
- Same name as the class
- File extension .java
- Example TravelPlanner.java
- Running a Java program
- Program compiled
- Example File TravelPlanner.class created
- Translation to object code completed program
linked, loaded, and executed
10Virtual Data Storage
- Identifiers
- Names in a programming language
- Keyword
- Has a special meaning in Java
- Java is a case-sensitive, free-format language
- Variable
- A named location in memory
- Must be declared before it can be used
11- Figure 8.4
- Some of the Java Primitive Data Types
12Virtual Data Storage (continued)
- An array
- Groups together a collection of memory locations,
all storing data of the same type
Figure 8.5 A 12-Element Array Hits
13Statement Types
- Input/output statements
- Input statement
- Collects a specific value from the user for a
variable within the program - Output statement
- Writes a message or the value of a program
variable to the users screen or to a file
14Statement Types (continued)
- Assignment statement
- Assigns a value to a program variable
- Control statement
- Directs the flow of control
- Can cause it to deviate from the usual sequential
flow
15Input Statements
- A prompt
- A message that tells the user what kind of input
the program wants - Console class
- Not a standard Java class written for this book
- Can be used to handle both the prompt and the
retrieval of the value in one statement
16Input Statements (continued)
- Methods
- readInt
- readDouble
- readChar
- Syntax
- variable1 Console.readInt(prompt)
- variable2 Console.readDouble(prompt)
- variable3 Console.readChar(prompt)
17Output Statements
- Output to the screen
- System.out.println(string)
- The string can be
- Empty
- System.out.println()
- Literal string
- System.out.println("Here's your answer." )
- Composed of two or more items
- System.out.println("Give me" 5)
18The Assignment Statement
- General form
- variable expression
- Expression is evaluated first the result is
written into the memory location specified on the
left
19The Assignment Statement (continued)
- Examples
- B 2
- Suppose that B is an integer variable
- A B C
- Suppose that A, B, and C are integer variables
- Letter 'm'
- Suppose that Letter is a variable of type char
20Control Statements
- Types of control mechanisms
- Sequential
- Instructions are executed in order
- Conditional
- The choice of which instructions to execute next
depends on some condition - Looping
- A group of instructions may be executed many times
21Control Statements (continued)
- Sequential is default mode of execution
- Conditional flow of control
- Evaluation of a Boolean condition (also called a
Boolean expression) - The programming statement to execute next is
based on the value of the Boolean condition (true
or false)
22Control Statements (continued)
- Conditional flow of control (continued)
- if-else statement
- if (Boolean condition)
- S1
- else
- S2
- if variation of the if-else statement
- if (Boolean condition)
- S1
23- Figure 8.10
- Conditional Flow of Control
- (If-Else)
24- Figure 8.11
- If-Else with Empty Else
25Control Statements (continued)
- Looping (iteration)
- The loop body may be executed repeatedly based on
the value of the Boolean condition - while statement
- while (Boolean condition)
- S1
26 27Meeting Expectations
- Java meets the four expectations for a high-level
programming language - Expectations
- The programmer need not manage the details of the
movement of data items within memory nor pay any
attention to where specifically they are stored
28Meeting Expectations (continued)
- Expectations (continued)
- The programmer can take a macroscopic view of
tasks, thinking at a higher level of problem
solving - Programs written in high-level languages will be
portable rather than machine-specific - Programming statements in a high-level language
- Will be closer to standard English
- Will use standard mathematical notation
29Managing Complexity Divide and Conquer
- Divide and conquer
- Divide the problem into small pieces
- In a computer program
- Divide the code into modules or subprograms, each
of which does some part of the overall task - Empower these modules to work together to solve
the original problem
30- Figure 8.20 Structure Charts
31Using Methods
- Method
- A module of code in Java
- Named using ordinary Java identifiers
- By custom, name starts with a lowercase letter
32Using Methods (continued)
- Two types of methods
- void method
- Does not pass any value back to the main method
- nonvoid method
- Returns a single new value back to the main
method - Overall form of a method invocation
- class-identifier.method-identifier(argument list)
33Writing Methods
- General form of the method header
- scope-indicator return-indicator
identifier(parameter list) - Arguments in Java are passed by value
- A variable declared within a method can be used
only within that method - Return statement
- Syntax
- return expression
34- Figure 8.27
- Some Java Terminology
35Object-Oriented Programming What Is It?
- Object-oriented programming (OOP)
- A program is a simulation of some part of the
world that is the domain of interest - Each object is an example drawn from a class of
similar objects - Key elements of OOP
- Encapsulation
- A class consists of its subtask modules and its
properties, and both components are
encapsulated with the class
36What Is It? (continued)
- Key elements of OOP (continued)
- Inheritance
- Once a class A of objects is defined, a class B
of objects can be defined as a subclass of A - Polymorphism
- One name, the name of the service to be
performed, has several meanings, depending on the
class of the object providing the service
37Java and OOP
- Java is an object-oriented programming language
- Static method
- Can be invoked by giving the class name, a dot,
the method name, and a list of arguments - Objects Instances of a class
- Instance variables Properties
- Instance methods Services
38Java and OOP (continued)
- Syntax to request an object to invoke a method
- object-identifier.method-identifier(argument
list) - Calling object
- The object that invokes a method
39What Have We Gained?
- Two major advantages of OOP
- Software reuse
- A more natural world view
40Graphical Programming Graphics Hardware
- Bitmapped display
- The screen is made up of thousands of individual
picture elements, or pixels, laid out in a
two-dimensional grid - Frame buffer
- Memory that stores the actual screen image
- Terminal hardware displays the frame buffer value
of every individual pixel on the screen
41- Figure 8.34
- Pixel Numbering System in a Bitmapped Display
42Graphics Software
- Graphics library
- Contains a collection of software routines that
control the setting and clearing of pixels - Abstract Windowing Toolkit (AWT)
- Contains routines that allow users to create
powerful interfaces - Swing components
- Even more powerful GUI components than AWT
43Graphics Software (continued)
- Graphics class
- Contains drawing commands that allow you to
- Draw geometric shapes (lines, rectangles, ovals,
polygons, and so on) - Set, change, and define colors
- Fill in or shade objects
- Create text in a range of fonts and sizes
- Produce graphs and charts
44The Big Picture Software Engineering
- Software life cycle
- The overall sequence of steps needed to complete
a large-scale software project - Implementation represents a relatively small part
of the cycle
45- Figure 8.36
- Steps in the Software Development Life Cycle
46Scaling Up
- Programs written by students
- No longer than a few hundred lines
- Real-world programs
- 2, 3, or 4 orders of magnitude larger
- Large-scale software development
- Extensive planning and design needed
- A team of programmers needed
- Software engineering
47The Software Life Cycle
- Each step in the software development life cycle
- Has a specific purpose and activities
- Should result in a written document
- The feasibility study
- Problem specification
- Program design
48The Software Life Cycle (continued)
- Algorithm selection or development, and analysis
- Coding
- Debugging
- Testing, verification, and benchmarking
- Documentation
- Maintenance
49Modern Environments
- Integrated Development Environment (IDE) speeds
program development by providing - A text editor
- A file manager
- A compiler
- A linker and loader
- Tools for debugging
50Summary
- In a high-level language, the programmer
- Need not manage storage nor movement of data
values in memory - Can use more powerful program instructions that
are more like natural language - Can write a much more portable program
- Java is an object-oriented, high-level
programming language
51Summary (continued)
- In Java, an if-else statement can be used to
create a conditional flow of control - In Java, a while loop can be used for iteration
- Software life cycle Overall sequence of steps
needed to complete a large-scale software project