UNIVERSITY OF HERTFORDSHIRE COMPUTER SCIENCE RESEARCH COLLOQUIUM "Generic Programming in the Context of Array Processing Languages" Stephan Herhut (Centre for Computer Science and Informatics Research, University of Hertfordshire) 10 January 2007 (Wednesday) Lecture Theatre E350 Hatfield, College Lane Campus 3 - 4 pm Coffee/tea and biscuits will be available. [Catering Permitting] Everyone is Welcome to Attend [Space Permitting] Abstract: Given the steadily rising complexity of today's software applications, software or component reuse has become more and more important over the last few years. Different means of boosting software reuse have been proposed and some have already made their way into mainstream programming languages. One of the more recent examples is the introduction of Generic Programming into Java 5. The term Generic Programming subsumes different concepts that are all aimed at abstracting over certain aspects of data structures and thus allowing for more versatile component reuse. While the generics in Java focus on abstraction over the element types of container classes, Datatype Generic Programming, for example, allows us to abstract on the type of data in a more general setting; it supports the specification of algorithms on the structure of data, thereby enabling us to specify boiler-plate code like pretty-printers or parsers in a data type independent way. Mainly functional languages like Haskell or Clean have been extended to support this kind of generic programming. In SAC (Single Assignment C), a functional array processing language, a different concept of generic programming has been implemented. By abstracting over the dimensionality and shape of arrays, SAC allows us to write shape-invariant, i.e. dimension and shape generic, programs on n-dimensional arrays; it utilizes subtyping based function-overloading as a glue for generic and non-generic code. Although this approach has proven beneficial, it is primarily focused on abstractions over shape and does not cover other structural attributes of arrays like nesting structure or symmetry. This talk presents the first results we obtained in trying to extent the generic programming capabilities of SAC by amalgamating various approaches towards generic programming into a unified framework. After a brief introduction into the existing facilities for generic array programming in SAC, I will focus on an integration of Data Type Generic Programming into SAC that has been developed in the course of my PhD studies. -------------------------------------------------- Hertfordshire Computer Science Research Colloquium http://homepages.feis.herts.ac.uk/~nehaniv/colloq