ohp02.dvi

Similar documents
r02.dvi

ohp07.dvi

K227 Java 2

r1.dvi

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の break; まで処理しますどれにも一致致しない場合 def

Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

: : : TSTank 2

I java A

新・明解Java入門

明解Javaによるアルゴリズムとデータ構造

1 Java Java GUI , 2 2 jlabel1 jlabel2 jlabel3 jtextfield1 jtextfield2 jtextfield3 jbutton1 jtextfield1 jtextfield2 jtextfield3

break 文 switch ブロック内の実行中の処理を強制的に終了し ブロックから抜けます switch(i) 強制終了 ソースコード例ソースファイル名 :Sample7_1.java // 入力値の判定 import java.io.*; class Sample7_1 public stati

新・明解Javaで学ぶアルゴリズムとデータ構造

やさしいJavaプログラミング -Great Ideas for Java Programming サンプルPDF

10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

Java Java Java Java Java 4 p * *** ***** *** * Unix p a,b,c,d 100,200,250,500 a*b = a*b+c = a*b+c*d = (a+b)*(c+d) = 225

1.ppt

8 if switch for while do while 2

3 Java 3.1 Hello World! Hello World public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World");


Java (7) Lesson = (1) 1 m 3 /s m 2 5 m 2 4 m 2 1 m 3 m 1 m 0.5 m 3 /ms 0.3 m 3 /ms 0.6 m 3 /ms 1 1 3

Java演習(4) -- 変数と型 --

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

ex01.dvi

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

問題1 以下に示すプログラムは、次の処理をするプログラムである

Z...QXD (Page 1)

JavaプログラミングⅠ

Java updated

JavaプログラミングⅠ

Java (5) 1 Lesson 3: x 2 +4x +5 f(x) =x 2 +4x +5 x f(10) x Java , 3.0,..., 10.0, 1.0, 2.0,... flow rate (m**3/s) "flow

解きながら学ぶJava入門編

( ) p.1 x y y = ( x ) 1 γ γ = filtergamma.java import java.applet.*; public class filtergamma extends Applet{ Image img; Image new_img; publi

Assignment_.java 課題 : 転置行列 / class Assignment_ public static void main(string[] args) int i,j; int[][] array = 1,,,,,,,,,,,,,1,1,; 行 列行列 i

Java演習(2) -- 簡単なプログラム --

2

問題1 以下に示すプログラムは、次の処理をするプログラムである

Java講座

データ構造とアルゴリズム論

class IntCell { private int value ; int getvalue() {return value; private IntCell next; IntCell next() {return next; IntCell(int value) {this.value =

アルゴリズムとデータ構造1

ALG2012-F.ppt

(Microsoft PowerPoint - \223\306\217KJAVA\221\346\202R\224\ ppt)

I. Backus-Naur BNF : N N 0 N N N N N N 0, 1 BNF N N 0 11 (parse tree) 11 (1) (2) (3) (4) II. 0(0 101)* (

Microsoft Word - keisankigairon.ch doc

新・明解Javaで学ぶアルゴリズムとデータ構造

:30 12:00 I. I VI II. III. IV. a d V. VI

Java 3 p.2 3 Java : boolean Graphics draw3drect fill3drect C int C OK while (1) int boolean switch case C Calendar java.util.calendar A

2

明解Javaによるアルゴリズムとデータ構造

ex01.dvi

class IntCell { private int value ; int getvalue() {return value; private IntCell next; IntCell next() {return next; IntCell(int value) {this.value =

プログラムの基本構成

JavaプログラミングⅠ

: gettoken(1) module P = Printf exception End_of_system (* *) let _ISTREAM = ref stdin let ch = ref ( ) let read () = (let c =!ch in ch := inp

2.2 Java C main Java main 2 C 6 C Java 3 C Java ( ) G101Hello.java G101Hello main G101Hello.java /* G101Hello */ class G101Hello { /* main */ public s

IE6 2 BMI chapter1 Java 6 chapter2 Java 7 chapter3 for if 8 chapter4 : BMI 9 chapter5 Java GUI 10 chapter6 11 chapter7 BMI 12 chap

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac

Quick Sort 計算機アルゴリズム特論 :2017 年度 只木進一

プログラミングA

untitled

untitled

(Eclipse\202\305\212w\202\324Java2\215\374.pdf)

I. Backus-Naur BNF S + S S * S S x S +, *, x BNF S (parse tree) : * x + x x S * S x + S S S x x (1) * x x * x (2) * + x x x (3) + x * x + x x (4) * *

¥×¥í¥°¥é¥ß¥ó¥°±é½¬I Exercise on Programming I [1zh] ` `%%%`#`&12_`__~~~ alse

ALG ppt

r9.dvi

haskell.gby

JAVA 11.4 PrintWriter 11.5

tkk0408nari

untitled

:30 12:00 I. I VI II. III. IV. a d V. VI

oop1

ALG2012-A.ppt

Thread

ただし 無作為にスレッドを複数実行すると 結果不正やデッドロックが起きる可能性がある 複数のスレッド ( マルチスレッド ) を安全に実行する ( スレッドセーフにする ) ためには 同期処理を用いるこ とが必要になる 同期処理は 予約語 synchronized で行うことができる ここでは sy

デジタル表現論・第6回

(Java/FX ) Java CD Java version Java VC++ Python Ruby Java Java Eclipse Java Java 3 Java for Everyone 2 10 Java Midi Java JavaFX Shape Canvas C


Microsoft PowerPoint ppt

PowerPoint Presentation

1 (2 * 3) 1 2 * 3 Preorder In order Post order 1 * 1 * Breadth-first Depth-first * * 3 Preorder: 1 * 2 3 In order: 1 2 * 3 Post orde

r3.dvi

2 static final int DO NOTHING ON CLOSE static final int HIDE ON CLOSE static final int DISPOSE ON CLOSE static final int EXIT ON CLOSE void setvisible

文字列操作と正規表現


JavaプログラミングⅠ

ohp08.dvi

デジタル表現論・第4回

2

プログラミング入門1

JavaプログラミングⅠ

GEC-Java

226

プログラミング入門1

2

Programming-C-9.key

Transcription:

172 2017.7.16 1

? X A B A X B ( )? IBMPL/I FACOM PL1 ( ) X 2

( ) 3

2-0 ( ) ( ) ( ) (12) ( ) (112) 31) 281 26 1 4

(syntax) (semantics) ( ) 5

BNF BNF(Backus Normal Form) Joun Backus (grammer) English grammer grammer for programming language X BNF (metasymbol)? C + (? BNFC + 1 (meta) 1 6

BNF C ( )BNF ( ) ::= ( ) { ::= int double char void * ::= void ::=, ::= [] ::= C C (nonterminalsymbol) int (termnal symbol) ::= BNF ( ) ( ) BNF ( ) 7

BNF ::= 1 ( ) { C? C (main x ) ( ) 2 intdoublecharvoid? * int int* int* int** * BNF ( ) 3 void( ) 4 ( 1),,,, 5 ( )[] 8

BNF 6 ( ) 1 2-1 C BNF a. b. c. d. 9

BNF ::= ǫ a a0 a a a a a a ǫ == a a a a a a 1(1) (a) ( ǫ) (b) (c) ( a ::= a ) (syntax tree) (1) (2) (3) (4) (5) a a a a a a a * a + 1 a * a + 1 a * a + 1 1: 10

::= ǫ a a0 1(2) ::=+ * 1 a a * a + 1 1(3)(4) 2 (ambiguous) 2? (3) ::= + ::= * ::= 1 a 1(5) 1 1 a1 11

2-2 a. a + a * a + 1 a + 1 + a * a b. a + a + a ( ) c. ::= 1 a () d. ( ) ::= ǫ ::=; while () if () { while if e. ::= if ()else 2 C Java 12

(syntaxchecker)java 2 1 BNF prog ::= ǫ ab prog ab ::= a b prog BNF <program> BNF ab2 0 % java Sam21 abab true % java Sam21 aba false % java Sam21 true % 2 13

(syntax checker) 14

Toknizer Toknizer 1 1 Toknizer class CharToknizer { String str, tok; int pos = -1; boolean eof = false; public CharToknizer(String s) { str = s; fwd(); public boolean iseof() { return eof; public String curtok() { return tok; public boolean chk(string s) { return tok.equals(s); public void fwd() { if(eof) { return; pos += 1; if(pos >= str.length()) { eof = true; tok = "$"; return; tok = str.substring(pos, pos+1); public boolean chkfwd(string s) { if(chk(s)) { fwd(); return true; else { return false; Toknizer str pos pos-1 fwd() 15

Toknizer fwd() eof pos1 eof ( 1 ) length() substring() API chkfwd() chk() OK fwd() ( ) 16

static static Java static public class MyClass { static int sx; static int sy; int ix; int iy; public static void main(string[] args) {...... public void method1(...) {...... class Innter {... static class StaticInnter {... NG OK 2: static 2 MyClass mainmethod1 static MyClass main() method1 MyClass c = new MyClass(...) c.methods1(...) ( ) static 17

static sx/syix/iy ix/iy 1 mehotd1 static main sx/systatic 1 ( )method1 main static 3 (inner class) static static static ix/iy static ( ) static static 3 MyClass.sx 18

main 1 CharToknizer static tok tok prog() ( ) tok.iseof() 19

import java.util.*; import java.io.*; public class Sam21 { static CharToknizer tok; public static void main(string[] args) throws Exception { tok = new CharToknizer(args[0]); System.out.println(prog() && tok.iseof()); static boolean prog() { if(tok.chk("a")) { return ab() && prog(); else { return true; static boolean ab() { return tok.chkfwd("a") && tok.chkfwd("b"); // CharToknizer 2 BNF 2 20

1. P (true ) P false 2. P true EOF ( ) (recursive descent parsing) prog() ( ) 1 ( ) prog ::= ǫ ab prog ǫ ( ) true ab ab ( a ) OK ab() prog() OK ǫ true 21

ab() 2 ab ::= a b a b fwd() checkfwd() false S ::= T11 x T13 y T22 T3 static boolean s() { if(t1 chosen) { return t11() && tok.chkfwd("x") && t3(); else if(t2 chosen) { return tok.chkfwd("y") && t22(): else if(t3 chosen) { return t3(); else { return true; 3: 3 22

S s() S if-else ǫ ǫ else (ǫ 1 else ) true true tok.chkfwd() ( ) tok.chkfwd() prog() true 23

2-3 a. prog ::= ǫ ab prog ab ::= a bb b. prog ::= a a prog c. prog ::= ǫ Aa bb prog aa ::= a a aa bb ::= b b bb d. prog ::= 1 ( prog ) e. prog ::= term term op prog term ::= a 1 ( prog ) op ::= + - * / f. 24

2-3 2-3 ( ) a. a bb static boolean prog() { if(tok.chk("a") tok.chk("b")) { return ab() && prog(); else { return true; static boolean ab() { if(tok.chk("a")) { return tok.chkfwd("a"); else { return tok.chkfwd("b") && tok.chkfwd("b"); prog() ab() a b ab() 25

2-3 b. a1 1 a ( ) a static boolean prog() { if(tok.chk("a")) { tok.fwd(); if(tok.chk("a")) { return prog(); else { return true; else { return false; a prog() ture a false c. aa()bb() prog() 26

2-3 static boolean prog() { if(tok.chk("a")) { return aa() && bb() && prog(); else { return true; static boolean aa() { if(tok.chk("a")) { tok.fwd(); if(tok.chk("a")) { return aa(); else { return true; else { return false; 27

2-3 static boolean bb() { if(tok.chk("b")) { tok.fwd(); if(tok.chk("b")) { return bb(); else { return true; else { return false; 28

2-3 d. static boolean prog() { if(tok.chk("1")) { tok.fwd(); return true; else if(tok.chk("(")) { return tok.chkfwd("(") && prog() && tok.chkfwd(")"); else { return false; 1 BNF 29

2-3 e. ( ) prog static boolean prog() { if(term()) { if(tok.chk("+") tok.chk("-") tok.chk("*") tok.chk("/ return op() && prog(); else { return true; else { return false; static boolean term() { if(tok.chk("a")) { tok.fwd(); return true; else if(tok.chk("1")) { tok.fwd(); return true; else { return tok.chkfwd("(") && prog() && tok.chkfwd(")"); static boolean op() { return tok.chkfwd("+") tok.chkfwd("-") tok.chkfwd("*") tok.chkfwd("/"); 30

2-3 prog() 2-4 e. a. CJava 1 b. if c. d. 2-5 Expr prog ( ) a. prog ::= { statlist statlist ::= ǫ stat statlist stat ::= Expr ; { statlist b. stat stat ::= w ( Expr ) stat d stat w ( Expr ) ; c. stat stat ::= i ( Expr ) stat i ( Expr ) stat e stat d. 31

2A ( )1 (y-kuno@uec.ac.jp) PDF LaTeX 2 Q1. BNF Q2. Q3. ( ) 32