Traits and Other Language Extensions for the Programming Language XTend

In Progress

This project involves creating divers APIs and compiler plugins, to extend to JVM programming language XTend. The following tasks are to be done:

* Refactor a pre-existing open-source Java Functor API, to be used in the rest of this project.

* Using XTend's active annotation processors, modify interfaces written in XTend to behave mostly like Scala's traits, This involves modifying the interface definition, and generating an implementation for it (or possibly even multiple implementations). The traits must support multiple-inheritance, like in Scala.

* Use the pre-existing Meta-Info API to annotate the types, field and methods that to be modified.

* Extend the original Java-like generic capabilities, with real templates, that are closer to the C++ templates and macros.

* Implement some form of typedefs, like is found in C++, with support for primitive types.

* Implement implicit type-to-boolean conversion, as is found in Python.

* Implement Value classes like in Scala

* Automatically generate serialization code for trait implementations.

* Optionally, implement conditional compilation, similar to C++ (might already be possible)

The expected project duration is 2 or 3 weeks.

Skills: Java

See more: active annotation xtend project, types of programming language, types of programming, the java programming language, the c# programming language, the c programming language, the c language, templates in c language, s programming language, scala programming, rest programming, python programming classes, programming types, programming tasks in c++, programming scala, programming methods, programming macros, programming language types, programming language definition, programming language and it, programming in scala, programming in python 3, programming in python, programming inheritance, programming definition

Project ID: #4702554

Awarded to:


Hired by the Employer

$7 USD / hour
(22 Reviews)