The Fabl Manual
Function Index
Class Index
Globals Index
Libraries
Contents

Title Page
Introduction
Sample Code
Architecture
Syntax
Strong Typing
Polymorphism
Operators
Help
Errors
Configuration
RDF
Namespaces
Owl
Datatypes
Resources
Dot ops
Coercion
Type Casting
nil

Types
string
id
int
double
boolean
Literal
Containers
Functions
void

Home
Regarding
The Path
Classes
Delegation
Functional Values
Read/Write
Load/Store
Libraries
Imports
CGI
Architecture

The Fabl implementation consists of a kernel written in C, and of a body of code written in Fabl itself, and stored in Fabl's binary RDF format. Storage management, basic triple-store manipulation, and the virtual machine are implemented in C, while the scanner, parser, type analyzer, and assembler are in Fabl. The various utilities that make up the language core are parceled between C and Fabl based on considerations of efficiency and ease of bootstrapping.

Since Fabl is self-implemented in large degree, it provides a substantial test suite for its own functionality (that is, "Fabl is its own dog food").

Fabl makes use of the Raptor RDF Parser Toolkit for parsing RDF in the traditional XML and N-triple formats. Raptor is mature, so the parsing itself can be expected to be robust, but the use of Fabl to manipulate RDF derived from conventional syntax has only been lightly tested.

Two additional documents about Fabl are planned:

The Fabl Meta Manual will describe Fabl's representation of code as RDF, the utilities available for manipulation code in this representation, and Fabl's self-implementation. Basic information about this topic is available in the paper Describing Computation within RDF.

The Fabl Kernel Description will cover the portion of Fabl implemented in C.

In addition, another mode of operation is planned for Fabl beyond the current interactive and cgi handler modes. Fabl will be configurable as a persistent triple-store, using the Prevayler approach.