Elna programming language

Elna is a simple, imperative, low-level programming language.

It is intendet to accompany other languages in the areas, where a high-level language doesn't fit well. It is also supposed to be an intermediate representation for a such high-level hypothetical programming language.

File extension

.elna

Current implementation

This repository contains a GCC frontend for Elna. After finishing the frontend I'm planning to rewrite the compiler in Elna itself with its own backend and a hand-written parser. So GCC gives a way to have a simple bootstrap compiler and a possbility to compile Elna programs for different platforms.

Grammar

Flex and bison grammar specifications, lexer.ll and parser.yy, can be found in the boot/ directory.

Build

The frontend requires GCC 14.2.0 (not tested with other versions).

Download the GCC source. Copy the contents of this repository into gcc/elna inside GCC. Finally build GCC enabling the frontend with --enable-languages=c,c++,elna. After the installation the compiler can be invoked with $prefix/bin/gelna.

There is also a Rakefile that downloads, builds and installs GCC into the ./build/ subdirectory. The Rakefile assumes that ruby and rake, as well as all GCC dependencies are already available in the system. It works under Linux and Mac OS. In the latter case GCC is patched with the patches used by Homebrew (official GCC doesn't support Apple silicon targets). Invoke with

rake boot

See rake -T for more tasks. The GCC source is under build/tools. The installation path is build/host/install.

Description
Elna programming language compiles simple mathematical operations to RISC-V code.
Readme MPL-2.0 3.9 MiB
Languages
C++ 79.8%
LLVM 7.6%
C 5.3%
Ruby 5.1%
Makefile 2.2%