Skip to content
amirmc edited this page Apr 16, 2013 · 7 revisions

Internship proposals

This page lists internship proposals for anyone interesting in working with OCaml Labs.

If you can supervise an intern, please feel free to add your project here.


Namespaces for OCaml

Supervisor(s)

Leo White

Description

Implementation of namespaces for OCaml.


WebIDL

Supervisor(s)

David Sheets

Description

The modern web is becoming an application platform in addition to its function as a distributed document store. Instead of native operating system interfaces, the web browser exposes JavaScript APIs with various restrictions. We would like OCaml software to be able to easily transition between a native application and a web application. To accomplish this, a representation for browser interfaces is required.

This project would involve the development of a parser of WebIDL, a W3C standard interface specification language http://www.w3.org/TR/WebIDL/, and a set of rules for mapping WebIDL signatures to OCaml interfaces. Further work could include the development of a js_of_ocaml binding generator or generated interface constraint assertions. These developments would help the OCaml community keep our interfaces up-to-date with the latest web API advancements and provide universal interfaces for common device capabilities like hardware-accelerated 3D rendering and device sensor support.


A study of automatic transtyping insertions at compile time for OCaml

Supervisor(s)

Philippe Wang

Description

OCaml's type system guaranties that it will not be necessary to check the types of values at runtime: all is verified at compile time. This project aims at providing a more concise way to write OCaml programmes, using automatic insertion of transtyping functions at compile time. The programme would then still be type-checked and more concise since the programmer would have less code to write. However, such transformation might be harmful in some ways. Hence, it appears important to study the effects of such a feature.

This internship could consist in:

  • study the state of the art
  • study the implicits by G. Henry and P. Chambart
  • implement, experiment and report.

OCamlClean for the ocamlopt compiler

Supervisor(s)

Philippe Wang

Description

OCamlClean is a tool developed by Benoît Vaugon. It takes an OCaml bytecode binary and transform it to another bytecode binary which has the same operational semantics and the same format, but in which all unnecessary computations have been hopefully removed. (The result of OCamlClean can be given to OCamlClean, in which case the output is then the same as the input.)

This project is about implementing a version of OCamlClean for the ocamlopt compiler.