Skip to content

Commit

Permalink
Tweaks.
Browse files Browse the repository at this point in the history
  • Loading branch information
rolyp committed Sep 30, 2024
1 parent db156a9 commit 4ea9d79
Showing 1 changed file with 20 additions and 19 deletions.
39 changes: 20 additions & 19 deletions web/mphil-part-III-projects/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -60,26 +60,27 @@ <h4>Project description</h4>
<a href="f.luid.org">Fluid</a> is a new “transparent” programming language, being developed at the
Institute of Computing for Climate Science in Cambridge in collaboration with University of Bristol,
that makes it easy to create charts and figures which are linked to data, enabling a user to
interactively discover what visual elements actually represent. Fluid works by incorporating a
bidirectional dynamic dependency analysis into its runtime, allowing it to track dependencies as outputs
(such as charts and tables) are computed from data. It uses this information to automatically enrich
rendered output with interactions that allow a reader to explore the relationship to data directly
through the artefact, by selecting visual features of interest. Fluid uses so-called “program slicing”
techniques based on Galois connections, a neat mathematical abstraction which characterises exactly the
relationship between sets of inputs and sets of outputs which depend on them.</p>
interactively discover what visual elements actually represent. The key idea is to incorporating a
bidirectional dynamic dependency analysis into the language runtime, allowing it to track dependencies
that arise as as outputs (such as charts and tables) are computed from data. It uses this information to
automatically enrich rendered output with interactions that allow a reader to explore the relationship
to data directly through the artefact, by selecting visual features of interest. Fluid uses so-called
“program slicing” techniques based on Galois connections, a neat mathematical abstraction which
characterises exactly the relationship between sets of inputs and sets of outputs which depend on
them.</p>

<p>The live demos on the website show the kinds of interactive query we currently support, but these
only hint at what this new approach will make possible. There are many opportunities for an imaginative
and technically strong student to help move this idea forward. Your project could go in a number of
directions, depending on whether your interests lie more towards programming languages, formal methods
or data science. A programming languages project would extend Fluid into a literate programming tool, by
adding Markdown support and the ability to embed computational content via a Lisp-style backquote
mechanism. A more mathematical project might add multidimensional arrays to the language, along with
various array operations inspired by linear algebra and an extension of the dependency analysis to these
new operations. A project focused more around science communication would use Fluid to adapt a piece of
real-world climate science into a “long-form” essay or interactive explanation (see <a
href="https://distill.pub">distill.pub</a> for some examples) intended for a non-specialist
audience.</p>
<p>The live demos on the website show the interactive queries we currently support, but these only
scratch the surface of what this kind of infrastructure makes possible. There are many opportunities for
an imaginative and technically strong student to help move this idea forward. Your project could go in a
number of directions, depending on whether your interests lie more towards programming languages, formal
methods or data science. A programming languages project would extend Fluid into a literate programming
tool, by adding Markdown support and the ability to embed computational content via a Lisp-style
backquote mechanism. A more mathematical project might add multidimensional arrays to the language,
along with various array operations inspired by linear algebra and an extension of the dependency
analysis to these new operations. A project focused more around science communication would use Fluid to
adapt a piece of real-world climate science into a “long-form” essay or interactive explanation intended
for a non-specialist audience. (See <a href="https://distill.pub">distill.pub</a> for some
examples.)</p>

<p>If you think this sounds interesting, get in touch and we can work out a project idea in more detail.
Whatever form your project takes, we would aim for your work to be incorporated into our main
Expand Down

0 comments on commit 4ea9d79

Please sign in to comment.