Introduction to Genyris - A New Way of Thinking About Programs

Bill Birch

on Friday, 26 November 2010 14:00 - 14:30 in room Room 2

We present a small, open-source programming language, Genyris, that combines influences from the Semantic Web, Scheme, Smalltalk and Python.

In our natural thought processes, objects are classified independently of their creation, and actors use their classifications in order to choose appropriate actions for objects. The language simulates this by allowing objects to be 'tagged' with classes at any time. This is an embodiment of ideas from the Semantic Web, namely: Objects can belong to many classes simultaneously ; Objects may have their class membership change dynamically. The language syntax provides an RDF-compatible syntax for uniquely defining symbols, and built-in structure for manipulating graphs.

The interpreter uses the tagged classes for type-despatched function calls. Inheritance of object properties is also provided for code-reuse. Expansion of the Scheme environment model to include bindings for ‘dynamic’ objects provides a simple grammar for object-scoped code execution.

The application of indentation-based syntax provides a readable descendant of the homoiconic syntax found in the Lisp family of languages. This allows the language to provide macros and simplifies creation of DSLs.

The current Java-based implementation is in daily use manipulating software configuration data and monitoring test environments, an application which called for diverse information modelled in semantic triples.

We will show that the combination of a paradigm change, an extended execution model and flexible syntax elements provides a new-generation language which is powerful, malleable, readable and fun.

birchb@tpg.com.au's picture

Bill Birch

Programmer/Architect with many years experience in IT industry. Currently working in deployment automation using Jython. Long-time user of scripting languages and developer of versions of Lisp.