Skip to content

Commit 3d194fd

Browse files
committed
presentation update
1 parent 6d8bb5b commit 3d194fd

2 files changed

Lines changed: 10 additions & 11 deletions

File tree

dev/presentations/German_Perl_Raku_Workshop_2026/slides-part1-intro.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ JSR-223 is the standard Java scripting API, available since Java 6. It allows bi
7070

7171
**`perlonjava-5.42.0.jar`** — 25 MB, zero external dependencies
7272

73-
```
73+
```text
7474
perlonjava.jar
7575
├── org/perlonjava/ ← 392 Java compiled classes
7676
├── lib/ ← 341 Perl modules (DBI, JSON, HTTP::Tiny…)
@@ -201,7 +201,7 @@ Supports PostgreSQL, MySQL, Oracle, SQLite, H2 — any JDBC driver.
201201

202202
`my $x = 1 + 2` becomes:
203203

204-
```
204+
```text
205205
assignment → addition → operands
206206
```
207207

@@ -222,7 +222,7 @@ PerlOnJava emits bytecode directly via the **ASM library** — no Java source in
222222

223223
## The Compilation Pipeline
224224

225-
```
225+
```text
226226
Perl Source → Lexer → Parser → Syntax Tree → JVM Bytecode → JVM Execution
227227
↘ Custom Bytecode → Internal VM
228228
```
@@ -248,7 +248,7 @@ The dual backend is a common VM design pattern. HotSpot, V8, SpiderMonkey, and C
248248
**Perl:** `my $x = 10; say $x`
249249

250250
**Generated JVM bytecode** (`./jperl --disassemble`):
251-
```
251+
```text
252252
LDC 10
253253
INVOKESTATIC RuntimeScalarCache.getScalarInt(I)
254254
ASTORE 7
@@ -274,7 +274,7 @@ Standard JVM bytecode — optimized by the JVM's JIT compiler at runtime.
274274
**Same Perl:** `my $x = 10; say $x`
275275

276276
**Generated Internal VM bytecode** (`./jperl --interpreter --disassemble`):
277-
```
277+
```text
278278
Registers: 9
279279
Bytecode length: 26 shorts
280280

dev/presentations/German_Perl_Raku_Workshop_2026/slides-part2-technical.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ German Perl/Raku Workshop 2026 — Flavio Glock
1717
## Compilation Approaches
1818

1919
**Perl 5 (traditional):**
20-
```
20+
```text
2121
Perl Source → Lexer → Parser → OP Tree → Optimizer → Execution
2222
```
2323

2424
**PerlOnJava (dual backend):**
25-
```
25+
```text
2626
Perl Source → Lexer → Parser → Syntax Tree → JVM Bytecode → JVM Execution
2727
↘ Custom Bytecode → Internal VM
2828
```
@@ -63,8 +63,7 @@ Perl limits identifiers to 251 code points; ICU4J handles code points rather tha
6363
- Operator precedence, associativity, ternary, method calls
6464

6565
3. **Operator-specific parsers** (20+ specialized)
66-
- `StringParser`, `PackParser`, `SprintfFormatParser`
67-
- `NumberParser`, `IdentifierParser`, `SignatureParser`
66+
- `StringParser`, `PackParser`, `SignatureParser`
6867

6968
Modular AST: `BlockNode`, `BinaryOperatorNode`, `ListNode` — easy to extend.
7069

@@ -148,7 +147,7 @@ my $msg = "Hello $name!\n";
148147
```
149148

150149
**Generated AST** (from `./jperl --parse`):
151-
```
150+
```text
152151
BinaryOperatorNode: =
153152
OperatorNode: my
154153
OperatorNode: $
@@ -583,7 +582,7 @@ Also: globalIORefs → IO, globalFormatRefs → FORMAT. Slot access: *foo{CODE}
583582
`require` converts `Module::Name``Module/Name.pm`, searches `@INC`, caches in `%INC`.
584583

585584
**300+ modules bundled inside the JAR:**
586-
```
585+
```text
587586
%INC: 'Data/Dumper.pm' =>
588587
'file:/path/to/perlonjava.jar!/lib/Data/Dumper.pm'
589588
```

0 commit comments

Comments
 (0)