×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
2019/11/22 .pm PHP AST Java © - BASE, Inc.
Slide 2
Slide 2 text
© - BASE, Inc. Who am I? (@m m r ) BASE GameWith PHP, TypeScript
Slide 3
Slide 3 text
© - BASE, Inc. Software Design
Slide 4
Slide 4 text
© - BASE, Inc. PHP
Slide 5
Slide 5 text
© - BASE, Inc.
Slide 6
Slide 6 text
© - BASE, Inc. PHP JVM
Slide 7
Slide 7 text
© - BASE, Inc. PHP JVM
Slide 8
Slide 8 text
© - BASE, Inc.
Slide 9
Slide 9 text
© - BASE, Inc. PHP AST AST PHP AST Java
Slide 10
Slide 10 text
© - BASE, Inc. + DEMO
Slide 11
Slide 11 text
© - BASE, Inc. AST
Slide 12
Slide 12 text
© - BASE, Inc. AST Abstract Syntax Tree, + -
Slide 13
Slide 13 text
© - BASE, Inc. AST 1 + 2 + 3 AST + +
Slide 14
Slide 14 text
© - BASE, Inc. AST + + PlusOp PlusOp::left PlusOp::right Number Number Number PlusOp
Slide 15
Slide 15 text
© - BASE, Inc. AST + PlusOp PlusOp::left PlusOp::right Number Number
Slide 16
Slide 16 text
© - BASE, Inc. AST Number
Slide 17
Slide 17 text
© - BASE, Inc.
Slide 18
Slide 18 text
© - BASE, Inc. (PHP, Perl, Python, etc) Lexical Analyzer ( , ) Lexer
Slide 19
Slide 19 text
© - BASE, Inc. 1 + 2 + 3 Value Label Means Number Whitespace + Plus Whitespace Number Whitespace + Plus Whitespace Number
Slide 20
Slide 20 text
© - BASE, Inc. PHP Value Label Means T_LNUMBER T_WHITESPACE + - ( ) Whitespace T_LNUMBER T_WHITESPACE + - ( ) T_WHITESPACE T_LNUMBER
Slide 21
Slide 21 text
© - BASE, Inc. PHP AST
Slide 22
Slide 22 text
© - BASE, Inc. PHP AST
Slide 23
Slide 23 text
© - BASE, Inc. PHP AST AST PHP AST
Slide 24
Slide 24 text
© - BASE, Inc. PHP AST AST PHP AST
Slide 25
Slide 25 text
© - BASE, Inc.
Slide 26
Slide 26 text
© - BASE, Inc. AST
Slide 27
Slide 27 text
© - BASE, Inc. composer require nikic/php-parser
Slide 28
Slide 28 text
© - BASE, Inc. PHP AST
Slide 29
Slide 29 text
© - BASE, Inc. PHP AST
Slide 30
Slide 30 text
© - BASE, Inc. PHP AST T_ECHO T_LNUMBER T_LNUMBER T_LNUMBER
Slide 31
Slide 31 text
© - BASE, Inc. PHP AST ZEND_AST_BINARY_OP ZEND_AST_BINARY_OP
Slide 32
Slide 32 text
© - BASE, Inc. PHP AST Echo_ (Stmt) Plus (BinaryOp) Plus (BinaryOp) (LNumber) (LNumber) (LNumber) left right left right expressions ( ) (*1) (* ) PHP echo , print ,
Slide 33
Slide 33 text
© - BASE, Inc. PHP AST Echo_ (Stmt) Plus (BinaryOp) Plus (BinaryOp) (LNumber) (LNumber) (LNumber) left right left right expressions ( ) (*1) (* ) PHP echo , print ,
Slide 34
Slide 34 text
© - BASE, Inc.
Slide 35
Slide 35 text
© - BASE, Inc.
Slide 36
Slide 36 text
© - BASE, Inc. PHP AST Java
Slide 37
Slide 37 text
© - BASE, Inc. Java
Slide 38
Slide 38 text
© - BASE, Inc.
Slide 39
Slide 39 text
© - BASE, Inc.
Slide 40
Slide 40 text
© - BASE, Inc.
Slide 41
Slide 41 text
© - BASE, Inc. Java 1 + 2 + 3
Slide 42
Slide 42 text
© - BASE, Inc. Java 1 + 2 + 3 1 2 2 (3 ) 2 (6 ) 3 iconst_ iconst_ iadd iconst_ iadd
Slide 43
Slide 43 text
© - BASE, Inc. PHP
Slide 44
Slide 44 text
© - BASE, Inc. PHP Java PHP AST Java PHP echo System.out.println
Slide 45
Slide 45 text
© - BASE, Inc. PHP Java Plus (BinaryOp) Plus (BinaryOp) (LNumber) (LNumber) (LNumber) left right left right PHP AST
Slide 46
Slide 46 text
© - BASE, Inc. PHP Java Plus (BinaryOp) Plus (BinaryOp) (LNumber) left right left right iconst_ iconst_
Slide 47
Slide 47 text
© - BASE, Inc. PHP Java Plus (BinaryOp) (LNumber) left right iconst_ iconst_ iadd left right
Slide 48
Slide 48 text
© - BASE, Inc. PHP Java Plus (BinaryOp) left right iconst_ iconst_ iadd left right iconst_
Slide 49
Slide 49 text
© - BASE, Inc. PHP Java iconst_ iconst_ iadd left right iconst_ iadd left right
Slide 50
Slide 50 text
© - BASE, Inc. PHP Java Java iconst_ iconst_ iadd iconst_ iadd
Slide 51
Slide 51 text
© - BASE, Inc. PHP Java
Slide 52
Slide 52 text
© - BASE, Inc. DEMO
Slide 53
Slide 53 text
© - BASE, Inc. php-java Java PHP Java PHP https://github.com/php-java/php-java
Slide 54
Slide 54 text
© - BASE, Inc.
Slide 55
Slide 55 text
© - BASE, Inc.
Slide 56
Slide 56 text
© - BASE, Inc.
Slide 57
Slide 57 text
© - BASE, Inc. PHP Java (^o^)
Slide 58
Slide 58 text
© - BASE, Inc.