wlrush@water.waterloo.edu (Wenchantress Wench Wendall) (05/05/89)
DEPARTMENT OF COMPUTER SCIENCE
UNIVERSITY OF WATERLOO
SEMINAR ACTIVITIES
PROGRAMMING LANGUAGES SEMINAR
-Monday, May 8, 1989
Mr. Richard Stroobosscher, a graduate student of the
Dept. of Computer Science, University of Waterloo, will
do a Master's Essay Presentation on ``Light Weight
Processes in a Shared Memory Multiple Processor
Environment.''
TIME: 1:30 p.m.
ROOM: DC 1304
ABSTRACT
Light-weight processes are a mechanism for expressing
medium-grain concurrency. When the cost of
manipulating light-weight processes approaches the cost
of manipulating procedures, they become a viable
alternative to procedures. Light-weight processes have
the added benefit of being able to take advantage of
any parallelism in the hardware on which they are
implemented.
This talk discusses an engineering exercise in the
implementation of light-weight processes for the C
programming language. The light-weight processes are
provided through a library of functions called the
uSystem.
The uSystem is designed to be portable across various
flavours of the UNIX operating system. On single
processor machines, the uSystem time-slices light-
weight processes, but on multiple processor machines,
the uSystem executes light-weight processes in
parallel.
The single processor uSystem is implemented on various
VAXen, Sun 68020s, a Symmetry 80386 and two MIPS
processors. The uSystem is capable of passing 16 byte
messages between processes at 120 microseconds on some
of these machines. The multiple processor uSystem is
implemented on a Symmetry with 6 80386 processors.
Program execution has shown linear improvement with the
addition of more processors.wlrush@water.waterloo.edu (Wenchantress Wench Wendall) (06/22/89)
Glasgow, Scotland, will speak on
``Some Thoughts on the Algebraic Theory of Concurrent Process.''
DEPARTMENT OF COMPUTER SCIENCE
UNIVERSITY OF WATERLOO
SEMINAR ACTIVITIES
PROGRAMMING LANGUAGES SEMINAR
-Thursday, June 29, 1989
Professor Faron Moller, University of Strathclyde,
Glasgow, Scotland, will speak on "Some Thoughts on the
Algebraic Theory of Concurrent Process."
TIME: 3:30 p.m.
ROOM: DC 1302
ABSTRACT
In this talk, we consider several aspects of the
mathematical foundations of processes algebras.
Starting from the basic notion of finite automata and
regular expressions, we introduce parallelism (in the
form of the so-called shuffle operator), and discuss
some results and conjectures on the existence and
uniqueness of the decompositions of machines.
Next, we argue for a tightening of the semantics of
finite automata, and move from a discussion of trace
equivalence to the more restrictive notion of
bisimulation equivalence. We ask the same questions on
decomposability, and find ourselves able to prove more
here than in the language equivalence case.
We then consider properties of equational
axiomatisations for our equivalence and show that no
finite characterisation can exist. We extend our result
to cover all reasonable notions of equivalence, and use
this as an explanation to the difficulty faced in
trying to find algebraic characterisations of sensible
noninterleaving semantic equivalences.wlrush@water.waterloo.edu (Wenchantress Wench Wendall) (10/26/89)
DEPARTMENT OF COMPUTER SCIENCE
UNIVERSITY OF WATERLOO
SEMINAR ACTIVITIES
PROGRAMMING LANGUAGES SEMINAR
-Friday, November 3, 1989
Professor R.A. Frost, School of Computer Science, University
of Windsor will speak on ``Use of Algebraic
Identities in the Calculation of Programs Constructed as
Executable Specifications of Attribute Grammars.''
TIME: 1:30 p.m.
ROOM: DC 1304
ABSTRACT
There is a growing interest in the notion that programs can
be `calculated' by transforming executable specifications to
more efficient provably equivalent forms using algebraic
identities. Such calculation is facilitated if the
executable specifications are variable-free and have no
explicit recursion. This can be achieved by expressing
specifications as compositions of higher order functions
which capture common patterns of computation. These
specifications can then be transformed using algebraic
identities that have been proven for the higher order
functions. In this seminar we describe how this approach can
be used in the calculation of programs constructed as
executable specifications of attribute grammars. Programs
are regarded as language processors and are calculated using
algebraic identities proven for higher order ``language
processor generators.'' The approach is tolerant of
inaccurate and incomplete initial specifications and is
`environmentally friendly' in that there is little wasted
effort. We give an example showing how a program which
converts arbitrary expressions of propositional logic to
clausal form can be transformed to an efficient theorem
prover for propositional logic; the original executable
attribute grammar uses synthesised attributes only, the more
efficient form uses inherited as well as synthesised
attributed.
The programming environment that we have built may be
thought of as a realization of a suggestion made by Knuth in
1971 that executable attribute grammars might provide a
viable declarative programming language. The integration of
this idea with transformations based on algebraic identities
as suggested by Backus and Bird has been greatly facilitated
by the availability of Turner's higher order, pure, lazy
functional programming language Miranda.* The contribution
-----------
Miranda is a trademark of Research Software Ltd.
- 2 -
of the work described in the seminar is to bring these
things together to form a viable new programming paradigm.wlrush@water.waterloo.edu (Wenchantress Wench Wendall) (02/07/90)
DEPARTMENT OF COMPUTER SCIENCE
UNIVERSITY OF WATERLOO
SEMINAR ACTIVITIES
PROGRAMMING LANGUAGES SEMINAR
-Thursday, February 15, 1990
Laurie Hendren, will speak on ``Parallelizing Programs
with Recursive Data Structures.''
TIME: 3:30 p.m.
ROOM: DC 1304
ABSTRACT
Interference estimation is a useful tool in developing
parallel programs and is a key aspect of automatically
parallelizing sequential programs. Interference
analysis and disambiguation mechanisms for programs
with simple data types and arrays have become a
standard part of parallelizing and vectorizing
compilers. However, efficient and implementable
techniques for interference analysis in the presence of
dynamic data structures have yet to be developed.
We have been addressing the problem of estimating
interference and parallelizing programs in the setting
of an imperative language that supports dynamic data
structures. By focusing on analysis methods for
recursively-defined pointer data structures such as
trees and DAGs, we developed efficient and
implementable interference analysis tools and
parallelization techniques.
In this talk, I will present an overview of the
approach including:
(1) an introduction to the problem,
(2) a description of the interference analysis tools
of the interference analysis tools and
parallelization techniques, and
(3) a summary of some results from experiments on
the BBN Butterfly.