Vesta SDL Programmer's Reference
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
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
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
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
Primitive Functions - The built-in primitive
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.
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:
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.)
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)
Kenneth C. Schalk