This page is going to list some ideas for largish projects that people might consider for various academic levels, or for other situations like GSOC.

Projects

Add your project here. If you have lots of ideas, please create a separate page for your project and link it here. Adding more design and guidance information will improve the chances of the project actually getting completed.

Individual Core Development Projects

  • Small: suitable for a branch, a Bachelor's-level thesis project
  • Medium: suitable for a GSoC project, Bachelor's-level group project, or a reasonable-sized grant proposal
  • Large: suitable for a Master's thesis, PhD dissertation, or
Name Size Synopsis
Compacting Garbage Collector large
Concurrent Garbage Collector medium
treeUnit? small Create a tree unit test language for P*ST
Context-Threaded Runcore medium
Polymorphic Inline Cache medium (for a small implementation)
NFG medium Add NFG string normalization form (partially completed in 2010 GSoC project)
GObject Metamodel medium Create an object metamodel for Parrot based on GObject
Prototype-based Metamodel medium Create a prototype-based object metamodel suitable for languages like JavaScript
Green Threads small Implement green threads in Parrot (partially done in 2010 GSoC project)
Asynchronous IO large Implement asynchronous IO operations. May require threading improvements first
dbus interface medium Implement a dbus wrapper library for Parrot
i18n support medium Implement an i18n translation system so that all internal system messages can be translated into other languages
CUDA bindings medium Implement CUDA bindings for Parrot so applications can take advantage of GPU processing power
memcached interface small Create an interface to memcached on Parrot. The interface should allow storage/lookup of serialized PMCs, STRINGs, and other arbitrary data
LALR Parser Generator large Create an LALR parser generator (similar to YACC/Bison) that runs on Parrot and generates pure PIR/PBC parsers

Compiler Projects

  • Small: A toy language, or based heavily on another language for which we have an existing compiler project
  • Medium: Most general-purpose programming languages, not including large runtime libraries
  • Large: A particularly large language, or a language with a particularly large and involved runtime library

This is not a comprehensive list of languages for which we would like to see compilers written.

Name Size Synopsis
Vala Compiler medium Create a compiler for the  Vala programming language
Groovy Compiler medium
Fantom Compiler medium