- Introduction
- Overview
- Thank you to my sponsors
- Parrot
- What is Parrot?
- Parrot languages (various stages)
- Key Parrot Goals
- Parrot status
- Parrot under the hood
- Basic opcodes (PASM)
- Parrot Magic Cookies (PMCs)
- Some Parrot built-in PMC types
- PIR - Parrot Intermediate Representation
- PIR
- Dynamic compilation
- Parrot Compiler Toolkit
- Parrot Compiler Toolkit
- Basic compilation overview, July 2008
- Basic compilation overview, July 2008
- Basic compilation overview, July 2008
- Basic compilation overview, July 2008
- What the compiler writer needs to create
- Compiler creation in Parrot
- Parrot compiler shell
- What is "parsing"?
- Perl 6 regular expressions (PGE)
- Parse grammars in PGE
- Parse grammars in PGE
- Another example
- calc example - grammar
- calc example -- test parsing
- HLLCompiler class
- Basic HLLCompiler invocation
- Parrot Abstract Syntax Tree (PAST)
- Converting parse tree to PAST
- Example: if_stmt
- Example: if_stmt (cont'd)
- Example: if_stmt (cont'd)
- Example: if_stmt (cont'd)
- Example: if_stmt (cont'd)
- calc example -- adding actions
- calc example -- adding actions
- calc example -- src/parser/actions.pm
- calc example -- PAST output
- calc example -- as PIR!
- calc example -- as executable!
- More complete example (time permitting)
- Operator precedence
- Bottom-up parsing in PCT
- Defining a bottom-up parser
- Defining a bottom-up parser
- Adding a new operator to the parser
- Adding a new operator to the parser
- Syntactic categories
- Operator traits
- Defining an operation
- Defining an operation, cont'd
- NQP
- NQP: Not
- NQP: Not Quite
- NQP: Not Quite Perl
- Not Quite Perl (NQP)
- Review
- Effectiveness of Parrot Compiler Toolkit
- Effectiveness of Parrot Compiler Toolkit
- Parrot performance
- Documentation and more information
- Next steps
- How to get Parrot
- Conclusions
- PAST:Op nodes
- PAST::Val nodes
- PAST::Var nodes
- PAST::Block nodes
- PMC opcodes