The Easy-Lang project provides a specialized interpreter for 'Easy,' a teaching notation designed to simplify the study of data structures by abstracting away the complexities of modern programming languages. By focusing on algorithmic logic, the tool helps students learn fundamental concepts found in Evangel P. Quiwa's 2007 textbook, which traces its lineage back to the SPARKS notation and university courses from the mid-1970s.
Educational Syntax and Execution Traces
Easy-Lang executes programs written in the 'Easy' notation, which prioritizes readability for students learning algorithms. The language supports standard control structures such as 'while', 'case', and 'repeat', but uses a specific 'procedure' based structure where execution begins at a mandatory 'MAIN' block.

This image provides a visual example of the specific syntax and procedure-based structure used in the Easy-Lang interpreter.
To aid learning, the interpreter includes an '--explain' (or -x) flag. This generates a trace on standard error where each step is prefixed with a plus sign, showing the specific values produced by each operation, such as 'lo ← 1' or 'mid ← floor(((lo + hi) / 2))'.
“An interpreter for Easy, the teaching notation in Evangel P. Quiwa, Data Structures (Manila: Electronics Hobbyists Publishing House, 2007).”
— GitHub - jjuliano/easy-lang: Interpreter for Easy, the teaching notation used in Quiwa's Data Structures.
Interview Preparation and Logic Summaries
The tool also provides an '--interview' mode. Instead of running the code, it looks up the program in a catalog to produce a concise summary of the algorithm's key steps, time and space complexity, and specific points for a student to watch out for during an interview.
This feature is designed to help students synthesize the logic of a data structure implementation into a format suitable for technical discussions, rather than just observing the raw output of a running program.
Technical Specifications and Memory Model
The language implements a specific memory and data model tailored for teaching. For example, it uses a pool of 1024 nodes unless otherwise specified, and addresses are represented as integers starting at 1. A failed 'GETNODE' operation will stop the program immediately.
Chart drawn by HN Digest from figures reported by github.com; values are shown as written in the source.
Data structures like stacks and chains are declared using specific notations. A 'Pile' structure, for instance, is declared as a combination of a slot array and a 'top' variable. The interpreter handles these as references, meaning parameters are passed by reference and share the caller's cells.

This screenshot shows a practical application of the notation for defining data structures and algorithmic logic.
The notation includes specific operators for integer work, such as 'mod' and 'floor', and handles power operations where a leading minus applies to the entire power (e.g., -2^2 is -4). It also supports real division using the '/' operator.
Scope and Limitations
While Easy-Lang is a powerful tool for conceptual learning, it is not a general-purpose programming language. It is strictly an interpreter for the notation found in Quiwa's textbook and does not contain the textbook's full content itself.
The current implementation is focused on the fifteen sessions of the data structures course. While it provides a way to run these specific procedures, it is designed to be a teaching aid rather than a production-ready environment for building complex software.
The source material does not provide independent performance benchmarks or comparisons of Easy-Lang's execution speed against standard languages like Python or C++. Its primary value lies in its pedagogical utility rather than raw computational efficiency.