Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
Java Software Solutions
Chapter 1
Computer Systems
1
Basic Computer Processing
A computer system is made up of hardware
and software.
Hardware: Chips, keyboards, disks, etc.
Software: Programs and the data those
programs use.
Key Components of a Computer System
central processing unit (CPU)
input/output (I/O) devices
main memory
secondary memory devices
2
Memory
Programs and data are held in storage devices called
memory, which fall into two categories:
Main Memory
The storage device (e.g., chips on the mother board)
that holds the programs and their data (software) while
the programs are executing.
Secondary Memory
Devices such as hard disks that store software in a
relatively permanent manner.
We save our software on secondary memory.
Copies of the software are brought into main
memory when we execute our programs.
3
Software Categories
We will be concerned with two categories of software.
The operating system.
Provides a user interface that allows us to interact with
the machine (enter input and view output).
Manages computer resources such as the CPU and
main memory.
Application Software
Generic term for just about any software other than
the operating system.
Word processors, web browsers, games, business
applications, etc.
The focus of this course is development of highquality application programs.
4
What This Means to Us
We will be learning to create application programs
using the Java programming language.
Initially, the hardware we will use is a computer named
Osprey that is located on campus, but can be
accessed from home.
Our software will be the Linux operating system,
one of two text editors (vi or Pico), the Java
compiler (javac), and the Java interpreter (java).
Other software such as communications software, etc.
will be used, but will not require much interaction on
our part.
5
More: What this means to us
Somewhere around mid-semester, we will
switch our supporting platform to a window’s
based platform using the ‘med – editor’
Will need to download and configure this…
Will need to download and configure the Java
2 Standard Edition (J2SE) and Development
Kit JDK 5.0 () from Sun Microsystems.
We will discuss these later, although you may
wish to download and configure early…
6
Analog versus Digital Signals
Analog information and/or signals are continuous,
varying in direct proportion to the source of the
information – like the amplitude of a wave may vary
with volume. It’s period may vary with frequency…
Digital technology breaks information into discrete
pieces and represents the pieces as numbers.
Music on a CD is stored digitally, as a series of
numbers. The music is sampled about 40,000 times
per second and each number represents the voltage
level of one specific instance of the recording.
7
An Analog Signal
versus a Digital Signal
analog
digital
8
Binary Numbers
A digital computer stores information as
numbers, but those numbers are not stored
as decimal numbers.
All information in a computer is stored and
managed as binary values.
The binary number system has only two digits,
0 and 1.
A single binary digit is called a bit.
9
Converting Binary Numbers
to Decimal Numbers
Starting with the rightmost bit in a binary number,
each position represents a power of 2, with the
rightmost bit position representing 20 which is decimal
1, the next bit position representing 21 which is 2 and
the next representing 22 which is 4, etc.
Binary 1011 is 1* 23 or 8 + 0 * 22 or 0 + 1 * 21 or 2 +
1 * 20 or 1 which adds up to 11 decimal (base 10).
Binary 11001001 is 201 decimal.
CAN YOU DO THIS????
In general, n bits can represent 2n unique items.
Computers typically manipulate sequences of 8 bits
with each sequence of 8 bits referred to as a byte.
10
Hardware Components
We use the term computer architecture to describe how
the hardware components of a computer are put together.
A program and its data reside in main memory while the
program runs.
The Central Processing Units (CPU) reads one program
instruction from main memory and executes it.
(Called ‘fetch – execute’ cycle)
If an instruction needs data, such as the amount in a
bank account, the CPU will acquire that information from
central memory (which may require the access of data in
secondary memory to be brought into memory first).
The process repeats until the program ends.
11
Peripherals
Almost all devices in a computer other than
the CPU and main memory are called
peripherals.
Controllers are devices that coordinate the
activities of specific peripherals.
A unit with several disks attached will have a disk
controller for timing, contention, data access, …
Input/Output (I/O) devices and secondary
memory devices are considered peripherals.
12
Input/Output Devices
For our purposes, the primary I/O devices will be the
keyboard and the monitor.
Output on a monitor is achieved by breaking the
screen picture into small pieces called picture
elements (pixels).
The pixels are represented in the computer as
numbers (as is everything else) and each pixel has a
specific ‘screen address.’
A typical monitor can display a number of ‘screen
resolutions’ such as 640x480, 800x720, 1280 x 1024
and others…
These numbers represent the number of pixels used
to display the screen information.
13
Main Memory and Secondary
Memory
Main memory is made up of a series of consecutive
memory locations called addresses.
Associated with each memory location is a unique
address.
On many computers, each memory location consists of
8 bits, or one byte of information.
The storage capacity of a device such as main
memory is the total number of bytes it can hold.
A kilobyte (KB) is 1,024 bytes or 210 bytes.
Larger units are a megabyte (MB), a gigabyte (GB),
and a terabyte (TB).
It is usually easier to think about these capacities by
rounding them off.
14
Characteristics of Main Memory
When data is stored in a main memory
location, it overwrites (thus destroying) any
information that was previously stored there.
Main memory is usually volatile.
The information stored in it will be lost if its
electrical power is turned off. (meaning of
volatile in this context)
You should frequently save your work onto a
secondary memory device (such as a disk) in
case the power goes off.
15
Secondary Memory Devices
A disk is a direct access (also referred to as random access)
device since the read/write head can move very quickly to the
information needed.
Yet a disk is an electro-mechanical device and has moving parts.
So, disk accesses are carefully designed so as to minimize the
arm movements of the disk and thus reduce disk access times…
Disk is both a direct access device and can be accessed
sequentially just like a tape unit.
A tape must be sequentially processed / rewound / or fast-
forwarded to get to the desired information.
A tape is thus a considered a sequential access device.
While tapes used to be the medium of choice when disks were
expensive and access was controlled to those types of
applications really needing disks, tapes now are almost
exclusively used for backup storage.
Very inexpensive and can store huge quantities of data – often
archival.
16
Two Other Common Terms
for Memory Devices
Random Access Memory (RAM)
The terms RAM and main memory are basically
interchangeable.
RAM should probably be called read-write memory
since data can be both written to it and read from it.
Read-Only Memory (ROM)
After information is stored on ROM, it cannot be altered
(easily). Data in ROM is ‘burned’ into the chips
Can sometimes be reprogrammed (PROMs) and
sometimes we have Erasable Programmable Read
Only Memories (EPROMs) (Need special equipment)
ROM chips are often embedded into the main circuit
board to provide the preliminary instructions when the
computer is initially turned on.
17
Other Memory Devices
Additional memory devices include CD-ROM, CD-
Recordable (CD-R) drives, CD Rewritable (CDRW) discs, and DVD devices.
(Know the differences)
The speed of a CD drive is expressed in multiples
of x, which represents a data transfer speed of
153,600 bytes per second.
Due to improvements in technology, storage
capacity approximately doubles every 18 months.
18
Networks
A network is two or more computers
connected together so they can exchange
information.
Each computer of a network has its own
network address.
One technique to improve network speed is to
divide large messages into segments, called
packets.
Packets have fixed formats and other
constraints…
Then send the individual packets across the
network intermixed with pieces of other
messages sent by other users.
19
Local Area Networks and
Wide Area Networks
A local-area network (LAN) is designed to
span short distances and connect a relatively
small number of computers.
Within a building or small area
A wide-area network (WAN) connects two or
more LANs, often across long distances.
LANs connected by a WAN are often owned
by different companies or organizations, and
might even be located in different countries.
Generally, one computer takes care of
communications.
20
The Internet
The Internet is a network of networks.
Grew out of U.S Governmentt ARPA (and ARPAnet)
In 2000, number of computers connected to Internet = 10
million.
A protocol is a set of rules that governs how two things
communicate.
The software that controls the movement of messages
across the Internet must conform to a set of protocols called
TCP/IP for Transmission Control Protocol/Internet
Protocol.
IP defines how information is formatted and transferred
TCP software handles the transmission and reconstituting
of messages, error control, etc. (contention, …)
Every computer connected to the Internet has an IP address
that uniquely identifies it among all other computers on the
Internet.
21
IP Address vs Internet Address
An IP address is of the form 204.192.116.2.
Fortunately, Internet allows each computer to be given a
unique name - often referred to as its Internet Address.
The first part of an Internet Address is the local name of a
specific computer.
The rest of the name is the domain name.
Ours is: osprey.unf.edu.
Osprey is local name
unf.edu is the domain name.
Can have ‘subdomains’ within domain for departments, etc.
Last part of domain name is the ‘top level domain name’.
Some are: .edu .com, .org, .mil …
22
The Domain Name System
The Internet uses another software program,
the Domain Name System (DNS) to translate
an Internet Name to its corresponding IP
Address.
Each organization connected to the Internet
operates a domain server that maintains a list
of all its computers and their IP addresses.
If the local domain server does not have the IP
address for a name, it contacts another domain
server that does.
23
The World Wide Web
The World Wide Web (also known as WWW or the
Web) makes the exchange of information easy.
Web software provides a common interface through
which many different types of information can be
accessed with a mouse click.
Web: based on concepts of hypertext & hypermedia.
Hypertext – based on links to support jumping as needed.
To manage large amounts of information. Basically
used to originally link ‘documents.’
Hypermedia incorporates graphics, sound, animations,
and video.
24
Hypertext and Browsers
Web Server: computer dedicated to providing
access to Web documents.
Browsers load / interpret documents provided
by a Web server.
Many documents are formatted using the
HyperText Markup Language (HTML).
Links to Java programs can be embedded in
html documents and executed through Web
browsers.
25
Uniform Resource Locators
Information on the Web is found by identifying a
Uniform Resource Locator (URL)
A URL uniquely specifies documents and other
information for a browser to obtain and display.
An example URL is http://www.unf.edu
URL:
First piece of URL is a protocol (HyperText Transfer
Protocol – HTTP in this example) which determines
the way the browser should communicate.
The second piece is the Internet address of the
machine on which the document is stored.
A typical third piece of information is the file name of
the file you wish to view.
Default third piece: index.html
26
Another Sample URL
http://www.unf.edu/campus
In this URL, the protocol is http (HyperText Transfer Protocol).
Machine referenced is www (web server found at unf.edu)
Information is stored in a file named campus.
The Internet vs the World Wide Web
The Internet makes it possible to communicate via
computers around the world.
Internet IS a network; Communications…
The Web makes that communication a straightforward
and enjoyable activity via software.
The Web can be used on a LAN or even a single machine that is not
connected to any network.
Information service based on a set of software applications
27
Programming
The rest of this course explores the process
of creating programs using Java.
All of the software we have discussed
including the Internet and Web protocols are
programs that some programmer has written.
Next section discusses the purpose of
programming in general and introduces the
Java Programming Language.
28
Problem Solving
The purpose of writing a program is to solve a
problem. Problem solving consists of multiple steps:
1.
2.
3.
4.
5.
6.
Understanding the problem.
Breaking the problem into manageable pieces.
Designing a solution.
Considering alternatives to solution and refining solution.
Implementing the solution.
Testing the solution and fixing any problems that exist.
29
How do these Steps Apply to You?
By the time you complete a degree in Computer and
Information Sciences you will have experienced all of
these problem solving steps and practiced them
often.
Here, emphasis is on learning programming and
much of the other work is done for you.
But be aware: the most common mistake is
1. Not fully studying and understanding the problem;
2. Designing a solution.
In learning how to program, we MUST understand
where actual programming ‘fits’ in solving a problem!
30
The Java Programming Language
A programming language defines a set of rules:
That determine exactly how a programmer can
combine words and symbols of the language into
programming statements.
Programming statements are the instructions that are
carried out when the program is executed.
Java is an object-oriented programming language.
Java is one of the fastest growing programming
technologies of all time.
31
Reasons Why Java is Popular
Java is the first programming language to deliberately
embrace the concept of writing programs that can be
executed on the Web.
Moreso, Java is a useful general purpose programming
language.
The Java language is accompanied by a library of extra
software that we can use when developing programs.
The library provides the ability to create graphics,
communicate over networks, and interact with
databases.
The set of supporting libraries is huge and versatile.
32
A Java Program
See Lincoln.java on page 30.
/* Lewis/Loftus
6/11/2003
Lincoln.java demonstrates the basic structure of a Java Application.
*/
public class Lincoln
{ // starts the class definition These are ‘single line’ comments
// Prints a presidential quote.
public static void main (String[] args) // this is a method name
{
System.out.println (“A quote by Abraham Lincoln:“);
// invokes another method
System.out.println (“Whatever you are, be a good one.”);
// invokes another method
}
} // ends the class definition
33
What to Notice in Lincoln.java
The first few lines between /* and */ are
comments.
Comments don’t affect what the program
does but are included to make the program
easier to understand.
Comments included in a program are called
inline documentation.
The comment symbols /* and */ can surround
a multiline comment.
The comment symbol // can be used at the
beginning of a single-line comment.
34
What to Notice (2)
The rest of the Lincoln.java program is a
class name and a class definition.
This class name is Lincoln.
The class definition runs from the first
opening brace { to the final closing brace }.
Inside the class definition is a single-line
comment describing the purpose of the main()
method.
A method is a group of programming
statements that are given a name (main).
35
The println() Method
The two lines of code in the main() method invoke another
method called println() (pronounced print line).
Our program must invoke, or call, a method at the point
where we want the method to execute.
The println() method prints the specified characters
The characters to be printed are represented as a
character string, enclosed in double quote characters
(“The string you want to print. “).
The code for the println() method definition is in a library
in the object System.out.
We just need to call the println() method and pass it the
String you want to display.
36
Another Look at Lincoln.java
See Lincoln.java on page 30.
/* Lewis/Loftus
6/11/2003
Lincoln.java demonstrates the basic structure of a Java Application.
*/
public class Lincoln // The class name is the same as the file name, but
{
// without the .java extension.
// Prints a presidential quote.
public static void main (String[] args) // This line is the method ‘header’
{ // The method body starts with the left bracket.
// The println() method is found in the System class in a Java library
System.out.println(“A quote by Abraham Lincoln:“);
System.out.println(“Whatever you a re, be good one.”);
}
}
37
The Method Named main()
All java applications have a method named main.
This is where processing begins for every program.
The main method definition in Java is always preceded
by the words public, static, and void. (later)
Each programming statement in the main method is
executed, one at a time in order, until the end of the
method is reached.
Some statements in main method may call (invoke)
another method. If so, that method executes and
control then returns to the next statement in main.
After the last statement in main executes, the
program terminates.
38
The use of String and args will be explained later.
Comments
Comments are notes in the text of a program
to assist that/any programmer who must later
modify or simply understand the code.
The original programmer often will not
remember later the details of the program he
or she has written.
Comments within the text of a program are
referred to as internal documentation.
Good internal and external documentation
are essential.
39
Two Types of Comments
A single-line comment in Java takes the form:
// This is a comment.
A multi-line comment takes the form:
/*
This is one comment
that spans several lines.
*/
It is also permissible to use the above notation
for a single-line comment.
/* This is a comment */
40
External Documentation
javadoc
The Java SDK (Software Development Kit) also
specifies a means of creating external
documentation using a software tool called
javadoc . (See Appendix I). Here is how it works:
If you place a second asterisk following the /* at the
beginning of a comment, the content of the
comment can be used to automatically generate
external documentation about your program using a
tool called javadoc .
Example: /** javadoc will print this comment
for use as external documentation.
*/
41
Good Programming Practices
Appendix F of our text presents guidelines for good
programming practices and includes specific
techniques for documenting programs.
You can assume the reader is computer literate and
familiar with Java.
However, you must assume the reader knows almost
nothing about what the program is supposed to do.
A section of code that seems intuitive to you when you
write it might not seem so to another reader or to
yourself later.
You will be expected to apply the coding guidelines in
Appendix F (starts on page 687) as you write your
programs.
42
Identifiers and Reserved Words
The words used when writing programs are called
identifiers.
There are three categories of identifiers:
1. Words that we make up (Lincoln and args in
program 1.1)
2. Words that another programmer chose (String,
System, out, println, and main).
Often these are words that were chosen by a programmer
for code that became part of a Java library;
Now available for use by all Java programmers.
3.
Words that are reserved for special purposes in
the language (class, public, static, and void).
The designers of the Java language chose these words.
43
The Reserved Words
Reserved words are identifiers that have special meaning in a programming
language.
In the Lincoln program, they are class, public, static, and void.
//********************************************************************
// Lincoln.java
Author: Lewis/Loftus
//
// Demonstrates the basic structure of a Java application.
//********************************************************************
public class Lincoln
{
//----------------------------------------------------------------// Prints a presidential quote.
//----------------------------------------------------------------public static void main (String[] args)
{
System.out.println ("A quote by Abraham Lincoln:");
System.out.println ("Whatever you are, be a good one.");
}
}
44
Reserved Words
The Java reserved words – these words cannot be used for
any other purpose, such as naming a class or method.
abstract
boolean
break
byte
case
catch
char
class
const
continue
default
do
double
else
extends
false
final
finally
float
for
goto
if
implements
import
instanceof
int
interface
long
native
new
null
package
private
protected
public
return
short
static
strictfp
super
switch
synchronized
this
throw
throws
transient
true
try
void
volatile
while
45
Rules for Naming Identifiers
An identifier (created by us) can be
composed letters, digits, the underscore
character ( _ ), and the dollar sign ($), but it
cannot begin with a digit.
Java is case sensitive, which means that two
identifier names that differ only in the case of
their letters are considered to be different
identifiers.
Total, Total, ToTaL, and TOTAL are all different
identifiers.
46
Conventions for Naming Identifiers
Use a consistent case format:
Title case (uppercase for the first letter of each word) is
conventional for class names.
Example: class GraduateStudent (no space)
Lowercase is used for the first letter of method names
and variable (identifier) names. However, the first letter
of each additional word that is part of the identifier is
capitalized.
Example: payRate
Appendix F presents guidelines for naming identifiers.
Your programs must follow those guidelines
47
Choosing Identifier Names
Identifier names should be descriptive but not
verbose.
Avoid meaningless names such as a or x.
Unless the name is actually descriptive, such as
using x and y to represent (x, y) coordinates.
Avoid using unnecessarily long names.
A “name” in Java is a series of identifiers
separate by the dot (period) character.
The name System.out is the ‘name’ of an object
through which we invoke the println method.
(println is a method inside the object.)
48
White Space
White space consists of blanks, tabs, and newline
characters.
White space is used to separate the words and
symbols used in Java programs.
A programmer can use white space to emphasize parts
of the program and to make the program easier to
read.
Except when it’s used to separate words, the
computer ignores white space.
Allows programmers flexibility in formatting a program.
Discuss
The guidelines in Appendix F discuss the appropriate
use of white space.
49
Programming Languages
Programming languages are often
categorized into the following four
classifications:
1.
2.
3.
4.
Machine Languages
Assembly Languages
High-Level Languages
Fourth-Generation Languages
In order for a program to run on a computer,
it must ultimately be expressed in that
computer’s machine language.
50
From Machine Language
to Assembly Language
Each machine language instruction can accomplish only one
simple task.
For example, copy a value into a register or compare two
values or add two numbers together….
Machine language code is expressed as a series of binary
digits and is extremely difficult for humans to read and write.
Enter: Assembly Language
These are symbolic versions of machine language
statements using mnemonics, short English-like words that
represent commands or data.
E.g. Instead of:
01011010100000000101000000000100 (32 bits)
5A805004 in hex may be rewritten in Assembler language as
A 8,4(5,0)
or, A 8,X
51
From Low-level Languages
to High-level Languages
Both assembly language and machine language
are considered low-level languages.
Generally, each assembly language instruction
corresponds to an equivalent machine language
instruction.
Today most programmers use a high-level language
to write software.
A high-level language is expressed in English-like
phrases, approaching natural language.
A single high-level language programming statement
can accomplish the equivalent of many – perhaps
hundreds – of machine language instructions.
Examples: Java, C, C++, COBOL, Pascal, C#
52
Fourth-Generation Languages
Some programming languages operate at an
even higher level.
They might include automatic report generation
or interaction with a database.
These languages are called fourth-generation
languages, or simply 4GLs, because they
followed first three generations of computer
programming: machine, assembly, and HLL.
Examples: RPG, SQL, Forth, etc…
53
Compilers and Interpreters
Initially, you will use an editor as you type a program into a
computer and store it in a file.
The editor you will use will be either vi or pico.
To create/alter the code in your program, you “open” the
program in an editor.
e.g.
$ pico MyProgram.java
After editing and saving your program, you attempt to translate
it from this high-level code Java code (source language
statements) into a form that can be executed, that is
ultimately into machine language.
The translation (we call it ‘compilation’) may result in errors, in
which case you return to the editor to make changes to the
code to fix the problem and then try again.
These errors are called ‘syntax’ errors and they normally
represent errors in the usage of the language itself, such as not
ending a statement in a semicolon or similar rules.
54
Editing and Running Your Program
Once the translation occurs successfully, you
can execute the program and evaluate the
results.
If your results are not what you want (or if you
want to enhance your existing program), you
again return to the editor to make changes.
errors
Edit and
Save Program
In a file using an editor
Translate Program
into Executable Form
Compilation
errors
Execute Program
and Evaluate Results
Execution
55
Translation of Source Code
The translation of source code into
(ultimately) machine language for subsequent
execution on a particular type of CPU can
occur in a variety of ways.
By using a compiler.
By using an interpreter.
By using both a compiler and interpreter
This is how Java does it.
56
A Compiler
A compiler is a program that translates code from one language to
an equivalent code in another language. (either to assembler
language or to ultimate machine language, which can be executed)
The original code is called source-code.
The language into which it is translated is called the target
language.
For many traditional compilers, the source code is translated
directly into a particular machine language.
In that case, the translation process occurs once and
the resulting executable program can be run
whenever needed.
In other cases, assembler code is produced and the assembler
is called to translate this lower level language code into machine
language.
57
An Interpreter
An interpreter is similar to a compiler but has
important differences…
An interpreter interleaves the translation and execution
activities.
A small part of the source code, such as one
statement, is translated and executed.
Then another part is translated and executed, and so
on.
This eliminates the need for a separate compilation
phase; however, the program runs more slowly
because the translation process occurs during each
execution.
Each statement is translated, then executed
immediately, rather than translating the entire program
and then executing the translated code.
58
Java Uses Both a
Compiler and Interpreter
The Java compiler translates Java source
code into Java ‘bytecode.’
Bytecode is a representation of the program
in a low-level code similar to machine
language code.
The Java interpreter then reads a short
segment of Java bytecode, translates that
segment into machine language and
executes it. This process is repeated as the
program executes.
59
The Advantage of Java Bytecode
The difference between Java bytecode and true
machine language code is that Java bytecode is not
tied to any particular processor type. Machine
Independent!
Most compilers generate machine code (or
assembler code) that can only be executed on a
particular machine / machine series….
This makes Java “architecture neutral” Thus this
feature makes Java easily portable from one machine
to another.
All you need is a Java interpreter or bytecode
compiler for each processor type on which the
bytecode is to be executed.
60
Compiling and Executing Programs
on Osprey
Assume you want to write the Lincoln.java program and execute it on
Osprey.
At the Linux $ prompt you will create your source code by
entering either:
$
pico Lincoln.java or (pico is MUCH simpler than vi)
$
vi Lincoln.java
You will get a blank screen. Enter your program being careful to follow
the rules of the language….Then ‘save’ your code…(a control-x is
issued to save the file…)
Once you have saved your source code, you compile your
source code by entering at the $ prompt:
javac
$
Lincoln.java
<enter>
Correct any errors the compiler finds.
When you have a successful compile, you will translate your
bytecode (execute your program) by entering at the $ prompt:
(the compiler will have created a .class file – an object file)
$
java Lincoln <enter> - causes execution (that
is, ‘interprets’) the bytecode file produced by the
compiler – but more later…
61
The Java Software Development Kit
(JDK)
The Java compiler and interpreter are part of
the Java Software Development Kit (SDK).
The JDK can be downloaded for free from the
Sun Microsystem Web site ( java.sun.com ) or
from our text’s website or from the CD that
came with your text..
Note: the standard JDK tools are executed on
the command line and do not include an
editor. (Command line = $ ……….)
Any editor that can save a document as a simple
text file can be used. (pico and vi are examples.)
62
Integrated Development
Environments (IDEs)
IDEs combine an editor, compiler, and other
(Java) support tools into a single program.
There are many IDEs including Borland’s
JBuilder and IBM’s Eclipse, JGrasp
(developed by Auburn), and many more…
Later in this course, we will use one of these
IDEs, a ‘free’ editor that is easy to use (once
configured) and ‘does the job.’
63
More on: Syntax and Semantics
Each programming language has its own unique
syntax.
The syntax are the rules of a language that dictate
exactly how the vocabulary elements of the
language can be combined to form statements.
(Just like grammar rules in English.)
During compilation, all syntax rules are checked.
If a program is not syntactically correct, the compiler
gives error messages and won’t produce the bytecode
file (that is, the .class file).
Syntax errors must be eliminated before the bytecodes
are produced that allows us to try to ‘execute’ the
program.
64
Java Syntax
Java has a similar syntax to C and C++.
However, beyond the basic syntax issues,
there are many important differences between
Java and these languages.
65
Semantics (meaning)
The semantics of a statement in a
programming language define what will happen
when that statement is executed.
Programming languages are generally
unambiguous, which means that there is one
and only one interpretation for each statement.
The same exact English sentence can have
multiple valid meanings.
A computer language cannot allow such
ambiguities to exist.
66
Errors
You will encounter three kinds of errors as
you develop programs:
1.
2.
3.
Compile-time errors
Runtime errors
Logical errors
67
Compile-time and Run-time Errors
An error identified by the compiler is called a
compile-time error. (These are syntax errors)
If a compile-time error occurs, an executable version of
the program is not created.
Use your editor to correct the error, then recompile
your program.
A runtime error causes the program to terminate
abnormally during execution.
An example is an attempt to divide by zero.
In Java, many runtime errors are represented as
exceptions that can be caught and dealt with on the
chapter dealing with Exceptions.
68
Logical Errors
When your program has a logical error, it will
compile and execute, but produces incorrect
results. (These are runtime errors too!)
A logical error occurs when a value is
calculated incorrectly.
A programmer must test the program
thoroughly, comparing the expected results to
those that actually occur.
The process of finding and correcting defects in a
program is called debugging.
69