Awesome
Dictu
What is Dictu?
Dictu is a high-level dynamically typed, multi-paradigm, interpreted programming language. Dictu has a very familiar C-style syntax along with taking inspiration from the family of languages surrounding it, such as Python and JavaScript.
Dictu documentation
Documentation for Dictu can be found here
Example programs
import System;
const guess = 10;
while {
const userInput = input("Input your guess: ").toNumber().unwrap();
if (userInput == guess) {
print("Well done!");
break;
} else if (userInput < guess) {
print("Too low!");
} else {
print("Too high!");
}
System.sleep(1);
}
def fibonacci(num) {
if (num < 2) {
return num;
}
return fibonacci(num - 2) + fibonacci(num - 1);
}
print(fibonacci(10));
More here.
Running Dictu
Dictu requires that you have CMake installed and it is at least version 3.16.3.
Using CMake (at least version 3.16.3 or greater)
$ git clone -b master https://github.com/dictu-lang/Dictu.git
$ cd Dictu
$ cmake -DCMAKE_BUILD_TYPE=Release -B ./build
$ cmake --build ./build # on Windows add "--config Release" here to get a Release build
$ ./dictu # on Windows the executable is ".\Release\dictu.exe"
Using CMake presets (version 3.21.0 or greater)
$ git clone -b master https://github.com/dictu-lang/Dictu.git
$ cd Dictu
$ cmake --preset release
$ cmake --build --preset release
$ ./dictu # on Windows the executable is ".\Release\dictu.exe"
Compiling without HTTP
The HTTP class within Dictu requires cURL to be installed when building the interpreter. If you wish to
build Dictu without cURL, and in turn the HTTP class, build with the DISABLE_HTTP
flag.
Without CMake presets (at least version 3.16.3 or greater)
$ git clone -b master https://github.com/dictu-lang/Dictu.git
$ cd Dictu
$ cmake -DCMAKE_BUILD_TYPE=Release -DDISABLE_HTTP=1 -B ./build
$ cmake --build ./build # on Windows add "--config Release" here to get a Release build
$ ./dictu # on Windows the executable is ".\Release\dictu.exe"
CMake presets (version 3.21.0 or greater)
$ git clone -b master https://github.com/dictu-lang/Dictu.git
$ cd Dictu
$ cmake --preset release-nohttp
$ cmake --build --preset release
$ ./dictu # on Windows add "--config Release" here to get a Release build
Compiling with VCPKG
This project includes support for the VCPKG C/C++ package manager in manifest mode.
To enable VCPKG support, the VCPKG_ROOT
environmental variable must be set to the path of a check-out and bootstrapped
vcpkg repository on the compiling machine, and the ENABLE_VCPKG
cmake flag must be set.
Compiling with VCPKG will enable certain features of Dictu that requires external library features to be automatically pulled and compiled.
Without CMake presets (at least version 3.16.3 or greater)
$ git clone -b master https://github.com/dictu-lang/Dictu.git
$ cd Dictu
$ cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_VCPKG=1 -DCMAKE_TOOLCHAIN_FILE=${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake -B ./build
$ cmake --build ./build # on Windows add "--config Release" here to get a Release build
$ ./dictu # on Windows the executable is ".\Release\dictu.exe"
CMake presets (version 3.21.0 or greater)
$ git clone -b master https://github.com/dictu-lang/Dictu.git
$ cd Dictu
$ cmake --preset release-vcpkg
$ cmake --build --preset release-vcpkg
$ ./dictu # on Windows add "--config Release" here to get a Release build
Docker Installation
Refer to Dictu Docker
FreeBSD Installation
For a full installation, make sure curl
is installed. It can be installed from the commands below:
$ pkg install -y curl linenoise-ng
The following variables need to be set/available to run cmake
successfully.
For Bourne compatible shells...
export CPATH=/usr/local/include
export LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH=/usr/local/lib
$ git clone -b master https://github.com/dictu-lang/Dictu.git
$ cd Dictu
$ cmake -DCMAKE_BUILD_TYPE=Release -B ./build
$ cmake --build ./build
$ ./dictu
Extensions
Dictu has a Visual Studio Code extension here with the implementation located in the DictuVSC repo.
Credits
This language was initially based on the very good craftinginterpreters book, along with inspiration from Wren.
<p>This project is supported by:</p> <p> <a href="https://m.do.co/c/02bd923f5cda"> <img src="https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/SVG/DO_Logo_horizontal_blue.svg" width="201px"> </a> </p>