-
Notifications
You must be signed in to change notification settings - Fork 9
Internships
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.
Leo White
Implementation of namespaces for OCaml.
David Sheets
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.
Philippe Wang
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.
Philippe Wang
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.