Unicon Development

The Unicon Development team's design project task is to contribute new functionality to the Unicon language including enhancements to its IDE and to Iconc, the language's optimizing compiler.

Project Description
The Unicon Development Team is developing a set of enhancements for the University of Idaho’s signature programming language, Unicon http://unicon.org. The goals of this project include:


 * Enhancement of the Unicon IDE to include jumping from a procedure of method call to its code body or its reference documentation.




 * Enhancing Unicon’s C-based optimizing compiler Iconc, and its runtime system code to support concurrency features built using pthreads.





The intended end result of this project will be open-source code that becomes part of Unicon’s public distribution.

Background
Unicon is a “modern dialect” descending from the Icon programming language that incorporates numerous new features and extensions to make the Icon language more suitable for a broad range of real-world applications.

Specifications

 * millisecond resolution determining % speedup that concurrent Iconc provides


 * improvement is > max(concurrent performance, Iconc performance)


 * functional = fulfills use cases


 * target speedup = (concurrent speedup * Iconc speedup) * .9

Deliverables
The intended end result of this project will be open-source code that becomes part of Unicon’s public distribution.

Results
The Unicon IDE has the ability to look up user defined functions as well as built in functions, done as a right click menu.

The Unicon optimizing compiler successfully compiled and ran threaded programs. The timing results are shown in the graph to the right.

Resources

 * The Implementation of Icon and Unicon


 * Unicon Manual


 * Programming with POSIX Threads by David R. Butenhof


 * IDE Tutorial (Unicon Technical Report 6b, An IVIB Primer)


 * Unicon Source Distrobution

Schedule
These are the steps followed for the IDE team and Uniconc team.

IDE
 * Source familiarity
 * Report if cursor is on a procedure
 * Generate table for builtin lookup
 * Merge Builtin table with user procedures table
 * Bring up documents on builtins
 * Jump to user defined procedures
 * Right-click functionality
 * Design Expo

Uniconc
 * Source familiarity
 * Compile with concurrency without error
 * Compile with concurrency and translated macros
 * Compiles & links standard Unicon program
 * Compiles & links threaded Unicon program
 * Executes threaded Unicon programs
 * Executes entire Unicon Benchmark Suite
 * New Unicon technical report written documenting concurrent Iconc
 * Design Expo

Documentation Archive
Design Review Slideshow

Github Repo