SAC-home.org

Home
-News
-About
-Research
-Documentation
-Download
-Support
-Workshops
 -May 2010
 -March 2010
 -April 2008
 -June 2007
 -June 2006
 -November 2004
 -September 2004
 -February 2004
 -January 2003
 -March 2002
-Internal
 

June 2007

DevCon-6 logo

6th SaC Developers' Conference (DevCon-6)

June 4-6, 2007

University of Hertfordshire
School of Computer Science
Hatfield, Herts
United Kingdom

Directions

All meetings take place in room D102, College Lane Campus. For further directions, see the campus map and the general travel directions for the University of Hertfordshire.


Registration

Please note that the SaC Developers' Conference is an invitation-only workshop. If you have not been invited but wish to participate, please do contact this year's workshop chair Stephan Herhut.

Accommodation

Conference Hertfordshire offers Bed & Breakfast, conveniently located on the deHavilland campus. From there, the workshop location can be reached in 5 minutes using a frequent and free shuttle-bus service. The University B'n'B is now fully booked.

Travellodge Hatfield Central offers budget en-suite rooms starting at 39£ a night. It is located close to deHavilland Campus.

Premier Travel Inn Hatfield offers rooms starting at 49£. Being a bit further towards the town centre, it is still only a short travel from the workshop location.


Programme

The programme of this year's SaC Developers' Conference can be found below. Please note that coffee breaks and time for discussions are implicit. Therefore, please allow at least 1/4 of your scheduled time for discussion.

Monday, 4th of June 2007

13:00 - 14:30

The Untyped Array Calculus --- Its Syntax and Semantics

Kai Trojahner, University of Lübeck

In this talk, I describe the untyped array calculus, a smooth embedding of the lambda calculus into the world of multidimensional arrays. The calculus captures the essence of SaC without any syntactic sugar or restrictions imposed to achieve high computing performance. Instead, the untyped array calculus drives the "everything-is-an-array" idea to its utmost consequence. The key idea is the syntactic separation of the representation of expressions from the representation of array elements which are called quarks. This very naturally allows for arrays of functions, arrays of tuples, and even arrays of arrays. The semantics of the calculus is defined in terms of a natural semantics. I would like to use the opportunity to put the initial design up for discussion.

TYPES I

Chair: Stephan Herhut

14:30 - 16:00

The Typed Array Calculus

Kai Trojahner, University of Lübeck

The untyped array calculus, although powerful, introduces a huge potential for writing programs that will not evaluate to a value. Type systems statically identify many bad programs ("Well typed programs do not go wrong"). In this talk, I discuss a type system for the array calculus that, analogous to expressions and quarks, employs types and quark types. To symbolically capture array ranks and shapes and to statically verify array accesses, the type system uses a light-weight form of dependent types. Since this work is very much in progress, I am looking forward to the feedback from the DevCon participants!

16:00 - 17:00

What's the Problem with Multi-Threading?

Clemens Grelck, University of Hertfordshire

The generation of multi-threaded code has not been available for an awfully long time. This talk gives some insights on why multi-threading cannot be resurrected so easily. We outline the intended solution developed so far and sketch out the state of the ongoing implementation.

MULTITHREADING

Chair: Robert Bernecky

17:00 - 18:00

Side-Effects in With-Loops -- the Unleashing and the Taming of the Non-Determinism Beast

Sven-Bodo Scholz, University of Hertfordshire

Theo has enabled side-effecting operations within With-Loops. While pragmatic in several real-world applications such as pixel-wise printing this extension inherently introduces the potential for non-deterministic results. This talk discusses the approach taken by Theo: the consistency guarantees achieved and their technical realisation. Furthermore, the talk proposes a slight extension of Theo's approach which would allow the programmer to control the non-determinism more tightly.

Tuesday, 5th of June 2007

 9:00 - 10:30

How Lazy Should Efficient Array Programming Be?

Sven-Bodo Scholz, University of Hertfordshire

Although eager on first glance, SaC's main performance edge stems from the laziness introduced by most of our optimisations. In fact, the shape-invariant programming style relies on these optimisations to be effective. Unfortunately, the laziness that derives from our optimisations in some situations is not powerful enough to allow for nice "wholemeal" specifications of array programs. This talk summarises the state-of-the-art in laziness of sac2c and it outlines the challenges for extending it without sacrificing performance in general.

LAZINESS

Chair: Kai Trojahner

10:30 - 12:00

A Lazy Array Semantics for SAC and some Notes on Implementation

Clemens Grelck, University of Hertfordshire

SAC has a strict semantics. Full stop. That has been almost dogmatic since the early days. In fact, we use quite some laziness for optimisation purposes. The problem is that optimisations are always optional and may or may not work under certain circumstances. As a consequence, many elegant code examples rely on the compiler to work effectively. We propose a mixed lazy/strict semantics and sketch out some implementation paths.

12:00 - 13:00

A Multi-Threaded Runtime System for S-Net

Frank Penczek, University of Lübeck

S-Net is a declarative coordination language for describing streaming networks of asynchronous components. In this talk, I will introduce the design of a multi-threaded runtime system for S-Net. Apart from the design, some interesting implementation details will be pointed out. The talk also includes a brief introduction to S-Net

S-NET

Chair: Clemens Grelck

Lunch

14:00 - 16:00

Idea, Use and Implementation of Symbolic Array Attributes in sac2c

Florian Büther, University of Lübeck

Augmenting the arrays in a functional array language with information about their dimension or rank and shape is an essential method to optimise the compilers behaviour in two different ways. They are mainly used for easing memory access and secondly to gather more information at compile time. These both aid in generating faster runtime code.

TYPES II

Chair: Sven-Bodo Scholz

16:00 - 18:00

Record Types -- Typed Records

Stephan Herhut, University of Hertfordshire

Records and Record Types can be used as a flexible means of data and type representation. They allow for a high-level of abstraction and generic programming style, combined with utmost flexibility in representation and static and/or dynamic type knowledge. I will present a type system using record types and showcase the expressive power it offers.

Wednesday, 6th of June 2007

 9:00 - 9:30

Cutting the Crap: a Proposal for Re-Designing the Primitive Operations

Sven-Bodo Scholz, University of Hertfordshire

The first version of SaC introduced a large set of APLish array primitives. In the context of the redesign of the type system of SaC, a large part of these were eliminated or restricted to some special cases. Alongside with this "migration" from powerful APL primitives to C-like primitives, several pseudo-primitives were added as a convenient vehicle to represent intermediate code representations. As a consequence of all these developments, today, we have a rather inconsistent and less well documented [warning: rather English statement] set of primitive operations with not exactly complete implementations. To counter this situation, I want to propose a revised version of primitives and I want to discuss a few possible implementation paths.

COMPILER

Chair: Frank Penczek

 9:30 - 10:00

SAC4C: On Binding C and SAC

Stephan Herhut, University of Hertfordshire

Due to the new module system and internal compiler infrastructure, revamping the SAC C-interface is inevitable. I propose a less alien and more integrated approach by modelling C-wrapper as an interface layer on top of SAC modules and thereby decoupling C-wrapper generation from the SAC compiler. Apart from the conceptual ideas, I will further present an outline of their implementation.

10:00 - 11:00

Whither SAC or Wither SAC?

Robert Bernecky, University of Toronto

11:00 - 11:30

Image Registration Using SAC

Kai Trojahner (joint project with Markus Weigel), University of Lübeck

In collaboration with the University of Lübeck's world-famous SAFIR - Solutions and Algorithms for Image Registration group, Markus and I evaluated in how far SaC is suitable as a tool for real-world numeric computations. I will give a brief presentation of the results of the collaboration.

APPLICATIONS

Chair: Stephan Herhut

11:30 - 12:30

»Niche Array Languages« and Their Success and Failure in Business Today

Walter Fil, Future Perfect Ltd.

12:30 - 13:00

Farewell


List of Participants (so far)

Robert Bernecky

University of Toronto

Canada

Florian Büther

University of Lübeck

Germany

Walter Fil

Future Perfect Ltd.

Switzerland

Torben Gerhards

Christian-Albrechts-Universität zu Kiel

Germany

Clemens Grelck

University of Hertfordshire

United Kingdom

Stephan Herhut

University of Hertfordshire

United Kingdom

Frank Penczek

University of Lübeck

Germany

Robert Piper

University of Hertfordshire

United Kingdom

Sven-Bodo Scholz

University of Hertfordshire

United Kingdom

Alex Shafarenko

University of Hertfordshire

United Kingdom

Kai Trojahner

University of Lübeck

Germany

Carlos Huertas Villegas

University of Baja California

Mexico



Responsible for the content of this site: SAC-Research Team.
Last modified: 02. Feb 2010

Valid HTML 4.01!     Valid CSS!