Picotalk is a simple Smalltalk-like programming language and environment implemented in ECMAScript (JavaScript), mainly intended (but not limited) to teaching basic concepts of programming.
Project page at berliOS: https://developer.berlios.de/projects/picotalk/
Picotalk
All data structures (AST, runtime objects) are now pure JSON data structures. This allows easier transport ove
Each AST node is represented by a plain JavaScript object. The type of an AST node is determined by its type property. Legal values are the
| Type | Properties |
|---|---|
| (all) | loc |
| Code | |
| Script | args, stmts |
| Block | args, stmts |
| Method | kind, selector, args, stmts |
| Misc Statements | |
| Temporaries | temps |
| Return | expr |
| Expressions | |
| Assignment | name, expr |
| MessageSend | kind, selector, receiver, args |
| Name | name |
| GlobalName | name |
| Literal | literal |
| Self | - |
| Super | - |
| BraceArray | exprs |
| Primitive | module, method |
Picotalk code is compiled to bytecode. In the current version the generated “bytecode” is just a simple JavaScript array.
| Opcode | Parameters | Description |
|---|---|---|
| NOP | - | Does nothing |
| PUSH_NIL | - | Pushes the nil object onto the stack |