Title: Converting Hume programs to JSON format for use in programming support tools

Proposer: Hans-Wolfgang Loidl, Joe Wells

Suggested supervisors: Hans-Wolfgang Loidl, Joe Wells

Goal:

Integrate Hume programs into JSON-based programming language tools.

Description:

Hume is an embedded systems language, providing guaranteed resource bounds on the heap space consumption and execution time of its programs. JSON is a widely-used data format for the exchange of data, with a rich tool-set for displaying, analysing and modifying data. The goal of this project is to modify the exisiting Hume compiler in such a way that it emits the abstract syntax tree of Hume programs in JSON format, which can then be used in one or more programming support tools such as source code search and cross-referencing tools (a.k.a., "tagging" systems, e.g., Exuberant Ctags, GNU Global, cscope, etc.) and syntax highlighting in editors. The project requires basic familiarity with Haskell, or another functional language, and a general interest in compiler design and programming language tools.

The steps in the project will be:

Resources required: Hume compiler and related tools

Degree of difficulty: moderate

Background needed: Haskell (implementation language for the Hume compiler) or another functional language, and a general interest in compiler design and programming language tools.

References: Hume page, JSON page