The Shape group are investigating all aspects of shape in programming, programming languages, semantics and type theory.
Shape, in general, is what we all know as the shape of a data structure, for
example lists, trees, graphs and matrices. The fundamental basis for Shapely
computation is the seperation of shape and data. For example, separating a
tree into an empty tree and a list of the data at the leaves, or separating
a matrix into its dimensions and a list of the entries
(an introduction , or
full paper)
In particular, the Shape project
is studying shapely computation. Shapely computation allows the
shape of the output data structures to be computed from the shape of the
input data structures, without looking at the data within the data structure.
This gives opportunities for better error detection and optimisations.
Shapely types are those where the shape and the data can be separated. Examples include:
Our goal is to exploit shape in computing, for: Other Pages