69
1 Java Software Solutions Chapter 1 Computer Systems

Java Software Solutions

Embed Size (px)

DESCRIPTION

Java Software Solutions. Chapter 1 Computer Systems. 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 - PowerPoint PPT Presentation

Citation preview

Page 1: Java Software Solutions

1

Java Software Solutions

Chapter 1

Computer Systems

Page 2: Java Software Solutions

2

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

Page 3: Java Software Solutions

3

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.

Page 4: Java Software Solutions

4

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 high-

quality application programs.

Page 5: Java Software Solutions

5

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.

Page 6: Java Software Solutions

6

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…

Page 7: Java Software Solutions

7

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.

Page 8: Java Software Solutions

8

An Analog Signal versus a Digital Signal

analog digital

Page 9: Java Software Solutions

9

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.

Page 10: Java Software Solutions

10

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.

Page 11: Java Software Solutions

11

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.

Page 12: Java Software Solutions

12

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.

Page 13: Java Software Solutions

13

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.

Page 14: Java Software Solutions

14

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.

Page 15: Java Software Solutions

15

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.

Page 16: Java Software Solutions

16

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.

Page 17: Java Software Solutions

17

Two Other Common Termsfor 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.

Page 18: Java Software Solutions

18

Other Memory Devices

Additional memory devices include CD-ROM, CD-Recordable (CD-R) drives, CD Rewritable (CD-RW) 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.

Page 19: Java Software Solutions

19

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.

Page 20: Java Software Solutions

20

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.

Page 21: Java Software Solutions

21

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.

Page 22: Java Software Solutions

22

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 …

Page 23: Java Software Solutions

23

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.

Page 24: Java Software Solutions

24

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.

Page 25: Java Software Solutions

25

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.

Page 26: Java Software Solutions

26

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

Page 27: Java Software Solutions

27

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

Page 28: Java Software Solutions

28

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.

Page 29: Java Software Solutions

29

Problem Solving

The purpose of writing a program is to solve a problem. Problem solving consists of multiple steps:

1. Understanding the problem.

2. Breaking the problem into manageable pieces.

3. Designing a solution.

4. Considering alternatives to solution and refining solution.

5. Implementing the solution.

6. Testing the solution and fixing any problems that exist.

Page 30: Java Software Solutions

30

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!

Page 31: Java Software Solutions

31

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.

Page 32: Java Software Solutions

32

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.

Page 33: Java Software Solutions

33

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

Page 34: Java Software Solutions

34

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.

Page 35: Java Software Solutions

35

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).

Page 36: Java Software Solutions

36

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.

Page 37: Java Software Solutions

37

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.”); }}

Page 38: Java Software Solutions

38

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.

The use of String and args will be explained later.

Page 39: Java Software Solutions

39

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.

Page 40: Java Software Solutions

40

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 */

Page 41: Java Software Solutions

41

External Documentationjavadoc

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. */

Page 42: Java Software Solutions

42

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.

Page 43: Java Software Solutions

43

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.

Page 44: Java Software Solutions

44

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."); }}

Page 45: Java Software Solutions

45

Reserved Words

The Java reserved words – these words cannot be used for any other purpose, such as naming a class or method.

abstractbooleanbreakbytecasecatchcharclassconstcontinuedefaultdodouble

elseextendsfalsefinalfinallyfloatforgotoifimplementsimportinstanceofint

interfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticstrictfp

superswitchsynchronizedthisthrowthrowstransienttruetryvoidvolatilewhile

Page 46: Java Software Solutions

46

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.

Page 47: Java Software Solutions

47

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

Page 48: Java Software Solutions

48

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.)

Page 49: Java Software Solutions

49

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.

Page 50: Java Software Solutions

50

Programming Languages

Programming languages are often categorized into the following four classifications:

1. Machine Languages2. Assembly Languages3. High-Level Languages4. Fourth-Generation Languages

In order for a program to run on a computer, it must ultimately be expressed in that computer’s machine language.

Page 51: Java Software Solutions

51

From Machine Languageto 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

Page 52: Java Software Solutions

52

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#

Page 53: Java Software Solutions

53

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…

Page 54: Java Software Solutions

54

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.

Page 55: Java Software Solutions

55

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.

Edit and

Save Program

Translate Program

into Executable Form

Execute Program

and Evaluate Results

errorserrors

Compilation Execution In a file using an editor

Page 56: Java Software Solutions

56

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.

Page 57: Java Software Solutions

57

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.

Page 58: Java Software Solutions

58

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.

Page 59: Java Software Solutions

59

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.

Page 60: Java Software Solutions

60

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.

Page 61: Java Software Solutions

61

Compiling and Executing Programson 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.javaYou 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…

Page 62: Java Software Solutions

62

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.)

Page 63: Java Software Solutions

63

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.’

Page 64: Java Software Solutions

64

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.

Page 65: Java Software Solutions

65

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.

Page 66: Java Software Solutions

66

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.

Page 67: Java Software Solutions

67

Errors

You will encounter three kinds of errors as you develop programs:

1. Compile-time errors

2. Runtime errors

3. Logical errors

Page 68: Java Software Solutions

68

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.

Page 69: Java Software Solutions

69

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.