In the first tutorial, a small network in which a calculator -possibly in a separate process- serves several clients, we introduce the essentiel of Sophtalk funcitonalities. In the second tutorial, a news network, we concentrate on design aspects and illustrate traps to be avoided.
Sisal is a strongly typed, applicative, single assignment language in use on a variety of parallel processors, including conventional multiprocessors, vector machines and data-flow machines.
The motivations of our work are, with a formal semantic description of Sisal, to provide a firm foundation for understanding and evaluating language design issues, aid the elimination of ambiguities in the language, provide a valuable reference for both implementors and programmers, and facilitate comparison of Sisal with other parallel functional languages. At the same time, Centaur specifications automatically yield a structure editor and an interpreter for Sisal, which can be developed into an interactive environment for Sisal programming. Also, Centaur permits us to develop animation tools to show the evaluation process.
Besides classical dynamic semantic aspects of functional programming languages such as the absence of side-effects and aliasing, the notion of referential transparency, and higher-order functions, we have characterized specific semantic aspects of the Sisal language such as arrays, infinite streams, sequential and parallel loops (with reduction and masking operators).
From this semantic definition, we intend to formally define program transformations, particularly parallelizations. We will use the two graph-oriented intermediate formats IF1 and IF2 currently used in Sisal implementations; IF1 expresses data dependencies while IF2 is more memory-oriented. We aim at specifying the semantics of both intermediate forms, and the translation from Sisal into IF1 and IF2. Our ultimate goal is to formally describe (prove and extend) parallelization techniques and algorithms for Sisal compilation, and to incorporate such techniques into a program development and visualization environment for Sisal programming.
From the formal specifications of the logical and physical structures of the Article document class, and a formal specification of varied tools such as layout processing and document queries, the Centaur system automatically generates a document manipulation system including a structured editor for Articles, a format converter between LaTeX and Tioga, a previewer displaying Articles in their layout form as well as management tools over a set of Articles.
For this subclass of Natural Semantics specifications, the Minotaur system automatically generates an incremental and efficient (in time and memory) evaluator which gives to Natural Semantics an industrial strength implementation.