flix

0.78.0

Ram

Abstract syntax tree of the relational algebra machine (RAM).

Enums

BoolExp`Not(b)`: True if `b` is false.
RamProgramA `RamProgram` represents a compiled Datalog program.
RamStmt`Insert(body)` executes the RelOp `body`.
RamTermRepresents a Relational Algebra Machine (RAM) term.
RelOp`Search(rv, relSym, relType, body)` iterates through the facts in relation `relSym`, saving them as RowVar `rv` and executes `body`.
RelSym`RelSym(predSym, arity, den)` represents the relation of `predSym` which has arity `arity` and denotation `den`.
RowVar`Named(id)` represents the unique identifier, `id`, of some row variable

Type Aliases

type alias FactTuple = (Facts, Facts)§ Source

FactsTuple consists of (oldFacts, newFacts), where oldFacts are given through joining a model, while newFacts are EDB facts written in the Datalog program.

type alias Facts = Map[RelSym, BPlusTree[Vector[Boxed], Boxed, Static]]§ Source

The extensible database (EDB) of a program.

type alias IndexInformation = (Indexes, IndexPositions)§ Source

The indexes to be created during program evaluation and their positions in memory.

type alias IndexPositions = Map[(RelSym, Int32), Int32]§ Source

Maps a RelSym and its place in Indexes[RelSym] to its final position in memory.

type alias Indexes = Map[RelSym, Vector[Search]]§ Source

Maps to the set of Search for a RelSym in the Datalog program. It represents the indexes that will be created for RelSym during program evaluation.

type alias Predicates = (List[RelSym], List[RelSym], Int64)§ Source

Contains a list of RelSym representing the names of the relations in the program, a list of Full RelSym and 1 + the maximal identifier of the Full RelSyms.

Definitions

def arityOf(relSym: RelSym): Int32§ Source

Returns the arity of relSym.

def arityOfNonLat(relSym: RelSym): Int32§ Source

Returns the arity of the non-lattice part of relSym.

def makeFakeRelSym(predSym: PredSym): RelSym§ Source

Returns a RelSym wrapper of the predSym.

The returned RelSym is equivalent to a 'real' RelSym with respect to the Order on RelSym.

Used for accessing values in maps.

def toDenotation(relSym: RelSym): BoxedDenotation§ Source

Returns the denotation of relSym.

def toId(relSym: RelSym): Int64§ Source

Returns the identifier of relSym.