Download Chapter 1: An Overview of Computers and Programming Languages

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

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

ILLIAC IV wikipedia , lookup

Object-oriented programming wikipedia , lookup

Reactive programming wikipedia , lookup

Java performance wikipedia , lookup

Structured programming wikipedia , lookup

C Sharp (programming language) wikipedia , lookup

Transcript
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