Installation
seng is currently available for Windows 10 / 11. Linux and macOS support is coming soon.
Windows — Installer (Recommended)
Download the installer from seng.mrktamilan.com
Run seng-setup-1.0.0-windows-x64.exe as Administrator
Read and accept the License Agreement
Choose your install directory (default: C:\Program Files\seng)
Click Install — seng is added to your system PATH automatically
Open a new terminal and verify: seng help
Your First Program
Create a file called hello.se and type:
# My first seng program say "Hello, World!" set name to "Alice" say "Hello, " + name + "!"
Then run it:
seng hello.se
Output:
Hello, World!
Hello, Alice!
How to Run
Run a source file directly
seng yourfile.se
This interprets your .se file immediately without compiling.
Run compiled bytecode
seng run yourfile.sec
Runs a previously compiled .sec bytecode file using the seng virtual machine. Faster than running from source.
Show help
seng help
How to Compile
seng can compile your programs to .sec bytecode files for faster execution.
Compile a .se file to bytecode
# Creates hello.sec in the same folder
seng compile hello.se
Then run the bytecode
seng run hello.sec
.sec bytecode format is seng's own format. It is identified by the magic header SENG and a version byte. Bytecode files are platform-specific and are not portable between different OS targets.
Full pipeline example
# 1. Write your program set x to 10 say x times 2 # 2. Compile it seng compile myprogram.se # produces myprogram.sec # 3. Run the bytecode seng run myprogram.sec
Variables
Use set … to … to store values.
set name to "Alice" # text (string) set age to 25 # whole number set score to 98.5 # decimal number set active to true # boolean set nothing to nothing # null / empty
Update a variable the same way:
set age to age plus 1 # age is now 26
Arithmetic
set a to 10 set b to 3 set sum to a plus b # 13 set diff to a minus b # 7 set product to a times b # 30 (or use *) set quotient to a divided by b # 3.33... set remain to a mod b # 1 say sum say product
Strings
String values go in double-quotes. Join strings and values with +.
set first to "Hello" set last to "World" say first + ", " + last + "!" # Hello, World! set age to 21 say "I am " + age + " years old."
Conditions
set score to 85 if score is greater than or equal to 90 then say "Grade: A" else if score is greater than or equal to 75 then say "Grade: B" else if score is greater than or equal to 60 then say "Grade: C" else say "Grade: F" end # Logical and / or / not if score is greater than 50 and score is less than 100 then say "Valid score" end
Comparison operators
| English phrase | Meaning |
|---|---|
| is equal to | == |
| is not equal to | != |
| is greater than | > |
| is less than | < |
| is greater than or equal to | >= |
| is less than or equal to | <= |
Loops
Repeat N times
repeat 5 times say "Hello!" end
While loop
set count to 1 while count is less than or equal to 5 say count set count to count plus 1 end
Break and continue
set i to 0 repeat 10 times set i to i plus 1 if i is equal to 5 then stop # break — exit the loop end if i mod 2 is equal to 0 then skip # continue — skip to next iteration end say i end
Functions
Define a function
define greet with name say "Hello, " + name + "!" end
Call a function
call greet with "Alice" call greet with "Bob"
Functions with return values
define addNumbers with a and b give back a plus b end set total to result of addNumbers with 10 and 25 say "Total: " + total # Total: 35
Multiple parameters
define introduce with name and age and city say name + " is " + age + " years old from " + city end call introduce with "Alice" and 30 and "Chennai"
Lists
# Create a list make list fruits # Add items add "Apple" to fruits add "Banana" to fruits add "Cherry" to fruits # Access items (1-indexed) say item 1 of fruits # Apple say item 3 of fruits # Cherry say length of fruits # 3 # Print all items say fruits # [Apple, Banana, Cherry] # Loop through a list set i to 1 set sz to length of fruits while i is less than or equal to sz say item i of fruits set i to i plus 1 end
User Input
# Ask for input and store in a variable ask yourName for "What is your name? " say "Welcome, " + yourName + "!" ask age for "How old are you? " say "You are " + age + " years old."
Imports
Split your code across multiple .se files and import them.
# utils.se — helper functions define square with n give back n * n end
# main.se — import and use import "utils.se" set result to result of square with 7 say result # 49
All Keywords
| Keyword | Category | Description |
|---|---|---|
| set … to … | Variables | Assign a value to a variable |
| say … | Output | Print a value or expression to the screen |
| ask … for "…" | Input | Read a line of input from the user into a variable |
| if … then | Conditions | Start a conditional block |
| else if … then | Conditions | Additional condition branch |
| else | Conditions | Fallback branch when no condition matched |
| end | Blocks | Close an if, while, repeat, or define block |
| repeat N times | Loops | Repeat a block N times |
| while … | Loops | Loop while a condition is true |
| stop | Loops | Break out of the current loop |
| skip | Loops | Continue to the next loop iteration |
| define … with … | Functions | Define a named function with parameters |
| call … with … | Functions | Call a function with arguments |
| give back … | Functions | Return a value from a function |
| result of … with … | Functions | Call a function and capture its return value |
| make list … | Lists | Create a new empty list |
| add … to … | Lists | Append an item to a list |
| item N of … | Lists | Get the item at position N (1-indexed) |
| length of … | Lists | Get the number of items in a list |
| import "file.se" | Modules | Include and execute another seng file |
| plus | Arithmetic | Addition (+) |
| minus | Arithmetic | Subtraction (−) |
| times | Arithmetic | Multiplication (×) — also * |
| divided by | Arithmetic | Division (÷) |
| mod | Arithmetic | Modulo / remainder |
| is equal to | Comparison | Equality check (==) |
| is not equal to | Comparison | Inequality check (!=) |
| is greater than | Comparison | Greater than (>) |
| is less than | Comparison | Less than (<) |
| is greater than or equal to | Comparison | Greater than or equal (>=) |
| is less than or equal to | Comparison | Less than or equal (<=) |
| and | Logical | Logical AND — both conditions must be true |
| or | Logical | Logical OR — at least one condition must be true |
| not | Logical | Logical NOT — inverts a boolean value |
| true | Values | Boolean true |
| false | Values | Boolean false |
| nothing | Values | Null / empty value |
| # … | Comments | Everything after # on a line is ignored |
Full Examples
Calculator
ask a for "Enter first number: " ask b for "Enter second number: " say "Sum: " + (a plus b) say "Difference: " + (a minus b) say "Product: " + (a * b) say "Quotient: " + (a divided by b)
Fibonacci Sequence
set a to 0 set b to 1 set count to 10 set i to 0 while i is less than count say a set temp to b set b to a plus b set a to temp set i to i plus 1 end
Shopping List
make list cart add "Milk" to cart add "Bread" to cart add "Eggs" to cart add "Butter" to cart say "Your shopping list has " + (length of cart) + " items:" set i to 1 set sz to length of cart while i is less than or equal to sz say i + ". " + (item i of cart) set i to i plus 1 end
Guessing Game
set secret to 42 set guessed to false while guessed is equal to false ask guess for "Guess the number: " if guess is equal to secret then say "Correct! Well done!" set guessed to true else if guess is less than secret then say "Too low! Try higher." else say "Too high! Try lower." end end
CLI Reference
| Command | Description |
|---|---|
| seng file.se | Interpret and run a seng source file |
| seng compile file.se | Compile source to file.sec bytecode |
| seng run file.sec | Run a compiled bytecode file |
| seng help | Show help and version information |
seng is available in any terminal. You may need to open a new terminal window for the PATH to take effect.
FAQ
Is seng free?
Yes. seng is free to use, including for commercial projects. See the License for full terms.
Can I use seng to teach kids?
Absolutely! seng was designed specifically for beginners and young learners. Its plain English syntax makes it ideal for education.
What is the difference between .se and .sec files?
.se files are plain text source code that you write and edit. .sec files are compiled bytecode — faster to run, produced by seng compile.
Is seng available on Mac or Linux?
Not yet officially. Linux and macOS support is planned. Advanced users can build seng from source using GCC on any platform.
How do I report a bug?
Email hello@mrktamilan.com with your .se file and the error output.
Contact
For support, bug reports, or feedback:
- Email: hello@mrktamilan.com
- Website: mrktamilan.com
- seng site: seng.mrktamilan.com