Share your Programming Language Jam submissions here!

← Back to all posts
µCL - A language for commands
h
basicer (4)

Team conScripts presents:

                _|_|_|    _|        
  _|    _|    _|          _|        
  _|    _|    _|          _|        
  _|    _|    _|          _|        
    _|_|_|      _|_|_|    _|_|_|_|  
        _|                     
        _|_|  Micro Command Language

For the loop { print [eval [read]] } language jam.

Features:

  • Dodekalogue style syntax makes use at the command line just as easy as in the editor.

  • Inspired by fennel, µCL compiles to lua. This enables JITed execution thanks to luajit, as well as the ability to integrate with pure lua environments such as Roblox, factorio, and Gary's Mod. µCL can also be used in the browser via fengari.

  • Packs to a single .lua file for easy inclusion in other projects.

  • Inspired by Forth, command words can have both execution and completion semantics. Execution semantics are further divided into pure (side-effect free) and non-pure. Pure functions allowed executed during command completion and static analysis.

  • Batteries included. Most serious users will want use the lua command to define application specific commands, however µCL come with some stock commands from TCL to get started. These can be easily disabled when embedding.

Try it out:

a mud Creates a DSL to program a mud in. Presents it to the user by attaching the standard repl to the sub-interpreter.

a repl supporting multiline input and tab completion

or fork the example repo

Source:

The example repos use a version of µCL compiled into a single executable for speedy startup on repl.it. The full source can be found on github.

ucl langauge
ucl native host

Credits:

@basicer - Design, Compiler
@themaka - Examples, Documentation, Testing

uCL was created entirely from scratch (minus some imported tests for TCL commands) for the repl.it language jam.