Files
archived-presentations/php-tek23.xml
2023-05-12 18:00:43 +01:00

109 lines
3.2 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<presentation css="derick.css">
<topic>PHP</topic>
<title>PHP Internals Deep Dive</title>
<event>php[tek] 2023</event>
<location>Chicago, IL, USA</location>
<date>May 16h, 2023</date>
<speaker>Derick Rethans</speaker>
<email>derick@php.net</email>
<twitter>derickr</twitter>
<mastodon>@derickr@phpc.social</mastodon>
<url>https://derickrethans.nl/talks/php-tek23</url>
<joindin>https://joind.in/29096</joindin>
<slide>slides/xdebug/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/collection-syntax-example.xml</slide>
<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/collection-add-token.xml</slide>
<slide>slides/internals/scanner.xml</slide>
<slide>slides/internals/scanner-rules.xml</slide>
<slide>slides/internals/collection-add-parser-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/collection-add-ast.xml</slide>
<slide>slides/internals/collection-add-ast-type-check.xml</slide>
<slide>slides/internals/collection-add-ast-clean-up.xml</slide>
<slide>slides/internals/collection-add-init-and-property.xml</slide>
<slide>slides/internals/collection-hook-init-and-property.xml</slide>
<slide>slides/internals/collection-add-interface.xml</slide>
<slide>slides/internals/collection-add-interface-handlers.xml</slide>
<slide>slides/internals/collection-setup-interface-handlers.xml</slide>
<slide>slides/internals/collection-add-add-handler.xml</slide>
<slide>slides/internals/collection-add-add-handler-implementation.xml</slide>
<slide>slides/internals/collection-add-add-handler-implementation2.xml</slide>
<slide>slides/internals/collection-make-check-type-public.xml</slide>
<slide>slides/internals/collection-add-read-handler.xml</slide>
<slide>slides/internals/collection-add-read-handler2.xml</slide>
<slide>slides/internals/collection-add-has-handler.xml</slide>
<slide>slides/internals/collection-add-unset-handler.xml</slide>
<slide>slides/internals/bytecode0.xml</slide>
<slide>slides/internals/bytecode½.xml</slide>
<slide>slides/internals/bytecode1.xml</slide>
<!--
AST
- Show AST for various control structures
Opcodes
- Show AST for the same control structures
-->
<slide>slides/internals/jumps-for.xml</slide>
<slide>slides/internals/jumps-for-rewritten.xml</slide>
<slide>slides/internals/jumps-complex-dot.xml</slide>
<!-- Conclusion
Code -> Tokens -> AST -> opcode
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/xdebug/phpinternalsnews.xml</slide>
<slide>slides/mongodb/resources.xml</slide>
</presentation>