Note
The SIMPLE programming language's specification is licensed under Creative Commons' Attribution-ShareAlike 4.0 International licence. See LICENCE.md for the details of this licence.
Warning
This is a work-in-progress. The specification, and indeed everything about SIMPLE, may change at any time for any reason. It is not stable!
Caution
Please don't rely on SIMPLE for any programs that may need to be used in the long term. SIMPLE is but one of the many things I'm working on at this moment, and development may be paused or dropped at any time for any reason.
SIMPLE (Semantic IMPerative Language for Education) is designed as an easy-to-use programming language for those unfamiliar with general programming concepts.
I have encountered many people who just don't understand the concept of a mutable variable, or the way that programming language syntax generally works, or other concepts those with more experience would consider basic, just because they haven't been exposed to some of the general concepts of programming. In addition to this, many people in a standard educational environment without a strong personal interest in programming often struggle to understand how real programs actually work.
SIMPLE is intended to be a soft introduction to "real" programming (an intermediary between visual programming like Scratch and mainstream languages like Python, C# etc.), with semantic syntax designed to present as closely to plain (British) English as possible.
The aim of SIMPLE, at least at this stage, is to be a language that could be deployed at a, say, GCSE (UK) Computer Science level. It should be complex enough to be able to demonstrate meaningful programs without having to be as complete as most "real programming languages".
The spec for SIMPLE is available in this folder.
This repository contains information about the SIMPLE language - not an implementation of the language itself. Anyone can write their own SIMPLE implementation, so long as it meets the specification in this repository.
Warning
At this time, there is no "reference implementation" for SIMPLE. Ambiguities and incompletenesses in this specification should be filed as an issue so they can be resolved within the specification itself.