Downloads
Requires Python 3.6+
Harmony Compiler
Use this installation for command line usage.
- Advanced standalone model checking
- State machine output
- HTML output
- Available on pip
HarmonyLang for VSCode
Use this installation if you want to use Harmony using VSCode.
- Syntax Highlighting
- Intelligent Code Completion
- In-editor Visualizer
- Automatic Compiler Installation
Examples
Try out Harmony
Dining Philosophers
Formulated in 1965 by Edsger Dijkstra as a student exam exercise, presented in terms of computers competing for access to tape drive peripherals.
Peterson's Algorithm
An algorithm for mutual exclusion that allows two or more processes to share a single-use resource without conflict, using only shared memory for communication.
Reader/Writer Problem
We want to prevent more than one thread modifying the shared resource simultaneously and allow for two or more readers to access the shared resource for reading at the same time.
About
What is Harmony?
Concurrent programming is hard to get right. A deadlock might occur only once in a million executions, caused by the most esoteric of circumstances. Harmony makes finding those bugs easy.
- Checks every possible interleaving of processes
- Detects non-compilance with invariants
- Provides the shortest path to a failing execution
Learning programming in Harmony should be straightforward to those familiar with Python or similar languages. In addition to our online documentation, we provide a textbook in PDF form with many programming examples including Peterson's Algorithm, reader/writer locks, and split binary semaphores.
Read moreTeam
Our Primary Contributors
Robbert van Renesse
Creator and Advisor to the Harmony ProjectAnthony Yang
Compilers & Data OutputWilliam Ma
Compilers & VisualizationKevin Sun
Design & DocumentationHaobin Ni
DesignRenyu Li
Graphical User InterfaceShi Chong Zhao
Contact
Contact Us
Location:
433 Gates Hall, Ithaca, NY 14853
Email:
rvr@cs.cornell.edu
Call:
+1 (607) 255-1021