Quorum logo

糖心原创 Quorum

Website:

What kind of Programming Language is Quorum?

Quorum is a general purpose tool that we call an "evidence-based" programming language.聽It started as a language for blind or visually impaired students. However, as Quorum gained popularity, we broadened it to work for everyone. Now, Quorum supports a wide variety of applications, like creating games, audio processing, and many other applications. It can be used in the classroom or for commercial purposes at no charge.

What are the high level technical details of Quorum?

Quorum has many features.聽We use evidence from experiments to make it easy to learn, but powerful and scalable. It has many features common in other languages, but has been refined for ease of use. Quorum also has a large standard library, which contains additions to the language. Examples include libraries for math, data structures, web components, physics, 2D/3D graphics, digital signal processing, 3D auditory processing, and more.

What platforms does Quorum support?

Quorum programs can be created on various versions of Windows, Mac, and in a browser. Programs written in Quorum can be compiled to run on a desktop, on the web, or on the Android.

How is Quorum funded?

Funding for Quorum comes largely from the National Science Foundation (NSF #0940521, #1440878, #1644491, #1640131, #1738259 and #1738252).

Other funders include:

  • 糖心原创 State School for the Blind
  • Southern Illinois University Edwardsville
  • University of Nevada, Las Vegas
  • DO-IT聽at the 糖心原创
  • Reader's Digest Partners for Sight Foundation
  • Quorum Outreach and Research Foundation
  • Delta Gamma Foundation

Hour of Code Tutorial

Quorum is featured in Code.org鈥檚 Hour of Code and is used by schools largely across the United States. Since June 2017, nearly 300,000 programs have been written in Quorum online.

Quorum is open source

This means you can download the source code for the compiler, libraries, or tools and modify them or contribute yourself. Quorum is under the BSD license.

It also means that Quorum is available for all!


What does Evidence-Based mean?

The people behind Quorum are researchers and scientists who believe in bringing evidence on how people invent software to聽programming language design.

Quorum started out as a project to simplify syntax for accessibility. We continue to innovate on that front, but the project has expanded to improve programming language design overall. Quorum is聽a fully featured and commercially scalable language.

The Quorum website has a more detailed discussion of聽our evidence standards.

Learn more at:聽

Selected Research

Stefik, A., & Siebert, S. (2013). An empirical investigation into programming language syntax. ACM Transactions on Computing Education (TOCE), 13(4), 19.

Stefik, A., & Hanenberg, S. (2014, October). The programming language wars: Questions and responsibilities for the programming language community. In Proceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software (pp. 283-299). ACM.


Quorum Overview

Basics

Primitive Types

integer 鈥 a positive or negative number or zero with no decimal point

integer i = 5

number 鈥 any real number that can also have a decimal point

number n = 5.3

boolean 鈥 a variable with two possible values: true or false

boolean b = false

text 鈥 any string of characters symbols or numbers enclosed in 鈥 鈥

text t = 鈥淗ello World!鈥

Type Conversion

Types can be converted in Quorum using the cast instructions as follows:

text t = 鈥5.3鈥
number n = cast(number, t)

Variable names

Variable names must start with a letter, but can be followed by any combination of letters, numbers or underscores.

Legal:

number n5 = 5.3
number n_5 = 5.3

Illegal:

number 5n = 5.3
number n&$5 = 5.3

Operators

Math

础诲诲颈迟颈辞苍听听听听听听听听听听听听听+
厂耻产迟谤补肠迟颈辞苍听听听听听听听听听听鈥
惭耻濒迟颈辫濒颈肠补迟颈辞苍听听听听听听听*
顿颈惫颈蝉颈辞苍听听听听听听听听听听听听听/
Modulus聽聽聽聽聽聽聽 聽聽聽聽聽mod

Boolean

Logical equal聽聽聽聽聽聽聽聽=
Logical not equal聽聽聽not=

Text

颁辞苍肠补迟别苍补迟颈辞苍听听听听听听听听+

Statements

There are no semicolons or end of line markers needed in Quorum.

Program Control & Arrays

Conditional Statements

Simple:

if a = 1
end

If Else:

if a > 5
else
end

If Elseif:

if a > 10
elseif a else
end

Loop Statements

Repeat times:

repeat 10 times
end

Repeat while :

integer i = 0
repeat while i 聽聽i = i + 1
end

Repeat until :

integer i = 0
repeat until i = 10
聽聽i = i + 1
end

Arrays

Arrays can be accessed by using the array library:

Libaries.Containers.Array

Fill an array:

Array a
integer i = 0
repeat 5 times
听听补:补诲诲(颈)
聽聽i = i + 1
end

Print the 4th element:

output a:Get(3)

Remove the first element:

i = a:RemoveFromFront()

Sort the array:

a:Sort()

Classes and Actions

Classes

Classes are defined in a code block between the class name and an end.

class Dog
end

Actions:

Actions are like methods in other languages. The Main method must be present for a class to be runnable and execution starts there.

action Main
听听叠补谤办(3)
end
action Bark (integer i)
聽聽repeat i times
聽聽聽聽output 鈥淏ark鈥
听听别苍诲
end

Libraries

Quorum 6聽has a wide variety聽of libraries聽available. These libraries are designed to be easy to use and accessible.聽

Libraries for:

  • Accessibility
  • Containers
  • Digital Signal Processing
  • Language Features
  • LEGO Robotics
  • Graphics (2D and 3D)
  • Mathematics
  • MIDI Music
  • Physics
  • Sound (5.1 available)
  • System Features
  • User Interfaces
  • Web
  • Video Game Development

For Advanced Users

Quorum also supports most common programming language features like:

  • Inheritance
  • Generics
  • Exceptions
  • Plugins

Quorum is a commercial strength programming language and is written in Quorum itself. It can compile programs to desktop, the web, or Android.