Introduction to Quorum
About Quorum
Website: www.quorumlanguage.com
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:
- Washington State School for the Blind
- Southern Illinois University Edwardsville
- University of Nevada, Las Vegas
- DO-IT at the University of Washington
- 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’s 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: https://quorumlanguage.com/evidence.html
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
number – any real number that can also have a decimal point
boolean – a variable with two possible values: true or false
text – any string of characters symbols or numbers enclosed in “ ”
Type Conversion
Types can be converted in Quorum using the cast instructions as follows:
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 n_5 = 5.3
Illegal:
number n&$5 = 5.3
Operators
Math
Subtraction –
Multiplication *
Division /
Modulus mod
Boolean
Logical not equal not=
Text
Statements
There are no semicolons or end of line markers needed in Quorum.
Program Control & Arrays
Conditional Statements
Simple:
end
If Else:
else
end
If Elseif:
elseif a < 10
else
end
Loop Statements
Repeat <expr> times:
end
Repeat while <expr>:
repeat while i < 10
i = i + 1
end
Repeat until <expr>:
repeat until i = 10
i = i + 1
end
Arrays
Arrays can be accessed by using the array library:
Fill an array:
integer i = 0
repeat 5 times
a:add(i)
i = i + 1
end
Print the 4th element:
Remove the first element:
Sort the array:
Classes and Actions
Classes
Classes are defined in a code block between the class name and an end.
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.
Bark(3)
end
repeat i times
output “Bark”
end
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.