# SIMPL+ Programming Language Reference > Complete reference documentation for Crestron SIMPL+ programming language > Version: 1.0.0 > Updated: 2026-04-16 > Base URL: https://simplplus.crestron.rocks ## Overview SIMPL+ is a programming language for Crestron control systems. It extends SIMPL (Symbol Intensive Master Programming Language) with C-like syntax for complex logic, string manipulation, and file I/O. ## Documentation Structure ### Allowable Ranges for 2 Series Numeric Formats - Allowable Ranges for 2 Series Numeric Formats ### Examples - Examples ### General Information - Comments - Conventions Used - Introduction - Legal Information (Part 1) - Legal Information (Part 2) - Relative Path Names for Files - Variable Names ### Language Constructs & Functions - Arrays - GetLastModifiedArrayIndex - GetNumArrayCols - GetNumArrayRows - GetNumStructureArrayCols - Array Operations Overview - ResizeArray - ResizeStructureArray - SetArray - Bit - ... and 494 more ### Obsolete Functions - System Interfacing Functions ### Operators - Arithmetic Operators - Bitwise Operators - Numeric Formats - Operator Precedence & Grouping - Operators Overview (Part 1) - Operators Overview (Part 2) - Operators Overview (Part 3) - Relational Operators - Signed vs Unsigned Arithmetic ### Programming Environment - Bookmarks - Compile Output Files - Compiler Options - Cursor Positioning - Edit Menu - Edit Select All - Edit Preferences - Edit Preferences Text Editor Colors - Find Next - Insert Category - ... and 5 more ### Revision History - SIMPL+ Revisions - Software Requirements ### SIMPL Plus Tutorial - Compact Flash Functions - CheckForDisk and WaitForNewDisk - Reading and Writing Data - Controlling Program Flow: Branching - if‑else (Part 1) - if‑else (Part 2) - switch-case - Controlling Program Flow: Loops - for Loops (Part 1) - for Loops (Part 2) - ... and 58 more ### Task Switching - Task Scheduling Changes and Consequences (Part 1) - Task Scheduling Changes and Consequences (Part 2) - Task Scheduling Changes and Consequences (Part 3) - Task Scheduling Changes and Consequences (Part 4) - Task Switching for 2-Series Control Systems (Part 1) - Task Switching for 2-Series Control Systems (Part 2) - Task Switching for 2-Series Control Systems (Part 3) - Task Switching for X-Generation (CNX) Control Systems (Part 1) - Task Switching for X-Generation (CNX) Control Systems (Part 2) ### What's New - Converting from an X-Generation to a 2-Series Target - SIMPL+ Revisions - X-Generation Target and 2-Series Target Differences ## Quick Reference ### Data Types - INTEGER, LONG_INTEGER (unsigned) - SIGNED_INTEGER, SIGNED_LONG_INTEGER - STRING (with size declaration) ### I/O Types - DIGITAL_INPUT, DIGITAL_OUTPUT - ANALOG_INPUT, ANALOG_OUTPUT - STRING_INPUT, STRING_OUTPUT, BUFFER_INPUT ### Events - PUSH, RELEASE, CHANGE (input events) - WAIT (timed events) - Function Main() (initialization) ### Key Functions - MAKESTRING, PRINT, TRACE (output) - LEFT, RIGHT, MID, FIND (string ops) - FileOpen, FileRead, FileWrite (file I/O) ## Files - `https://simplplus.crestron.rocks/llms.txt` - This file (quick reference) - `https://simplplus.crestron.rocks/llms-full.txt` - Complete documentation (620 sections) - `https://simplplus.crestron.rocks/index/chunks.jsonl` - Structured chunks for RAG - `https://simplplus.crestron.rocks/source/` - Clean markdown source files