0% found this document useful (0 votes)
296 views

Software Construction Lecture 1

The document discusses the key phases of developing and executing a Java program. It explains that programmers write Java source code, which is then compiled into bytecode. The bytecode is verified and loaded by the Java Virtual Machine (JVM), which then executes the program. It describes Java's portability across platforms is achieved through compiling to bytecode, rather than machine code directly.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
296 views

Software Construction Lecture 1

The document discusses the key phases of developing and executing a Java program. It explains that programmers write Java source code, which is then compiled into bytecode. The bytecode is verified and loaded by the Java Virtual Machine (JVM), which then executes the program. It describes Java's portability across platforms is achieved through compiling to bytecode, rather than machine code directly.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 30

 You’ll learn to write instructions commanding

computers to perform tasks.


 Software (i.e., the instructions you write) controls

hardware (i.e., computers).


 Java is one of today’s most popular languages for

developing software.
 Over the years, many programmers learned structured
programming.
 You’ll learn structured programming and object-

oriented programming—the key programming


methodology used by programmers today.
 You’ll create and work with many software objects.

 Their internal structure is often built using structured-


programming techniques.
 The logic of manipulating objects is occasionally
expressed with structured programming.
 Java has become the language of choice for
implementing Internet-based applications and software
for devices that communicate over a network.
 There are now billions of Java-enabled mobile phones

and handheld devices.


 Java is the preferred language for meeting many

organizations’ enterprisewide programming needs.


 Programmers write instructions in various
programming languages, some directly understandable
by computers and others requiring intermediate
translation steps.
 Three general language types:

 Machine languages
 Assembly languages
 High-level languages
 Any computer can directly understand only its own
machine language.
 This is the computer’s “natural language,” defined by its hard-
ware de-sign.
 Generally consist of strings of numbers (ultimately reduced to
1s and 0s) that instruct computers to perform their most
elementary operations one at a time.
 Machine dependent—a particular machine language can be
used on only one type of computer.
 Englishlike abbreviations that represent elementary
operations formed the basis of assembly languages.
 Translator programs called assemblers convert

assembly-language programs to machine language.


 High-level languages
 Single statements accomplish substantial tasks.
 Compilers convert high-level language programs into machine
language.
 Allow you to write instructions that look almost like everyday
English and contain commonly used mathematical notations.
 C, C++, Microsoft’s .NET languages (e.g., Visual
Basic, Visual C++ and C#) are among the most widely
used high-level programming languages; Java is by far
the most widely used.
 Compiling a high-level language program into machine
language can take a considerable amount of computer
time.
 Interpreter programs execute high-level language

programs directly, although slower than compiled


programs run.
 Java uses a clever mixture of compilation and

interpretation to run programs.


 Java evolved from C++, which evolved from C, which
evolved from B.
 C

 Originally implemented in 1972


 Evolved from B by Dennis Ritchie at Bell Laboratories
 Became widely known as the UNIX operating system’s
development language
 Today, most of the code for general-purpose operating systems
is written in C or C++.
 C++
 An extension of C
 Provides capabilities for object-oriented programming.
 Hybrid language—it’s possible to program in either a C-like
style, an object-oriented style or both.
 Microprocessors are having a profound impact in intelligent
consumer-electronic devices.
 1991
 Recognizing this, Sun Microsystems funded an internal corporate
research project, which resulted in a C++-based language named
Java
 Created by James Gosling.
 1993
 The web exploded in popularity
 Sun saw the potential of using Java to add dynamic content to web
pages.
 Java bring in the attention of the business community
because of the extraordinary interest in the web.
 Java programs consist of pieces called classes.
 Classes include methods that perform tasks and return
information when the tasks complete.
 Java class libraries
 Rich collections of existing classes
 Also known as the Java APIs (Application Programming Interfaces)
 Two aspects to learning the Java “world.”
 The Java language it-self
 The classes in the extensive Java class libraries
 Download the Java API documentation and IDE
 http://www.oracle.com/technetwork/java/index.h
tml
 Programming tips
 Software Engineering Observations—explain concepts that
affect and improve the overall architecture and quality of
software systems.
 Good Programming Practices—help you write programs that
are clearer, more understandable, more maintainable and easier
to test and debug—i.e., remove programming errors.
 Common Programming Errors—discuss problems to watch out
for and avoid.
 Programming tips (cont.):
 Performance Tips—techniques for writing programs that run
faster and use less memory
 Portability Tips—techniques to help you write programs that
can run, with little or no modification, on a variety of
computers
 Error-Prevention Tips—techniques for removing bugs from
your programs
 Look-and-Feel Observations—techniques to help you design
the “look” and “feel” of your applications’ user interfaces
 Java programs normally go through five phases
 edit
 compile
 load
 verify
 execute
 Phase 1 consists of editing a file with an editor program
(normally known simply as an editor).
 Type a Java program (source code) using the editor
 Make any necessary corrections
 Save the program
 A file name ending with the .java extension indicates that the
file contains Java source code.
 Integrated development environments (IDEs)
 Provide tools that support the software-development process,
including editors for writing and editing programs and
debuggers for locating logic errors—errors that cause
programs to execute incorrectly.
 Popular IDEs
 NetBeans (www.netbeans.org)
 JDK is required for netbeans, Download
 http://www.oracle.com/technetwork/java/javase/dow
nloads/index.html
 JBuilder
 Eclipse (www.eclipse.org)
 Phase 2
 If the program compiles, the compiler produces a .class file
called Welcome.class that contains the compiled version
of the program.
 Java compiler translates Java source code into bytecodes
that represent the tasks to execute.
 Bytecodes are executed by the Java Virtual Machine (JVM)
—a part of the JDK and the foundation of the Java platform.
 Bytecodes are platform independent
 They do not depend on a particular hardware platform.
 Bytecodes are portable
 The same bytecodes can execute on any platform containing a
JVM that understands the version of Java in which the
bytecodes were compiled.
 Phase 3
 The JVM places the program in memory to execute it
 This is known as loading.
 Class loader takes the .class files containing the program’s
bytecodes and transfers them to primary memory.
 Also loads any of the .class files provided by Java that your
program uses.
 The .class files can be loaded from a disk on your system or
over a network.
 Phase 4
 As the classes are loaded, the bytecode verifier examines their
bytecodes
 Ensures that they are valid and do not violate Java’s security
restrictions.
 Java enforces strong security to make sure that Java programs
arriving over the network do not damage your files or your
system (as computer viruses and worms might).
 Phase 5
 The JVM executes the program’s bytecodes.
 JVM typically uses a combination of interpretation and just-in-time
(JIT) compilation.
 Analyzes the bytecodes as they are interpreted, searching for hot
spots—parts of the bytecodes that execute frequently.
 A just-in-time (JIT) compiler translates the bytecodes into the
underlying computer’s machine language.
 When the JVM encounters these compiled parts again, the faster
machine-language code executes.
 Java programs actually go through two compilation phases
 One in which source code is translated into bytecodes (for portability
across computer platforms)
 A second in which, during execution, the bytecodes are translated into
machine language for the actual computer on which the program executes.

You might also like