- Location Transparant Routing Mechanism
- Strong mobility
- Build in synchronisation primitives
- A computational model suitable for wide area networks
- Garbage Collection
- Transparant Serialisation of almost every possible expression
- ... and much more ...
Borg itself is started from an existing virtual machine called Pico (written by Theo D'Hondt) which features open semantics. Pico is accessible via an extremely simple language yet its expressiveness is very high, comparable to e.g. Scheme. Pico semantics are defined by a set of nine evaluation functions that are supported by a storage model and a computational model. The storage model features full storage management and reclamation; the computational model is based on a pushdown automaton that manages expressions and continuations on a double stack. Continuations, inspired by continuation passing style, are thunks that are sequenced in order to support computation. Pico requires less than twenty continuations to implement the complete semantics of the language.
0.3 -> 0.4 - OK, the borg core is totally rewritten... - Finally a logwindow... (which you can close, but can't open :) 0.4 -> 2.0 - Borg core completely rewritten 2.0 -> 2.1 - Case incorporated - Changed About box - Started with adding test programs - Busy flag in CONTINUE gestoken zodat cborg niet concurrent met zijn eigen runt - BootFiles der weer bijgestoken en ze laden toch al - extentie .cborg er bij ingestoken - load primitive fixed (was a small disaster) 2.1 -> 2.2 - errors reporting in cborgcore opgenomen - accept laten werken - coretest uitgebreid met test voor een aantal interactieprimitieven - multi line syntax coloring introduced - Bracketmatching - AutoBracketClose - Autosave - Errorbracket - Started with writing a gdb alike debugger for pico programs 2.2 -> 2.3 - Theos new garbage collector incorporated - dictionary model completely rewritten - serialisator rewritten 2.3 -> 2.4 - Johans deborg incorporated 2.4 -> 2.5 - Changed directory structure to support multiple user interfaces - Added Karstens/Dirks tborg - Modified core to support a bootstrap kernel and a borg2c compiled kernel 2.5 -> 2.6 - Changed load primitive to push and pop current directories - Configuration files are looked up in ./ ./config and ../config - Tackled some K user interface problems - Dirks serialiser incorporated - Karstens new tborg added - Added a bborgcore directory which contains a start of the metacircular version. - A small explanation about the router config files 2.6 -> 2.7 - changed structure of makefiles - removed configure, libtool, automoc and other way over the top tools - changed agent data structure for faster access and less store/restores - removed remote dictionaries. Everything are now references - fixed dictionary bug which caused cborg to slow down after a while - fixed distribution between user interface and actual agent - fixed bug in tcborg (input bug) - removed compiler warnings in reader (default: cases) 2.7 -> 2.8 - removed some small bugs from the serializer - completely rewrite of the router (nameserver only at the moment) - added webbrowser interface - added papers/thesis - added eerste versie windows user interface (gerecyclede oude versie die nu blijkbaar bizonder veel crashed) - added structured documentation and automatic web site updating - added wendy makefiles (moet nog in documentation komen) 2.8 -> 2.9 - Makefiles aangepast. compiletime x 2 + enkel hercompileren wat nodig - Added Objects.borg example + coloring van examples - Added Recursive.borg example - Added Serialisation.borg example - Fixed a number of eveluator bugs. (wrong error messages, wrong garbage collects and so on) - Fixed the creation of agents and added serialisation and deserialisation natives - Added the JumpingSieve.borg example - Changed the ':' prompt for the windows user interface to a back-quote. - Added Persistency.borg example (not yet that good) - Added ObjectSieve.borg example (chaning behaviour of methods) - Lex/Yacc pico parser toegveogd - display native gerudceerd tot printen van text. - missging LastBracket initialisation added. 2.9 -> 3.0 - changed Interfacing. More pico code/less C-code - added cross-referencer - added halstead metric - fixed a number of memory-claim errors - fixed CLK mem_claim bug - added 2 examples: SimpleTimer.borg/AdvancedTimer.borg - added a whiteboard example - tborg_history toegevoegd - tailrecursion toegevoegd in IF structure - de mogelijkheid is er nu variabelen globaal te definieren. - borg-parser toegevoegd, zonder veranderingen op de moment. pico parser in gebruik genomen - coretest, metapico en andere fancy ding en verhuist naar de examples directory - external laten werken via ui_call - bison.thunked pico parser removed. Not good enough - removed theos scanner en reader. - removed hborg (replaced by WebServer example)