This year’s JSSP projects have been selected. We think it’s an exciting list of projects, and we’re pleased that this year the projects support a number of different programming language communities outside of OCaml. Here’s the list, along with abstracts:
OCaml: 2D Plotting Library
- Student: Bertrand Desmons
- Advisor: Christoph Troestler
The purpose of this project is to provide a high quality, platform-independent, and extensible 2D plotting library for OCaml. We aim to be attractive to students (no dependency apart from OCaml if desired), to professionals with publication quality needs (LaTeX output), and to researchers using visualization to help them understand data and/or develop algorithms (interactive backend).
OCaml: Ocamlviz – Realtime Execution Profiling
- Students: Julien Robert and Guillaume Von Tokarski
- Advisors: Sylvain Conchon, Jean-Christophe Filliatre and Fabrice Le Fessant
The goal of this project is to design and to implement a graphical tool for real-time profiling of Objective Caml programs. Currently, profiling tools for Ocaml are limited to post-execution analysis of call graphs. There is no convenient way to display, during the execution of a program, how memory is used, how many times a function is called, or how the value of a global variable evolves. Ocamlviz will fill this gap.
Scheme: Scheme for smartphones
- Students: Chris King and Danny Yoo
- Advisors: Kathi Fisler and Shriram Krishnamurthi
Smartphones are an exciting new computational platform. Scripts on these phones must be reactive event processors able to sense and actuate. The PLT Scheme World library, which is designed for purely functional reactive programming, can offer developers a concise and elegant way of programming these platforms. We propose to design and implement a compiler from purely functional DrScheme programs to Java programs that run on popular cell phones. The DrScheme community will use this infrastructure to support its teaching program (distributed, reactive functional programming to audiences ranging from middle-schoolers to freshmen) and also for future research projects on mobile computing with functional DrScheme.
Haskell: Lambda Cube 3D Engine
- Student: Csaba Hruska
- Advisor: Gergely Patai
This project aims to be the first general purpose 3D rendering engine written in a pure functional language. There is no graphics library available for Haskell that would be suitable as a basis for a complex graphical program. My Haskell rendering engine (called Lambda Cube Engine) uses the same model and material format as Ogre3D (http://www.ogre3d.org). This choice is motivated by the fact that Ogre3D has well-designed mesh model and material formats, and it also provides exporter plugins for nearly every significant 3D modeling software (3DS-Max, Maya, XSI, Blender etc.). This design decision lets us reuse existing 3D content and Ogre3D exporter plugins with ease. My knowledge of the Ogre3D architecture will help in making correct design decisions during development.
SML: Self-adjusting computational geometry library
- Student: Duru Turkoglu
- Advistor: Umut Acar
Functional languages such as SML are excellent for implementing complex algorithmic software, because they provide clean interfaces to high-level data structures (e.g., lists, vectors) and enable developing algorithms and data structures in a composable fashion by offering a strong type system. In this project, we aim to broaden the appeal of functional languages by making them an attractive language for practicing engineers, financial analysts, scientist, as well as researchers and students that develop interactive software systems.
More specifically, we consider a recent extension of the SML language called, SaSML (Self-Adjusting SML), that enables developing self-adjusting programs that can efficiently and automatically interact with changing data, and develop a set of libraries and applications in this language. The libraries that we develop target computational geometry and motion simulation, which form the basis of many applications including in graphics, scientific computing and engineering, and finance.
This project builds directly on our previous work on computational geometry and motion simulation, where we developed various research prototypes. This previous work will be the starting point for our project, making it highly likely to achieve completion within a summer. We will need to port these libraries to the SaSML language and implement some new applications, notably a self-adjusting meshing application. We expect that this work can be a starting point for further research into improved financial analysis techniques that rely on meshing such as Black-Scholes-PDE based models or other applications that may be of interest to Jane Street Capital.