********************************************************************************

                                 -  P E B L  -  

  P S Y C H O L O G Y   E X P E R I M E N T   B U I L D I N G   L A N G U A G E            

                          D E S I G N    N O T E S
********************************************************************************

(c) 2003 Shane T. Mueller, Ph.D.


1.0  ABOUT

PEBL is a special-purpose programming language and execution
environment for creating typical psychology experiments. Its goals are
to have a simple syntax that is accessible to programming amateurs,
yet powerful enough for exerts. It aims to be cross-platform,
real-time, and have a large library of functions specially designed to
assist in experiment design. Its cross-platform nature is intended to
extend into even virtual environments, to allow for computational
models to perform the same experiment human subjects do. 



2.0  BASIC DESIGN

A PEBL program is processed by a number of major components. First, a
LEXER analyzes the source code, determining what each symbol
represents.  It sends this information on to the PARSER, which
converts (i.e., compiles) these symbols into a tree of nodes that
represent the program.  Next, the LOADER processes this node tree,
performing several major roles.  The loader identifies all
user-defined functions, and loads them into a special table in memory.
Then, it identifies all function calls, and locates the function
associated with the function call (either a user-defined function or
one from a built-in library.)  The loader also performs certain checks
to determine whether the program is correct.  Finally, the EVALUATOR
executes the parsed node trees to produce the running program.



2.1 THE LEXER

2.2 THE PARSER

2.3 THE LOADER

2.4 THE EVALUATOR





3.0 LANGUAGE SYNTAX


4.0 DATA TYPES





5.0  OBJECTS






6.0  FUNCTIONS

There are two types of functions that can be used by PEBL:
User-defined and built-in.




7.0  EXTENSION