com presentations: It's all about the Goto (PHP UK version): jump-phpuk17.xml slides/internals/parse-tokenization.xml

[email protected] (Derick Rethans) Wed, 15 Feb 2017 13:17:59 +0000
Newsgroups php.pres
Message-ID <[email protected]>
Commit:    772faeb61658e0d263b2a839fb1b569e79c97f68
Author:    Derick Rethans <[email protected]>         Wed, 15 Feb 2017 13:17:59 +0000
Parents:   a80264469c84fedfbbc1fd9d00e77e9b6376b627
Branches:  master

Link:       http://git.php.net/?p=presentations.git;a=commitdiff;h=772faeb61658e0d263b2a839fb1b569e79c97f68

Log:
It's all about the Goto (PHP UK version)

Changed paths:
  A  jump-phpuk17.xml
  M  slides/internals/parse-tokenization.xml


Diff:
diff --git a/jump-phpuk17.xml b/jump-phpuk17.xml
new file mode 100644
index 0000000..13f7e27
--- /dev/null
+++ b/jump-phpuk17.xml
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="utf-8"?>
+<presentation css="10gen-strict.css">
+<topic>PHP</topic>
+<title>It's All About the Goto</title>
+<event>PHP UK Conference 2017</event>
+<location>London, UK</location>
+<date>February 16th, 2017</date>
+<speaker>Derick Rethans</speaker>
+<email>[email protected]</email>
+<twitter>derickr</twitter>
+<joindin></joindin>
+
+<slide>slides/mongodb/title.xml</slide>
+<slide>slides/mongodb/me.xml</slide>
+
+<slide>slides/internals/title-agenda.xml</slide>
+
+<slide>slides/internals/title-stages.xml</slide>
+<!-- INTRODUCTION
+Compile stages:
+Parse script
+Create AST
+Convert to opcodes
+Run the code
+Opcache for caching
+-->
+<slide>slides/internals/stages.xml</slide>
+
+<!-- STAGES
+Parse
+- Show parser rules
+- Show "compiler" rules
+-->
+
+<slide>slides/internals/title-parsing.xml</slide>
+<slide>slides/internals/parse-state-machine.xml</slide>
+<slide>slides/internals/parse-tokenization.xml</slide>
+<slide>slides/internals/scanner.xml</slide>
+<slide>slides/internals/scanner-rules.xml</slide>
+<slide>slides/internals/ast.xml</slide>
+<slide>slides/internals/ast1.xml</slide>
+<slide>slides/internals/scanner-ast.xml</slide>
+<slide>slides/internals/scanner-ast2.xml</slide>
+<slide>slides/internals/bytecode0.xml</slide>
+<slide>slides/internals/bytecode½.xml</slide>
+<slide>slides/internals/bytecode1.xml</slide>
+
+<slide>slides/internals/jumps.xml</slide>
+
+<!--
+AST
+- Show AST for various control structures
+
+Opcodes
+- Show AST for the same control structures
+-->
+
+<slide>slides/internals/jumps-if.xml</slide>
+<slide>slides/internals/jumps-if-else.xml</slide>
+
+<slide>slides/internals/rings.xml</slide>
+<slide>slides/internals/jumps-for.xml</slide>
+<slide>slides/internals/jumps-for-rewritten.xml</slide>
+<slide>slides/internals/jumps-while.xml</slide>
+<slide>slides/internals/jumps-do-while.xml</slide>
+<slide>slides/internals/jumps-foreach.xml</slide>
+<slide>slides/internals/jumps-complex.xml</slide>
+<slide>slides/internals/loops.xml</slide>
+<slide>slides/internals/jumps-complex-dot.xml</slide>
+
+<!--
+Try/Catch nonsense
+- FASTCALL/FASTRET
+-->
+<slide>slides/internals/catch.xml</slide>
+<slide>slides/internals/jumps-try-catch.xml</slide>
+
+<!--
+Dead code analysis
+- Show how Xdebug does it through VLD
+-->
+<slide>slides/internals/deadcode.xml</slide>
+<slide>slides/internals/deadcode-vld.xml</slide>
+
+<!--
+Path analysis
+- Branch and Path
+-->
+<slide>slides/internals/branches.xml</slide>
+<slide>slides/xdebug/vld-path-2-paths.xml</slide>
+<slide>slides/xdebug/vld-path-4-code.xml</slide>
+<slide>slides/xdebug/vld-path-4-output.xml</slide>
+
+<slide>slides/xdebug/vld-path-3-code.xml</slide>
+<slide>slides/xdebug/vld-path-3-output.xml</slide>
+<slide>slides/xdebug/vld-path-3-paths.xml</slide>
+
+<!-- Conclusion
+
+Code -> Tokens -> AST -> opode
+
+Transformation of control structures
+
+Useful implementations 
+
+-->
+<slide>slides/internals/recap.xml</slide>
+<slide>slides/internals/recap-content.xml</slide>
+
+
+
+<slide>slides/mongodb/questions.xml</slide>
+
+<slide>slides/mongodb/resources.xml</slide>
+
+</presentation>
diff --git a/slides/internals/parse-tokenization.xml b/slides/internals/parse-tokenization.xml
index ac5b2a1..32db509 100644
--- a/slides/internals/parse-tokenization.xml
+++ b/slides/internals/parse-tokenization.xml
@@ -35,8 +35,8 @@ class Whisky
         $this->name = $name;␃]]></example>
 <blurb>In tokens:</blurb>
 <example inline="1"><![CDATA[*T_OPEN_TAG* &lt;?php
-*T_NAMESPACE* |777777|T_WS| *T_NS_SEPARATOR* *T_STRING* DramIO ; |777777|T_WS| 
-*T_CLASS* |777777|T_WS| *T_NS_SEPARATOR* *T_STRING* Whisky |777777|T_WS|
+*T_NAMESPACE* |777777|T_WS| *T_STRING* DramIO ; |777777|T_WS| 
+*T_CLASS* |777777|T_WS| *T_STRING* Whisky |777777|T_WS|
 { |777777|T_WS| 
     *T_PRIVATE* |777777|T_WS| *T_VARIABLE* $name ; |777777|T_WS|