+
Skip to content

mealet/deen

Repository files navigation

Deen Programming Language

A simple language for efficient software

👀 Description

Deen - a statically-typed compiling programming language inspired by languages like C, C++, Zig, and Rust.

It provides tools for system programming, including: structures, C-like enums with supported functions, type definitions, backward compatibility with C, pointers, recursion, and more.
See official documentation here: Deen Documentation

⚠️ The project is currently under active development and may be unstable.

🎯 Features

  • Simplicity. The language syntax is easy to read and write.
  • 🚀 Fast. The compiler uses LLVM as a backend for the best performance.
  • Clean. Nothing superfluous - just basic tools for everything.
  • 🌐 Modern. Syntax and mechanics are inspired by Rust and Zig.
  • 📑 Strict. Analyzers and checkers will prevent most compile-time errors.
  • 🌎 Open Source. You can always participate in the project's development.

⚙️ Technical Details

🔧 Main

  • Language: Rust
  • Build Systems: Cargo, Make
  • Backend: inkwell (LLVM 1.18.6^)
  • Errors: thiserror
  • Error Reporting: miette, colored
  • Command Line Interface: clap

🌀 Structure

The project is divided into submodules using a virtual workspace environment:

  • deen - main executable module. Combines all submodules into the main process.
  • deen-lexer - lexical analyzer. Converts source code into abstract data types (Tokens).
  • deen-parser - syntax analyzer. Analyzes and converts tokens into an Abstract Syntax Tree.
  • deen-semantic - semantic analyzer. Recursively checks the AST for type and principle matching.
  • deen-codegen - code generator. Recursively compiles the AST to an LLVM IR module.
  • deen-linker - module linker. Compiles the LLVM IR module to an object file and links it.

💫 Installation

  1. Install clang, gcc or any other supported C compiler (object file compilation required).
  2. Download the latest release from GitHub: Latest Release
  3. Unpack it anywhere and add to your PATH variable. Instructions for: Windows, Linux, and macOS
  4. Restart your system or environment.

🛠️ Building

  1. Install the Rust Programming Language from the official site.
  2. Install LLVM following the official tutorial.
  3. Clone this repository: git clone https://github.com/mealet/deen
  4. Go to its directory and run: cargo build --release
  5. The executable file will be in the target/release folder.

🌀 Web Playground

Currently Deen Language has no hosted playground.
You can setup your own playground with isolated docker runners and web code editor.
Check this repository: Deen Playground

👮 Repository

The project is licensed under the BSD-3 Clause License.
For more information see License File
You can check the contribution guide by: CONTRIBUTING.md.

About

🌿 A simple language for efficient software

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载