* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Introduction
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
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
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