Strict Standards: Declaration of action_plugin_blog::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /www/htdocs/w00d9226/oliverh.com/lib/plugins/blog/action.php on line 13

Strict Standards: Declaration of action_plugin_discussion::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /www/htdocs/w00d9226/oliverh.com/lib/plugins/discussion/action.php on line 0

Strict Standards: Declaration of action_plugin_importoldchangelog::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /www/htdocs/w00d9226/oliverh.com/lib/plugins/importoldchangelog/action.php on line 0

Deprecated: Function split() is deprecated in /www/htdocs/w00d9226/oliverh.com/inc/auth.php on line 146

Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w00d9226/oliverh.com/lib/plugins/blog/action.php:13) in /www/htdocs/w00d9226/oliverh.com/inc/auth.php on line 236

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /www/htdocs/w00d9226/oliverh.com/inc/auth.php on line 390

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /www/htdocs/w00d9226/oliverh.com/inc/auth.php on line 390

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /www/htdocs/w00d9226/oliverh.com/inc/auth.php on line 387

Strict Standards: Only variables should be passed by reference in /www/htdocs/w00d9226/oliverh.com/doku.php on line 69

Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w00d9226/oliverh.com/lib/plugins/blog/action.php:13) in /www/htdocs/w00d9226/oliverh.com/inc/actions.php on line 359
projects:picotalk-dev
Table of Contents

Picotalk

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 Isn't Smalltalk

Picotalk

Data Structures

All data structures (AST, runtime objects) are now pure JSON data structures. This allows easier transport ove

AST Nodes

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

Bytecode

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

History