seng v1.0.0 — Simple English Programming Language — by MRKTamilan
Use at Your Own Risk. seng is provided "as is" without any warranty. MRKTamilan is not responsible for any damage, data loss, or system failure arising from use of this software. See the License for full terms.

Installation

seng is currently available for Windows 10 / 11. Linux and macOS support is coming soon.

Windows — Installer (Recommended)

1

Download the installer from seng.mrktamilan.com

2

Run seng-setup-1.0.0-windows-x64.exe as Administrator

3

Read and accept the License Agreement

4

Choose your install directory (default: C:\Program Files\seng)

5

Click Install — seng is added to your system PATH automatically

6

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
The .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 phraseMeaning
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

KeywordCategoryDescription
set … to …VariablesAssign a value to a variable
say …OutputPrint a value or expression to the screen
ask … for "…"InputRead a line of input from the user into a variable
if … thenConditionsStart a conditional block
else if … thenConditionsAdditional condition branch
elseConditionsFallback branch when no condition matched
endBlocksClose an if, while, repeat, or define block
repeat N timesLoopsRepeat a block N times
while … LoopsLoop while a condition is true
stopLoopsBreak out of the current loop
skipLoopsContinue to the next loop iteration
define … with …FunctionsDefine a named function with parameters
call … with …FunctionsCall a function with arguments
give back …FunctionsReturn a value from a function
result of … with …FunctionsCall a function and capture its return value
make list …ListsCreate a new empty list
add … to …ListsAppend an item to a list
item N of …ListsGet the item at position N (1-indexed)
length of …ListsGet the number of items in a list
import "file.se"ModulesInclude and execute another seng file
plusArithmeticAddition (+)
minusArithmeticSubtraction (−)
timesArithmeticMultiplication (×) — also *
divided byArithmeticDivision (÷)
modArithmeticModulo / remainder
is equal toComparisonEquality check (==)
is not equal toComparisonInequality check (!=)
is greater thanComparisonGreater than (>)
is less thanComparisonLess than (<)
is greater than or equal toComparisonGreater than or equal (>=)
is less than or equal toComparisonLess than or equal (<=)
andLogicalLogical AND — both conditions must be true
orLogicalLogical OR — at least one condition must be true
notLogicalLogical NOT — inverts a boolean value
trueValuesBoolean true
falseValuesBoolean false
nothingValuesNull / empty value
# …CommentsEverything 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

CommandDescription
seng file.seInterpret and run a seng source file
seng compile file.seCompile source to file.sec bytecode
seng run file.secRun a compiled bytecode file
seng helpShow help and version information
After installation, 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:

seng is used at your own risk. MRKTamilan is not responsible for any issues arising from use of this software.