Lecture 4: Coursework Assignment Topics

1 October 2010

Presentation of the five coursework topics. Some good and bad examples of referencing. Requirements of preliminary report; investigation; and final report. Notes on working practices: aims of homework, exercises, coursework; avoiding plagiarism.

You need to commit to a topic choice by next Friday. This involves finding and reading references, as well as downloading, installing and running your chosen system. If you have difficulties with this, post a question below.

Links: Slides; Sheet; Coursework assignment; University marking scheme; Essay grade descriptors.

Lecture 20: Type-Checking for SQLizability

18 March 2010

Review of what LINQ can do in C# to lower the impedance mismatch between general-purpose programming languages and database query languages. Advantages and limitations on this; in particular the possibility of runtime failure, limits of abstraction, and the role of reflection.

One possible route to improving this: introduction of a type and effect system to track behaviour that cannot be represented in SQL. This allows arbitrary use of parametrization and higher-order functions, while providing compile-time guarantees of on-database execution. Outline of proof via a strongly-normalizing rewrite system. Several examples of how this more deeply embeds querying into a functional language, allowing modular construction of code and opening up queries to conventional compiler rewriting as well as SQL database-specific optimisations.

This lecture is based on the work of Ezra Cooper, in particular the following paper:

You can follow his research blog for more on this.


Please fill out and submit an anonymous feedback questionnaire. Thank you.

APL13: Guest Lecture

21 February 2009

Database Programming without Tiers

Sam Lindley

Laboratory for Foundations of Computer Science
School of Informatics
The University of Edinburgh

9am Monday 23 February 2009

Read the rest of this entry »