Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Begreber og Redskaber 2. Plan for idag Noget om bestanddelene i et programmeringssprog Syntaksbeskrivelse af java Næste gang: –Binære tal –Repræsentation.

Lignende præsentationer


Præsentationer af emnet: "Begreber og Redskaber 2. Plan for idag Noget om bestanddelene i et programmeringssprog Syntaksbeskrivelse af java Næste gang: –Binære tal –Repræsentation."— Præsentationens transcript:

1 Begreber og Redskaber 2

2 Plan for idag Noget om bestanddelene i et programmeringssprog Syntaksbeskrivelse af java Næste gang: –Binære tal –Repræsentation af tal I maskinen –Regne med tal og logiske værdier

3 Computer CPU Registre RAM Cache Tastatur Skærm Mus Harddisk CD-ROM Ydre enheder

4 von Neumann model CPU Registre Program Data

5 Et java program public class HelloWorld{ public static void main(String[] args){ // Hovedprogram! System.out.println(”Hej”); }

6 Bestanddele af program Variable og typer Regneudtryk Sætninger Underprogrammer Klasser Biblioteker

7 Typer Heltal ( int,..), 1 117 Kommatal ( float, double ) 1.0 1E10 Logiske værdier ( boolean ) true false Tegn ( char ) ’c’ ’\n’ Tekststrenge ( String ) ”hello” Og så er der også klasser og objekter...

8 Variable Variable og typer –Variabel erklæring –int i; –Variabel initialisering –int i = 1; –Variabel tildeling –i = 1; –Variabel inkrementering –i++;

9 Udtryk Sammenligning ( ==,>=,,!= ) Aritmetik ( +,-,*,/,% ) Tildeling ( =,+=,++ ) Betinget udtryk ( ? : ) Eksempel int i = 3+4; boolean b = (i++ == 7);

10 Tekststrenge ”dette er en tekststreng” Sammenhæftning af strenge med + Næsten alt kan konverteres til tekststrenge, f.eks. når det står efter + Eksempel int i = 7; String s; s = ”i = ” + i;

11 Udskrivning System.out.println( udtryk ); System.out.println(); System.out.print( udtryk ); Udtryk er streng, tal, tegn, logisk værdi,.. Eksempel System.out.println(”Hello”);

12 Indlæsning med swing import javax.swing.*; public class brp2{ public static void main(String[] args){ String x=JOptionPane.showInputDialog( "giv mig et tal"); int tal1=Integer.parseInt(x); String y=JOptionPane.showInputDialog( "giv mig et andet tal"); int tal2=Integer.parseInt(y); JOptionPane.showMessageDialog(null, "summen er "+(tal1+tal2)); System.exit(0); }

13 Indlæsning fra dos-vindue? Nå ja – men det er ikke helt let! Eksempel try{ DataInputStream in = new DataInputStream(System.in); String s = in.readLine(); System.out.println("Read : "+s); }catch(java.io.IOException e){}

14 Sætninger If: if( exp ) stmt else stmt While: while( exp ) stmt Do: do stmt while( exp ) For: for( exp;exp;exp ) stmt Switch: switch( exp ){ case exp: stmt..} Andet: break,continue,return,try

15 Hvad mer?? Klasser, nedarvning og beskyttelse Overlæsning, overskrivning, polymorfi Interface, abstrakte klasser Tabeller Undtagelser, parallelitet Et hav af standard klasser

16 Leksikalske regler Leksikalsk analyse: bryd tekst op i ord Regel: Der brydes ved længste lovlige sekvens Blanktegn stort set ligegyldige Der må være blanktegn men ikke linieskift i tekststrenge x+++++x el. x+++++x intx; intintx;

17 Et Java Program public class A { public static void main(String[ ] args) { System.out.println(”Hello”); } eller publicclassA{publicstaticvoid main(String[ ]args){System.out.println(”Hello”);} }

18 Java Language Specification Findes på nettet – indeholder detaljeret beskrivelse af alle konstruktioner i java, syntaks, semantik og pragmatik http://java.sun.com/docs/books/jls/index.html Her følger et udkog med ca 2/3 af Java – de dele I får brug for… Kun syntaks og I EBNF format Der tages forbehold for fejl og mangler..

19 Navne og tal Identifier : Bogstav { Ciffer | Bogstav | ”_” } VarName : Identifier TypeName : Name ClassName : Name Number : Ciffer { Ciffer } [”l” | ”L”] Char : ”’” Tegn ”’” String: ””” {Tegn } ””” Tegn: ”\r” | ”\n” | ”\b” | ”\f” | ”\t” | ”\”” | ”\’” | ”\\” | ….

20 Simple udtryk Primary: ”(” Expression ”)” ”this” [ Arguments ] ”super” [ Arguments ] ”new” Identifier ”[” Expression ”]” { ”[” Expression ”]” } ”new” Identifier Arguments Identifier { ”.” Identifier } [ Arguments ] Number String Char Arguments: ”(” [ Expression { ”,” Expression } ] ”)”

21 Udtryk Expression: Expression1 [AssignmentOperator Expression1] AssignmentOperator: ”=” | ”+=” | ”-=” | ”*=” | ”/=” | ”&=” | ”|=” | ”^=” | ”%=” | ” >=” | ”>>>=” Expression1: Expression2 [ ”?” Expression ”:” Expression1 ] Expression2 : Expression3 { Infixop Expression3 } Expression3 ”instanceof” Type Infixop: ”||” | ”&&” | ”|” | ”^” | ”&” | ”==” | ”!=” | ” ” | ” =” | ” >” | ”>>>” | ”+” | ”-” | ”*” | ”/” | ”%” Expression3: PrefixOp Expression3 ”(“ Type “)” Expression3 Primary {Selector } {PostfixOp } Selector: ”.” Identifier | ”[” Expression ”]” PrefixOp: ”++” | ”--” | ”!” | ”~” | ”+” | ”-” PostfixOp: ”++” | ”--”

22 Typer, mm. Type: Identifier { “.” Identifier } BracketsOpt BasicType BasicType: ”byte” | ”short” | ”char” | ”int” | ”long” | ”float” | ”double” | ”boolean” Catches: CatchClause { CatchClause } CatchClause: ”catch” ”(” FormalParameter ”)” Block ForInit: Expression { ”,” Expression } [”final”] Type VariableDeclarator { ”,” VariableDeclarator } ForUpdate: Expression { ”,” Expression } SwitchBlockStatementGroups: { SwitchLabel {Statement } } SwitchLabel: ”case” Expression ”:” | ”default” ”:”

23 Sætninger Statement: Block ”if” ”(”Expression ”)” Statement [“else” Statement ] ”for” ”(” ForInit ”;” [Expression] ”;” ForUpdate ”)” Statement ”while” ”(”Expression ”)” Statement ”do” Statement ”while” ”(”Expression ”)” ”;” ”try” Block ( Catches | [Catches ] ”finally” Block ) ”switch” ”(”Expression ”)”{ SwitchBlockStatementGroups } ”synchronized” ”(”Expression ”)” Block ”return” [Expression ] ”;” ”throw” Expression ”;” ”break” [Identifier ] ”;” ”continue” [Identifier ] ”;” Expression ”;” Identifier ”:” Statement

24 Metoder består af sætninger Block: ”{” { BlockStatement } ”}” BlockStatement : [ ”final” ] Type VariableDeclarator { ”,” VariableDeclarator } ”;” [Identifier ”:”] Statement VariableDeclarator: Identifier BracketsOpt [ ”=” VariableInitializer ] BracketsOpt: { ”[” ”]” } FormalParameters: ”(” [ FormalParameter { ”,” FormalParameter } ] ”)” FormalParameter: Type Identifier BracketsOpt

25 En klasse består af metoder ClassBody: ”{” { ClassBodyDeclaration } ”}” ClassBodyDeclaration: ”;” [ ”static” ] Block {Modifier } MemberDecl MemberDecl: [ ”void” | Type ] Identifier FormalParameters BracketsOpt [ ”throws” IdentifierList ] ( Block | ”;” ) Type Identifier BracketsOpt [ ”=” VariableInitializer ] VariableInitializer: ”{” [VariableInitializer { ”,” VariableInitializer } [”,”] ] ”}” Expression

26 Et program består af klasser CompilationUnit: [ ”package” QualifiedIdentifier ”;” ] {ImportDeclaration } {ClassDeclaration } ImportDeclaration: ”import” Identifier { ”.” Identifier } [ ”.*” ] ”;” ClassDeclaration: {Modifier } ”class” Identifier [ ”extends” Type ] [ ”implements” TypeList ] ClassBody Modifier: ”public” | ”protected” | ”private” | ”static” | ”abstract” | ”final” | ”native” | ”synchronized” | ”transient” | ”volatile” | ”strictfp”

27 Syntakstræer ”CompilationUnit” er roden i træet Bladene i træet er ”terminalerne” Der sidder ”nonterminaler” i alle forgreninger Når det tegnes vokser det nedad med roden øverst Samler man bladene ved gennemløb af træet fra venstre til højre får man programteksten

28 Syntakstræer Expression: x++ + ++x expression expression1 expression2 expression3 infixop ”+””+” expression3primaryprefixoppostfixop ”++”identifierprimary”++” identifier ”x””x” ”x””x”

29 Syntakstræer Expression: x+ y + z expression expression1 expression2 expression3 infixop ”+””+” primary identifier primary identifier ”x””x” ”z””z” infixopexpression3 ”+””+” identifier ”y””y” primary


Download ppt "Begreber og Redskaber 2. Plan for idag Noget om bestanddelene i et programmeringssprog Syntaksbeskrivelse af java Næste gang: –Binære tal –Repræsentation."

Lignende præsentationer


Annoncer fra Google