Functional Programs as Spreadsheets

   Department of Computer Science

   Applications accepted all year round  Self-Funded PhD Students Only

About the Project

Spreadsheets are widely used as a calculation tool in scientific modelling, business and finance. A spreadsheet application is a standard part of any office productivity suite.

It is well-known that a spreadsheet can be viewed as a kind of functional program. Assuming the absence of circular references, by translating each filled cell to a function, one obtains a recursion-free functional program.

However, translation in the other direction, from functional programs into spreadsheets, has not been well-studied. In general, it is impossible to translate a functional program into a spreadsheet that performs the same computation. However, observing that the denotation of a functional program is the least upper bound of a sequence of fixed point approximants, we can translate one of those approximants into a spreadsheet. The goal of this project is to investigate this connection.

Applications of this research might include a spreadsheet-based tool for teaching functional programming, or a spreadsheet-based development environment and debugger for experienced users of functional programming.

For informal enquiries, please contact , including "Functional Programs as Spreadsheets" in the subject of your e-mail and stating clearly how you meet the eligibility criteria.

Computer Science (8)

Funding Notes

You must have a good Bachelor's degree (2.1 or higher, or equivalent) or Master's degree in Computer Science, Mathematics or a similar relevant subject.

Experience of functional programming is essential, as is knowledge of at least one of the following topics: programming language semantics; static analysis; proof assistants such as Coq; program synthesis; bidirectional transformations.

Register your interest for this project

Where will I study?

Search Suggestions
Search suggestions

Based on your current searches we recommend the following search filters.