Specification of the Dyna Language

Introduction

What is Dyna?

Intended users

Key features

Relation to other work

How to read this specification

Organization

Notation

User comments

Coloring and formatting conventions

Cross-refs

Notifications

Glossary/Index

Terms (i.e., ground terms)

Overview

Primitive terms

Booleans

Numbers

Strings

Escape codes

Blobs

Compound terms

Functors

Single quotes

Positional arguments

Operator syntax

Keyword arguments

List syntax

Reserved functors

$ convention
$error
$null

Dynabases

Full discussion in Frozen terms.

Frozen terms

Full discussion in Dynabases.

Patterns (i.e., non-ground terms)

Variables

Variable names

Underscores

Non-ground terms

Types

Type declarations

Typed variables

Co-inductive types

Possible future extensions

Guarded types? Nonlinear types? Parametric types?

Type coercion

Unification

Frozen terms

Dynabases

Overview

Items

Null items

Syntax for items

Brackets vs. parentheses

Quoting items with &

Evaluating terms with *

Queries

Simple queries

Complex queries

Expressions

Aggregating queries

Accessors

Query modes

Some discussion of current approach is in Pragmas.

Lambdas

Terms as dynabases

Updates

Update modes

Stability

Dynabase types

Extensions

Const declaration

Snapshots

Inspecting and modifying dynabases

Abstract API

Command line interface

Graphical interface

Programming interface

Dyna programs

Programs

File format

Rules

Definition

Aggregation

Semantics

Cycles
Errors

See discussion of current implementation in When Things Go Wrong.

Head destructuring

Dynabase literals

Syntax

Ownership

Semantics

Declarations

Some documentation of currently implemented declarations is in Pragmas.

Type declarations

Evaluation declarations

There is currently some documentation in Syntax.

Default arguments

Visibility declarations

Const

Import

Syntax declarations

Declaring new aggregators

Scripting commands

Include

Foreign function interface

Concrete syntax

Overview

Standard syntactic sugar

Default syntax table

Changing the syntax table

Printing

Readable printing

Prettyprinting

Standard library

There is currently some documentation in Builtins.

Generic operators and aggregators

Boolean operators and aggregators

Numeric operators and aggregators

Randomness

String operators and aggregators

Array operators and aggregators

Set operators and aggregators

Graph operators and aggregators

Other standard encodings

Inspecting program execution

$rule

Voodoo items

Reflection on types, modes, cost estimates, cardinality estimates, plans, etc.

Controlling program execution

Storage classes

Priorities

Query costs and plans

Features for learning

Foreign dynabases

Files

Processes

Sockets

Servers

Appendices

Project Versions

Table Of Contents

Previous topic

Builtins

Next topic

Dyna Glossary

This Page