Skip to content

Survenity Language

mmaness edited this page Nov 9, 2011 · 8 revisions

The Survenity language is a domain specific language (DSL) that is tailored to survey design.

Language Philosophy & Design

Survenity stands for Survey Serenity, a desire to make survey creation serene and easy. Survenity's design is based around the following tenants:

  • Provide a human-readable form
  • Make writing surveys easy, intuitive, and satisfying
  • Be portable between Windows, Mac, and Linux

Survenity began as Julia, an internal DSL based in Ruby. There was much debate as to whether an external or internal DSL would be best. The internal DSL approach was first used since it was quick to implement, but extending the DSL to perform calculations became tedious and difficult to read. Thus in the summer of 2011, it was decided that an external DSL would be a better choice while allowing Julia to be easier to read and more user-friendly. Survenity was born.

The language reference provides an overview of the grammar of the language and some of the expected behavior required for executing Survenity code.

The library reference covers the various in-built functions plus question types and choice experiments and their traits.

Compilation and Interpretation

Survenity is compiled into a form which is a serialization of Ruby objects. These objects are stored in a database. Interpretation is done by the JULIE model component for rendering questions and choice experiments or by the Survenity expression interpreter for calculations (execution of expressions).

Survenity is continuously in development to improve features, fix bugs, and add new features.


Go back to Home

Home | JULIE Intro | Getting Started with JULIE | JULIE References | JULIE Development | Survenity Language