Vesta SDL Programmer's Reference
Introduction
The Vesta System Description Language is a functional
programming language used to define the instructions for the
automated processing of source files through a series of tools
(i.e. building a program from source code). Evaluating a Vesta
SDL program can be thought of as analogous to running make
(although SDL is much more powerful than make's description
language).
This document is a tutorial and reference for the Vesta SDL.
It's intended to make it a little easier for people new to the languag
to get started than the documentation provided in the language
specification.
Sections
-
About the Guide - A little history, and a few
caveats. (It's short, and you should really read it.)
-
Explanatory Dialogues - These sections will take you through certain
aspects of the language and how it is used.
-
Walkthrough - Probably the best place to
start. Gets your feet wet with a few Vesta evaluator models.
-
Bridge Dissection - Look inside a
simple bridge. Both its structure and how it works are described
in detail.
-
Reference - These sections describe the language in detail.
-
Syntax - The basic syntax of the Vesta SDL: Comments,
identifiers, white-space, statement blocks, etc.
-
Data Types - The fundamental data types supported
by the language and how to express more complex aggregate types
-
Expressions and Operators - The basic expressions
and operators
-
Primitive Functions - The built-in primitive
functions
-
Statements - The different types of statements
-
Models - How to write complete models, including
the files and imports clauses
-
Advanced Material - Once you've got the basics down, these will
help you improve your skills.
-
Controlling Cache Behavior - How to make your
models use the cache server appropriately. Anyone writing bridges
should probably read this.
-
Gotchas - If you find yourself scratching your
head, look here. In fact, look here to prevent unnecessary head scratching.
References
The Vesta home page is a good place to start.
There is a much more precise definition of the Vesta System
Description Language provided in the language
specification. (However, this document is intended to be a
bit easier to read than that one, so you should probably start with
this one first.) You may also want to take a look at the man
pages for some of the tools used when working with Vesta models:
-
Run the model evaluator: vesta(1)
-
Determine which other models are imported by a model: vimports(1)
-
Update model imports to their latest versions: vupdate(1)
There are also some man pages which document the conventions used in the
C/C++ bridges developed by the Vesta team. (YMMV,
depending on how closely the bridges you work with follow the same conventions,
but they're worth reading in any case.)
Kenneth C. Schalk
<ken@xorian.net>