Java Methods A & AB - Los Gatos High School

Download Report

Transcript Java Methods A & AB - Los Gatos High School

Hardware
•
•
•
•
•
CPU
Memory - 2 kinds
Network
Graphics
Input and Output Devices
2-1
Everything is
Binary
Eniac 1950
Eniac contained 17,468
vacuum tubes, 7,200 crystal
diodes, 1,500 relays, 70,000
resistors, 10,000 capacitors
and around 5 million handsoldered joints. It weighed
more than 30 short tons (27 t),
was roughly 8 by 3 by 100 feet
(2.4 m × 0.9 m × 30 m), took
up 1800 square feet (167 m2),
and consumed 150 kW of
power
2-2
Bits and Bytes
•
•
•
•
•
•
KB
MB
GB
TB
PB
HB?
1-3
Numbers and Letters
Numbers are
represented in base 2
Keystrokes are
represented with ASCII
•
•
•
•
•
•
•
•
•
•
0000 0001
0000 0010
0000 0011
0000 0100
0000 0101
‘A’ = 65 = 0100 0001
‘B’ = 66
‘C’ = 67
‘a’ = 97
‘b’ = 98
1-4
Gates
AND gate
A
OR gate
NOT gate
A
A OR B
A AND B
B
A
NOT A
B
A B
T
T
F
F
T
F
T
F
A AND B
T
F
F
F
A B
T
T
F
F
T
F
T
F
A OR B
A
T
T
T
F
T
F
NOT A
F
T
1-5
Example: XOR Circuit
A
A AND (NOT B)
B
OR
A XOR B
(NOT A) AND B
A B
T
T
F
F
T
F
T
F
A XOR B
F
T
T
F
1-6
Software
•
•
•
•
Instructions to CPU / Hardware
Binary
Assembly Language
High Level Languages
2-7
2-8
Programming Languages
Assembly
languages
1940
1950
C
C#
LISP
Scheme
Logo
1960
1970
Fortran
Machine
code
C++
1980
Pascal
Java
1990
2000
Python
Basic
Smalltalk Smalltalk-80
2-9
Software Development
1950-1970's:
• Emphasis on
efficiency



fast algorithms
small program size
limited memory use
Now:
• Emphasis on




• Often cryptic code
• Not user-friendly

programmer’s
productivity
team development
reusability of code
easier maintenance
portability
• Better documented
• User-friendly
2-10
Software Development Tools
• Editor

programmer writes
source code
• Compiler

translates the source
into object code
(instructions specific to a
particular CPU)
• Linker

converts one or several
object modules into an
executable program
• Debugger

steps through the
program “in slow motion”
and helps find logical
mistakes (“bugs”)
2-11
The First “Bug”
“(moth) in relay”
Mark II Aiken Relay Calculator (Harvard University, 1945)
2-12
Compiled Languages:
Edit-Compile-Link-Run
Editor
Editor
Editor
Source
code
Compiler
Source
code
Compiler
Source
code
Compiler
Object
code
Object
code
Object
code
Linker Executable
program

2-13
Interpreted Languages:
Edit-Run
Editor
Source
code
Interpreter

2-14
Compiler vs. Interpreter
• Compiler:




• Interpreter:
checks syntax
generates
machine-code
instructions

not needed to run
the executable
program
the executable
runs faster



checks syntax
executes appropriate
instructions while
interpreting the
program statements
must remain installed
while the program is
interpreted
the interpreted
program is slower
2-15
Java’s Hybrid Approach:
Compiler + Interpreter
• A Java compiler converts Java source
code into instructions for the Java
Virtual Machine.
• These instructions, called bytecodes,
are the same for any computer /
operating system.
• A CPU-specific Java interpreter
interprets bytecodes on a particular
computer.
2-16
Java’s Compiler + Interpreter
Editor
Compiler
:
:
7
K


Hello.java
Hello.class
Interpreter
Interpreter
:

Hello,
World!

2-17
Why Bytecodes?
• Platform-independent
• Load from the Internet faster than source
code
• Interpreter is faster and smaller than it would
be for Java source
• Source code is not revealed to end users
• Interpreter performs additional security
checks, screens out malicious code
2-18
// Mike Bollhorst
// Aug 19, 2013
// Hello: my first program - prints hello world on screen
public class Hello
{
public static void main (String[] args)
{
System.out.println(“Hello world!”);
}
}
2-19