https://github.com/lhmouse/asteria
The Asteria Programming Language
https://github.com/lhmouse/asteria
programming-language scripting-language
Last synced: 1 day ago
JSON representation
The Asteria Programming Language
- Host: GitHub
- URL: https://github.com/lhmouse/asteria
- Owner: lhmouse
- License: bsd-3-clause
- Created: 2018-03-23T08:57:09.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2025-12-31T06:00:55.000Z (23 days ago)
- Last Synced: 2026-01-04T08:25:59.711Z (19 days ago)
- Topics: programming-language, scripting-language
- Language: C++
- Homepage: https://web.libera.chat/#mcfproj
- Size: 16.4 MB
- Stars: 422
- Watchers: 19
- Forks: 32
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# The Asteria Programming Language

**Asteria** (/asˈtɪərɪə/, _as-TEAR-ee-uh_) is a procedural, dynamically typed
programming language that is highly inspired by JavaScript.
The most notable difference between Asteria and other languages is that the
so-called 'objects' have _value semantics_. That is, an object is copied when
it is passed to a function by value or is assigned to a variable, just like
values of primitive types.
* [Quick Guide](doc/quick-guide.md)
* [Grammar](doc/grammar.md)
* [Standard Library](doc/standard-library.md)
* [Highlighting Rules for GNU nano](doc/asteria.nanorc)
# How to Build
First, you need to install some dependencies and an appropriate compiler,
which can be done with
```sh
# For Debian, Ubuntu, Linux Mint:
# There is usually an outdated version of meson in the system APT source. Do
# not use it; instead, install the latest one from pip.
sudo apt-get install ninja-build python3 python3-pip pkgconf g++ \
libpcre2-dev libssl-dev zlib1g-dev libedit-dev
sudo pip3 install meson
```
```sh
# For MSYS2 on Windows:
# The `iconv_open()` etc. functions are provided by libiconv. Only the MSYS
# shell is supported. Do not try building in the MINGW64 or UCRT64 shell.
pacman -S meson gcc pkgconf pcre2-devel openssl-devel zlib-devel \
libiconv-devel libedit-devel
```
```sh
# For macOS:
# The `gcc` command actually denotes Clang, so ask for a specific version
# explicitly.
brew install meson pkgconf gcc@10 pcre2 openssl@3 zlib libedit
export CXX='g++-10'
```
Then we can build as usual
```sh
meson setup build_debug
meson compile -Cbuild_debug
```
Finally we launch the REPL, as
```sh
./build_debug/asteria
```

If you need only the library and don't want to build the REPL, you may omit
`libedit` from the dependencies above, and pass `-Denable-repl=false` to `meson`.
# License
BSD 3-Clause License