Arc v0.0.1-alpha - A Lightweight C-Based Programming Language
We are excited to announce the first alpha release of Arc, a lightweight, C-based programming language and interpreter designed for simplicity, performance, and educational clarity. Version Overview Version: v0.0.1-alpha Status: Alpha (Experimental) License: GPL-3.0 This initial release establishes the foundational pipeline of the Arc language, from lexical analysis to AST-based interpretation, featuring a robust set of core language constructs and a custom memory management system. Key Features Language Core Variable System: Declaration and updates using the VAR keyword. Functions: Support for custom functions (FN) with parameters and RETURN values. Control Flow: Conditional branching with IF, THEN, ELIF, and ELSE. Iterative loops with WHILE, FOR, and THEN. Loop control with BREAK and CONTINUE. Exception Handling: Graceful error recovery using TRY...CATCH blocks. Data Types: Integrated support for Numbers (Integers/Floats), Strings, Booleans, and Lists. Import System: Modularize projects by importing other .arc files using IMPORT. Syntax Highlights Case Sensitivity: Keywords (e.g., VAR, WHILE, IF) are case-insensitive. Identifiers (variable and function names) are case-sensitive. Operators: Comprehensive set of arithmetic (+, -, *, /, ^), comparison (==, !=, <, >, <=, >=), and logical (AND, OR, NOT) operators. Comments: Single-line comments starting with #. Built-in Standard Library I/O Operations: print, get_input, open_file, read_file, write_file, close_file. Data Manipulation: len_of, typeof, to_int, split_string, append_list, range. Math Library: A comprehensive math.arc providing constants (PI, E) and functions (sin, cos, tan, sqrt, log, etc.). Tooling & CLI Arc comes with a powerful CLI and an interactive REPL: Interactive REPL: Run code line-by-line with syntax highlighting. CLI Options --debug (-d): View tokens and AST tree during execution. --code (-c): Execute a string of code directly. --float-precision (-p): Control decimal output. --mempool-size (-m):