Unicon Development

From Mindworks
Jump to navigation Jump to search
Team Unicon Development.
Team Name Unicon Development
Duration Fall 2014 - Spring 2015
Client Dr. Clinton Jeffery
Faculty Advisors
  • Ian Westrope
  • Shea Newton
  • Serendel MacPhereson

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.
GUI feature use case diagram
  • Enhancing Unicon’s C-based optimizing compiler Iconc, and its runtime system code to support concurrency features built using pthreads.
Unicon benchmark performance, standard and concurrent Unicon and Iconc. Bars omitted where no timing data is applicable.
Final results shown in purple. Bars omitted where no timing data is applicable.

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


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.


  • 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


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


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.

Project Learning


  • Programming with POSIX Threads by David R. Butenhof



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


  • 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


  • 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

Team Information

Picture Discipline
2014 unicondevelopment west2737.jpg

Ian Westrope

Senior, Computer Science
2014 unicondevelopment newt5502.jpg

Shea Newton
Documentation wizard

Senior, Computer Science
2014 unicondevelopment serendel.jpg

Serendel Macphereson
Client Emissary

Senior, Computer Science

Documentation Archive

Design Review Slideshow
Github Repo
File:2014 unicondevelopment poster.pdf
File:2014 unicondevelopment tech presentation.pdf