Real interpreter · 500+ built-ins

A programming language
that reads like English.

LuisLang is a real, working scripting language -- hand-written lexer, recursive-descent parser, tree-walking interpreter, no external dependencies. Part of the LuisHae software family.

Download LuisLang See an example
hello.ll
-- LuisLang really runs this
tell app "Allacrity" to run command "echo test"

let x to 5
print "x is " & x

if x is greater than 3 then
    print "big"
else
    print "small"
end if

loop 3 times
    print "hi"
end loop

func square with n
    give n * n
end func

print "5 squared is " & square(5)

It actually runs

Not a spec, not a toy grammar demo -- a real interpreter you run today with one command.

$ python3 luislang.py hello.ll
test
x is 5
big
hi
hi
hi
5 squared is 25

Why it's easy to write

Multiple natural phrasings for the same thing -- you shouldn't have to memorize one exact keyword.

💬

English-like statements

tell app "X" to run command "Y", set x to 5, say "hi", if x is greater than 3 then -- reads like a sentence, not symbol soup.

🔁

Keyword synonyms built in

say/print/show, set/let/make, repeat/loop, define/func -- pick whichever word you'd naturally reach for.

🔧

Real functions & direct calls

define square with n ... return n * n end define, then call it as square(5) or call square with 5 -- both work.

⚙️

Actually shells out

tell app to run command genuinely runs a real shell command via subprocess and captures its output -- not simulated.

say = print = show = output = display set = let = make repeat = loop define = func = function return = give

500+ built-in functions

~110 real underlying implementations (math, strings, lists, files, JSON, random, dates) exposed under 500+ names via generous synonyms -- length/size/tally/item_count all do the same thing.

500+
callable built-in names
~110
distinct real implementations behind them
0
external dependencies required
sqrt(16) uppercase("hi") join(make_range(1,5), ", ") random_int(0, 9) read_file("x.txt") to_json(x) is_prime(17) shuffle_list(x)

Try it right now

No install, no dependencies -- just Python 3 and two files.

# unzip: contains luislang.py, ll_builtins.py, and examples/
python3 luislang.py your_script.ll
# there's even a real, playable Snake game written in it: python3 luislang.py examples/snake.ll

Honest note

This is a real hand-written interpreter (lexer, recursive-descent parser, tree-walking evaluator) -- not a fork of an existing language, not backed by a formal spec or standards committee. It's a genuinely working scripting language good for small scripts and toy programs like Snake, not a production-grade language with a JIT, static typing, or a package ecosystem. ask is blocking, line-based input -- there's no non-blocking keypress support yet, which is why Snake is turn-based rather than real-time.