Version 23 (modified by whiteknight, 11 years ago) |
---|
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 |
Generational Garbage Collector | medium (in progress in the generational_gc branch) | |
Compacting Garbage Collector | large | |
Concurrent Garbage Collector | medium | |
LLVM JIT Backend | medium | |
libJIT Backend | medium | |
Trace-Based JIT | large | Add a trace-based JIT runcore |
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 |