Borg Examples

Pico Examples

These examples are standard pico programming examples. For a full list of possible natives and their usage, please go to http://pico.vub.ac.be/
Recursive.borg - Some standard recursive functions like factorial and fibonacci.
QuickSort.borg - An illustration how to write a simple quicksort in borg.
BubbleSort.borg - An illustration how to write a simple bubblesort in borg.
MetaPico - An illustration how to write a pico evaluator in Pico.
Unify.borg - A unification operator. Takes two expressions and unifies them partially
AvlTree.borg - An implementation of an AVL Tree (also includes the delete operator !). An example how to use this can be found at AvlTreeDemo.borg


Borg Natives Examples

Display.borg - A test for the display operator
CoreTest - The entry to the core test. These files are made to check the correct working of the borg engine. Note: it is impossible to guarentee a correct working evaluator by just making the evaluator evaluate the CoreTest. Nevertheless, mind-bogling stupid bugs will/should be reported by this test.
Objects.borg - Illustrates how to create objects, how to inherit from them and how borg can be used for dynamic inheritance.
ObjectSieve.borg - Illustrates how we can change the behaviour of an object. In this example the behavioyur of the prime-filters is changed after initialisation.
Serialisation.borg - Explains the ser and deser operators. This example also illustrates how sandboxing can be done.
Persistency.borg - A slightly modified Serialisation example. We now use saveexp and loadexp instead of ser and deser. I'd like to change this example to illustrate how a complete agent can be stored and restored
Socketdemo.borg - A demonstration how to use the borg socket layer.

Borg Libraries

PalmWidgets.borg - The widget library for a Palm Pilot. This library is implemented for kborg and will be implemented for pborg. An example of the library can be found on PalmWidgetsTest.borg

Borg Distributed Programming Examples

JumpingFactorial.borg - The callculation of the factorial of 12, while jumping from one machine to another with the agentmove operator. This is an example of very fine grained migration, and reification of the computational state.
The sieve of Erathostenes - Various examples how to bujild a sieve of erathostenes..
SimpleTimer.borg - An illustration how to write a very simple timer.
AdvancedTimer.borg - An illustration how one agent can offer a set of timers to other agents using the sendmessage primitive.
SystemTimer.borg - An illustration how to use the build in system timer
WhiteBoard - An illustration how to write a whiteboard with disconnect -> continue/wait voting.
WebServer - The Webserver stub for borg applications
Scheduler - The scheduler application is a simple web-interface for some persons to schedule their time. This application exists as an ilustration how to build agents for the web. So beware. This is not the most powerful cyberscheduler. not yet documented
MeetingPlanner - MeetingPlanner application with GUI for KDE/Palm (using the Palm widget library). This application is going to be used as a case in different thesissen.

Bborg Jitcompilation and code generation

madd.borg - How to add a new native to a running borgsystem. Madd is special because is shows type overloading.
absorb.borg - How to use c-code and c-variables in a borg system. This example reifies a c structure.
hello.borg - Another kinky example of how to use c-code and c-variables. Actually this one uses C++ functions and qt. It will add the natives to borg needed to create and resize a qt-button. This example only works kbborg.