All Projects → dictu-lang → Dictu

dictu-lang / Dictu

Licence: MIT license
Dictu is a high-level dynamically typed, multi-paradigm, interpreted programming language.

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Dictu

RISVM
A low overhead, embeddable bytecode virtual machine in C++
Stars: ✭ 21 (-89.01%)
Mutual labels:  interpreter, bytecode-interpreter
types-and-programming-languages
C++ Implementations of programming languages and type systems studied in "Types and Programming Languages" by Benjamin C. Pierce..
Stars: ✭ 32 (-83.25%)
Mutual labels:  interpreter
picol
(Fossil repository mirror) A tiny interpreter
Stars: ✭ 19 (-90.05%)
Mutual labels:  interpreter
chip8
CHIP-8 Emulator in Rust
Stars: ✭ 12 (-93.72%)
Mutual labels:  interpreter
ciao
Ciao is a modern Prolog implementation that builds up from a logic-based simple kernel designed to be portable, extensible, and modular.
Stars: ✭ 190 (-0.52%)
Mutual labels:  interpreter
monkey-interpreter
Monkey programming language interpreter designed in "Writing An Interpreter In Go".
Stars: ✭ 26 (-86.39%)
Mutual labels:  interpreter
Juka
🥣 Juka Programming Language - Fast Portable Programming Language. Run code anywhere without complicated installations and admin rights. Simple, yet powerful new programming language [Easy to code and run on any system] IOT devices supported!
Stars: ✭ 68 (-64.4%)
Mutual labels:  interpreter
monkey
The Monkey Programming Language & Interpreter written in PHP.
Stars: ✭ 21 (-89.01%)
Mutual labels:  interpreter
roda
Röda: A stream-oriented scripting language
Stars: ✭ 43 (-77.49%)
Mutual labels:  interpreter
bfpile
Optimizing Brainfuck compiler, transpiler and interpreter
Stars: ✭ 19 (-90.05%)
Mutual labels:  interpreter
embed
An embeddable, tiny Forth interpreter with metacompiler.
Stars: ✭ 80 (-58.12%)
Mutual labels:  interpreter
charm
A [ functional stack ] based language.
Stars: ✭ 26 (-86.39%)
Mutual labels:  interpreter
lunatic
lunatic: a toy lua interpreter
Stars: ✭ 16 (-91.62%)
Mutual labels:  interpreter
ME
A DSL for macro expansion ,in order to help framework develop
Stars: ✭ 24 (-87.43%)
Mutual labels:  interpreter
fastbasic
FastBasic - Fast BASIC interpreter for the Atari 8-bit computers
Stars: ✭ 108 (-43.46%)
Mutual labels:  interpreter
Freeze-OS
An Operating System that runs on top of an interpreter.
Stars: ✭ 24 (-87.43%)
Mutual labels:  interpreter
Script
Script is an object-oriented interpreted programming language. Being migrated to CppUtils
Stars: ✭ 18 (-90.58%)
Mutual labels:  interpreter
Tiny-Basic
A tiny and basic TINY-BASIC interpreter
Stars: ✭ 33 (-82.72%)
Mutual labels:  interpreter
foxscheme
An R5RS Scheme in JavaScript.
Stars: ✭ 15 (-92.15%)
Mutual labels:  interpreter
JSchemeMin
A small scheme implementation in java
Stars: ✭ 22 (-88.48%)
Mutual labels:  interpreter

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.

What does Dictu mean?

Dictu means simplistic in Latin.

Dictu documentation

Documentation for Dictu can be found here

Codacy Badge CI

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.

CMake

$ git clone -b master https://github.com/dictu-lang/Dictu.git
$ cd Dictu
$ cmake -DCMAKE_BUILD_TYPE=Release -B ./build 
$ cmake --build ./build
$ ./dictu

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.

$ 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
$ ./dictu

Compiling without linenoise

Linenoise is used within Dictu to enhance the REPL, however it does not build on windows systems so a simpler REPL solution is used.

$ git clone -b master https://github.com/dictu-lang/Dictu.git
$ cd Dictu
$ cmake -DCMAKE_BUILD_TYPE=Release -DDISABLE_LINENOISE=1 -B ./build 
$ cmake --build ./build
$ ./build/Dictu

Docker Installation

Refer to Dictu Docker

FreeBSD Installation

For a full installation, make sure curl and linenoise are installed. They 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.

This project is supported by:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].