* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Chapter 1: An Overview of Computers and Programming Languages
Falcon (programming language) wikipedia , lookup
Go (programming language) wikipedia , lookup
Stream processing wikipedia , lookup
Functional programming wikipedia , lookup
Programming language wikipedia , lookup
Java (programming language) wikipedia , lookup
Abstraction (computer science) wikipedia , lookup
Java ConcurrentMap wikipedia , lookup
Object-oriented programming wikipedia , lookup
Reactive programming wikipedia , lookup
Java performance wikipedia , lookup
Chapter 1: An Overview of Computers
and Programming Languages
Java Programming:
Program Design Including Data Structures
Chapter Objectives
Learn about different types of computers
Explore the hardware and software components of a
computer system
Learn about the language of a computer
Learn about the evolution of programming
languages
Examine high-level programming languages
Discover what a compiler is and what it does
Java Programming: Program Design Including Data Structures
2
Chapter Objectives (continued)
Examine a Java program
Examine how a Java program is processed
Become aware of the Internet and World Wide Web
Learn what an algorithm is and explore problemsolving techniques
Become aware of structured and object-oriented
programming design methodologies
Java Programming: Program Design Including Data Structures
3
Introduction
Computers have greatly affected our daily lives—
helping us complete many tasks
Computer programs (software) are designed
specifically for each task
Software is created with programming languages
Java is an example of a programming language
Java Programming: Program Design Including Data Structures
4
An Overview of the
History of Computers
1950s: Very large devices available to a select few
1960s: Large corporations owned computers
1970s: Computers got smaller and cheaper
1990s: Computers got cheaper and faster and were
found in most homes
Java Programming: Program Design Including Data Structures
5
Elements of a Computer System
A computer has two components:
Hardware
Software
Java Programming: Program Design Including Data Structures
6
Hardware Components
of a Computer
Central processing unit (CPU)
Main memory
Java Programming: Program Design Including Data Structures
7
Central Processing Unit
Control unit (CU)
Arithmetic logic unit (ALU)
Program counter (PC)
Instruction register (IR)
Java Programming: Program Design Including Data Structures
8
Hardware Components of a Computer
Java Programming: Program Design Including Data Structures
9
Main Memory
Ordered sequence of cells (memory cells)
Directly connected to CPU
All programs must be brought into main memory
before execution
When power is turned off, everything in main
memory is lost
Java Programming: Program Design Including Data Structures
10
Main Memory with
100 Storage Cells
Java Programming: Program Design Including Data Structures
11
Secondary Storage
Provides permanent storage for information
Examples of secondary storage:
Hard disks
Floppy disks
Zip disks
CD-ROMs
Tapes
Java Programming: Program Design Including Data Structures
12
Input Devices
Devices that feed data and computer programs into
computers
Examples:
Keyboard
Mouse
Secondary storage
Java Programming: Program Design Including Data Structures
13
Output Devices
Devices that the computer uses to display results
Examples:
Printer
Monitor
Secondary storage
Java Programming: Program Design Including Data Structures
14
Software
Software consists of programs written to perform
specific tasks
Two types of programs:
System programs
Application programs
Java Programming: Program Design Including Data Structures
15
System Programs
System programs control the computer
The operating system is first to load when you turn
on a computer
Java Programming: Program Design Including Data Structures
16
Operating System (OS)
The OS monitors the overall activity of the computer
and provides services
Example services:
Memory management
Input/output
Activities
Storage management
Java Programming: Program Design Including Data Structures
17
Application Programs
Written using programming languages
Perform a specific task
Run by the OS
Example programs:
Word processors
Spreadsheets
Games
Java Programming: Program Design Including Data Structures
18
Language of a Computer
Machine language is the most basic language of a
computer
A sequence of 0s and 1s
Every computer directly understands its own
machine language
A bit is a binary digit, 0 or 1
A byte is a sequence of eight bits
Java Programming: Program Design Including Data Structures
19
Language of a Computer
(continued)
Java Programming: Program Design Including Data Structures
20
Evolution of
Programming Languages
Early computers programmed in machine language
Assembly languages were developed to make
programmer’s job easier
In assembly language, an instruction is an easy-toremember form called a mnemonic
Assembler: Translates assembly language
instructions into machine language
Java Programming: Program Design Including Data Structures
21
Instructions in Assembly and
Machine Languages
Java Programming: Program Design Including Data Structures
22
Instruction Set Architectures
This list is far from comprehensive as old architectures are abandoned and new ones invented on a continual basis.
ISAs commonly implemented in hardware
*
*
Ltd)
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
Alpha AXP (DEC Alpha)
ARM (Acorn RISC Machine) (Advanced RISC Machine now ARM
Burroughs B5000/B6000/B7000 series
IA-64 (Itanium)
MIPS
Motorola 68k
PA-RISC (HP Precision Architecture)
IBM 700/7000 series
IBM POWER
PDP-11 (Digital Equipment Corporation)
PowerPC
SPARC
SuperH
System/360
Tricore (Infineon)
Transputer (STMicroelectronics)
UNIVAC 1100/2200 series
VAX (Digital Equipment Corporation)
x86 (also known as IA-32) (Pentium, Athlon)
x86-64 (also known as AMD64 and Intel 64)
EISC (AE32K)
ISAs commonly implemented in software with hardware
incarnations
* p-Code (UCSD p-System Version III on Western Digital Pascal
MicroEngine)
* Java virtual machine (ARM Jazelle, PicoJava, JOP)
* FORTH
ISAs never implemented in hardware
* ALGOL object code
* SECD machine, a virtual machine used for some functional
programming languages.
* MMIX, a teaching machine used in Donald Knuth's The Art of
Computer Programming
* Z-machine, a virtual machine used for Infocom's text adventure
games
Java Programming: Program Design Including Data Structures
23
Evolution of
Programming Languages
High-level languages make programming easier
Closer to spoken languages
Examples:
Visual Basic, C#, J#
FORTRAN
COBOL
C/C++
Java
Java Programming: Program Design Including Data Structures
24
Evolution of
Programming Languages
Java Programming: Program Design Including Data Structures
25
Evolution of
Programming Languages
(continued)
To run a Java program:
1. Java instructions need to be translated into an
intermediate language called bytecode
2. The bytecode is interpreted into a particular
machine language
Java Programming: Program Design Including Data Structures
26
Evolution of
Programming Languages
(continued)
Compiler: A program that translates a program
written in a high-level language into the
equivalent machine language
With Java, this machine language is the bytecode
Java Virtual Machine (JVM): A hypothetical
computer developed to make Java programs
machine independent
Java Programming: Program Design Including Data Structures
27
A Java Program
public class HolaMundo
{
/* my first JAVA program */
public static void main(String[] argv)
{
System.out.println("Hola mundo");
}
}
Sample Run:
Hola mundo
Java Programming: Program Design Including Data Structures
28
A Java Program
HolaMundo - ByteCode
Java Programming: Program Design Including Data Structures
29
A Java Program
Java Programming: Program Design Including Data Structures
30
A Java Program
public class ASimpleJavaProgram
{
public static void main(String[] args)
{
System.out.println("My first Java program");
System.out.println("The sum of 2 and 3 = " + 5);
System.out.println("7 + 8 = " + (7 + 8));
}
}
Sample Run:
My first Java program
The sum of 2 and 3 = 5
7 + 8 = 15
Java Programming: Program Design Including Data Structures
31
Processing a Java Program
Types of Java programs: applications and applets
Source program: Written in a high-level language
Loader: Transfers the compiled code (bytecode)
into main memory
Interpreter: Reads and translates each bytecode
instruction into machine language and then
executes it
Java Programming: Program Design Including Data Structures
32
Processing a Java Program
(continued)
Java Programming: Program Design Including Data Structures
33
Problem-Analysis-CodingExecution Cycle
Algorithm:
A step-by-step, problem-solving process in which a
solution is arrived at in a finite amount of time
(steps).
Java Programming: Program Design Including Data Structures
34
Problem-Solving Process
1. Analyze the problem: Outline solution
requirements and design an algorithm
2. Implement the algorithm in a programming
language (Java) and verify that the algorithm works
3. Maintain the program: Use and modify if the
problem domain changes
Java Programming: Program Design Including Data Structures
35
Problem-Analysis-Coding-Execution Cycle
Java Programming: Program Design Including Data Structures
36
Programming Methodologies
Two basic approaches to programming design:
Structured design
Object-oriented design
Java Programming: Program Design Including Data Structures
37
Structured Design
1. A problem is divided into smaller sub-problems
2. Each sub-problem is solved
3. The solutions of all sub-problems are combined to
solve the problem
Java Programming: Program Design Including Data Structures
38
Object-Oriented Design (OOD)
OOD: program is a collection of interacting objects
An object consists of data and operations
Steps in OOD:
1. Identify objects
2. Form the basis of the solution
3. Determine how these objects interact
Java Programming: Program Design Including Data Structures
39
Chapter Summary
A computer system is made up of hardware and
software components
Computers understand machine language; it is
easiest for programmers to write in high-level
languages
A compiler translates high-level language into
machine language
The Java steps required to execute a program are
edit, compile, load, and execute
Java Programming: Program Design Including Data Structures
40
Chapter Summary (continued)
Algorithm: step-by-step, problem-solving process.
Solution is arrived at in a finite amount of time
The three steps of the problem-solving process
Analyze the problem and design an algorithm
Implement the algorithm in a programming language
Maintain the program
Two approaches to programming design are
structured design and object-oriented design
Java Programming: Program Design Including Data Structures
41