[ont.events] PROGRAMMING LANGUAGES SEMINAR

wlrush@water.waterloo.edu (Wenchantress Wench Wendall) (04/17/89)

DEPARTMENT OF COMPUTER SCIENCE
UNIVERSITY OF WATERLOO
SEMINAR ACTIVITIES



PROGRAMMING LANGUAGES SEMINAR

                    -Thursday, April 20, 1989

Mr.  Scott  Vorthmann, of the School of Information and
Computer   Science   at   the   Georgia   Institute  of
Technology,   will  speak  on  "Syntax-Directed  Editor
Support for Incremental Consistency Maintenance."


TIME:        3:30 PM

ROOM:        DC 1302

ABSTRACT

The   technology   of  syntax-directed  editors  offers
characteristics which are ideally suited to the task of
incremental  consistency  maintenance.   In particular,
the   use  of  attribute  grammars  to  provide  static
semantic  analysis  has several specific advantages:  a
fine  granularity  of processing, a fine granularity of
dependencies  to  direct  that  processing,  caching of
derived  data,  and  algorithms  which update that data
with  a minimal amount of processing.  However, several
shortcomings  of  this  approach  have been identified.
The  described  research  addresses  these shortcomings
with  extensions  to  the technology of syntax-directed
editor generation.

The  principal  extension  is  the addition of a naming
layer  to  the  editor kernel architecture.  The naming
layer  supplements  the  tree structure provided by the
syntax with non-local references (from identifier usage
sites  to  declaration  sites),  presenting a directed-
graph  as  the  structure  now underlying the attribute
propagation.   Naturally,  the  naming  layer  must map
certain    syntactic   modifications   to   appropriate
adjustments  to  this binding graph, and must produce a
unique state of the binding graph for a given syntactic
state.

The  behaviour  of the naming layer with respect to the
syntactic  and attribute grammar layers is specified by
a  Naming Specification Language, which is simply a set
of   extensions   to   an  existing  attribute  grammar
notation.    NSL   supports  the  designation  of  name
declaration  and  reference  sites,  the designation of
productions  that  embody  scopes, and specification of
visibility   of  names  between  related  scopes.   The
visibility  mechanisms  provided  by  NSL  are its most
important features.

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.