Download Introduction

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

Abstraction (computer science) wikipedia , lookup

Java syntax wikipedia , lookup

Programming language wikipedia , lookup

Structured programming wikipedia , lookup

Falcon (programming language) wikipedia , lookup

Scala (programming language) wikipedia , lookup

Class (computer programming) wikipedia , lookup

Assembly language wikipedia , lookup

Compiler wikipedia , lookup

C++ wikipedia , lookup

History of compiler construction wikipedia , lookup

Go (programming language) wikipedia , lookup

Object-oriented programming wikipedia , lookup

Interpreter (computing) wikipedia , lookup

Java (programming language) wikipedia , lookup

Java ConcurrentMap wikipedia , lookup

C Sharp syntax wikipedia , lookup

Name mangling wikipedia , lookup

Java performance wikipedia , lookup

C Sharp (programming language) wikipedia , lookup

Transcript
Overview of the Computer
• Definition: a programmable device that
can store, retrieve, and process data.
• Hardware = physical components of a
computer
• Software = computer programs (the set
of all programs available on a
computer).
– application software and system software.
5/24/2017
cosc236/intro
1
Computer components:
5/24/2017
cosc236/intro
2
Programming Language
• Definition: languages with strict
grammar rules, symbols, and special
words used to construct a computer
program
5/24/2017
cosc236/intro
3
Machine language
• the language that can be directly used
and understood by the computer
• operations are very low-level, specific to
the architecture (not portable)
• made up of binary-coded instructions
(strings of 0s and 1s)
• exa: 110011 - add instruction
5/24/2017
cosc236/intro
4
Assembly Language
•A low-level programming language in
which a mnemonic is used to
represent each of the machine
language instructions for a particular
computer
•Requires assembler
5/24/2017
cosc236/intro
5
COMP$PAY
PROC PUBLIC
;
; COMP$PAY - procedure to compute gross pay
; (PAY = HOURS * RATE)
MOV
AX,HOURS
; multiplicand
MUL
RATE+2
; X second word of multiplier
MOV
PAY+2,AX
; store the product in PAY
;
MOV
AX,HOURS
; multiplicand
MUL
RATE
; times first word of multiplier
ADD
PAY+2,AX
; add the product to PAY
ADD
PAY,DX ; add the carry, if any
RET
; end procedure
5/24/2017
cosc236/intro
6
High-level languages
• Basic, C++, Pascal, Java, Ada,
Modula-2, Cobol, Fortran…
• Similar to natural language (easier to
use and debug)
• standardized description of the
language exists
5/24/2017
cosc236/intro
7
High-level languages cont’d
• Not understood directly by a computer,
must be converted to machine language:
– Compilers: whole program is translated into
another language (machine language or bytecode)
and then executed
– Interpreters: program is translated and executed
one line at a time
• portable (machine-independent)
– Program is written for any platform
– compiler translates to each platform
5/24/2017
cosc236/intro
8
• C++ compiled to machine language
– Requires translating to many different
machine languages
• Java compiled to Java bytecodes
– One set of bytecodes can execute on many
different machines
– intermediate level
– machine language for theoretical computer:
Java Virtual Machine (JVM)
5/24/2017
cosc236/intro
9
Java
• Class
– Unit of code that is the basic building block
of Java programs
• Java runtime
– JRE
– Executes compiled Java class files
– Most computers have Java runtimes on
their computer
5/24/2017
cosc236/intro
10
Background
•
•
•
•
•
Released by Sun in 1995
Object-oriented
Rich libraries – pre-written software
Active programmer community
API Specification
– Application Programming Interface
• Extremely platform-independent
5/24/2017
cosc236/intro
11
Java Advantages
•
•
•
•
•
Platform independence
Reuse of code
Security
Automatic garbage collection
Stronger typing of objects and variables
3/28/2003
Columbia University JETT
12
Java Programming Environment
1. Type program as Java class =>.java
2. Compile => .class (bytecode)
3. Loader – connects bytecode from
various classes and loads bytecode
into main memory
4. Interpreter – translate and run
5/24/2017
cosc236/intro
13
Sample program
public class Hello
{
public static void main(String[] args)
{
System.out.println("Hello World!“);
}
}
5/24/2017
cosc236/intro
14
Java programs
•
•
•
•
class Hello
Class names begin with capital letter
file Hello.java
Class name and file name must match
5/24/2017
cosc236/intro
15
class
• Unit of code that is the basic building block of
java programs
public class <name> //class header
{
<method>
<method>
…
<method>
}
main method is required
public static void main(String[] args)
5/24/2017
cosc236/intro
16
methods
• particular action or calculation
• main method is required
• Method header
public static void main(String[] args)
{
statements
}
5/24/2017
cosc236/intro
17
statements
• Command
• Statements end with ;
5/24/2017
cosc236/intro
18
System.out.println
• Line of output sent to console window
•
•
•
•
System.out.println("Hello World!");
System.out.println();
System.out.print("Hello");
//does not move to next line of
output
5/24/2017
cosc236/intro
19
Literal string
• Surrounded by quotes
• One line
• Escape sequences
\t
\n
\”
\\
tab
new line
quotation
backslash
• System.out.println(" \"Slick\" Willy");
 "Slick" Willy
5/24/2017
cosc236/intro
20
Example
System.out.println("This\nyields three lines\nof output\n");
This
yields three lines
of output
5/24/2017
cosc236/intro
21
Identifiers
• used to name variables, constants,
methods, classes, and data types
• Rules:
– must start with letter or underscore or $
– Composed of letters, digits, $, or
underscore (better to start with a letter)
• Using Meaningful, Readable Identifiers!
• Java is case sensitive
• Don't use reserved words
5/24/2017
cosc236/intro
22
Identifiers
• Legal:
firstName
conversion
lengthOfRoom
payRate
counter1
x
5/24/2017
• Illegal
first name
Hello!
5th
one+two
cosc236/intro
23
Identifiers - Style
 Class name
 Begin with capital letter
 Method
 Begin with lowercase
 Exa: calcPay,getInfo, sum
• Constants: all caps
• PI, MAX_HOURS, UNIV_NAME
5/24/2017
cosc236/intro
24
Comments
• Compiler ignores comments
• /* */ everything between pair is ignored
• // - everything after the two slashes to
the end of line is ignored
• header comment:
•
•
•
•
5/24/2017
//Project number
//Student's name
Date project is due
//Course number
//Purpose of the program
cosc236/intro
25
When to use comments
• Comment variable and constant declarations.
• Precede blocks of code with an explanatory
comment.
• Explain statements that are not obvious.
• Precede each class with a brief header
comment
5/24/2017
cosc236/intro
26
Readability
• Class and method headers on lines by
themselves
• One statement per line
• Indent
• Use whitespace liberally in the form of
blank lines and spaces.
• Include at least one blank line between
methods
5/24/2017
cosc236/intro
27
Syntax
• Syntax - formal set of rules governing
how valid instructions are written in a
programming language
5/24/2017
cosc236/intro
28
Program Errors
• Syntax error – error in using Java,
indicated by compiler
– Cannot execute
– Exa: File name does not match class name
• Logic error (bug) – code doesn't
perform the intended task
– debugging
5/24/2017
cosc236/intro
29
Structured Programming
•
Control structures
1. sequence
2. selection
3. Loop
• Modularity/Top-Down Design
– Decomposition – separation into parts
– Functions, procedures => methods
5/24/2017
cosc236/intro
30
Static method
• A block of statements that is given a name
• Static
– allows non object-oriented invocation
– Use no instance variable of any object they
are declared in
• Method call
– Transfers control
• Methods can call other methods
5/24/2017
cosc236/intro
31
public class Memo
{
public static void main(String[] args)
{
printLogo(); //method call
System.out.println("Reminder:" );
System.out.println("Company Meeting");
System.out.println("Thursday at 9:00!!!!");
printLogo();
} /* end main */
public static void printLogo() // method header
{
System.out.println("*************************************");
System.out.println("**********YOUR COMPANY********");
System.out.println("*************************************");
}
cosc236/intro
32
} 5/24/2017
Design/Plan the solution
• Algorithm – a step by step procedure for solving a
problem, ordered set of instructions such that:
• programs are implementations of algorithms,
emphasis on writing algorithms.
• the computer is a fast and flexible tool for
implementing algorithms.
• tools
– flowcharts
– Pseudocode
– subtasks - hierarchy chart
• test solution for correctness - trace
5/24/2017
cosc236/intro
33