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