17 releases
0.1.7 | Feb 2, 2024 |
---|---|
0.1.6 | Jan 8, 2024 |
0.1.4 | Dec 21, 2023 |
0.0.9 | Dec 10, 2023 |
#282 in Programming languages
194 downloads per month
250KB
6.5K
SLoC
The Cecile Programming Language
⭐ Introduction
The Cecile, a little programming language designed for simplicity and flexibility.
🍎 Overview
Welcome to the Cecile programming language.
This language is part of my journey into learning compiler and interpreted languages. It's inspired by ajeetdsouza/loxcraft, a great Rust project that implemented the Lox language.
The syntax of Cecile is influenced by traditional programming languages like JavaScript, Go, and Rust, with a strong emphasis on developer experience, readability and ease-of-use.
Cecile is written in Rust. Some of performance matter part is written in Unsafe Rust that makes fast enough to compete with traditional interpreted languages like Javascript, Python.
Important note: This project is built for learning purposes. The code quality of this project is definitely not production ready.
📕 Features
Language features
- Interpreted
- Bytecode compiler
- Garbage collected in runtime
- Type Supported
- Basic types, Array
- Control flow statements
- Object Oriented Programming
- Stack tracing
- Repl
Ongoing features
- Online playground
For compiled version of Cecile
- Make compiled
- Self-hosted
- Standart library
- Module system
🔥 Syntax examples
Variable Declaration
// Variable Declaration
let number: int = 1;
let string: String = "string";
// Ofcource you don't need to write type everytime you declare variable
let number = 2;
let string = "hello cecile";
Function Declaration
fn say_hello() -> String {
return "hello";
}
println say_hello() // Out: "hello"
Type Declaration
type Point {
x: int,
y: int,
}
impl Point {
fn new(x: int, y: int) {
self.x = x;
self.y = y;
}
}
let point: Point = Point();
Array & Builtin function
let arr = [1, 2, 3, 4];
arr.push(5);
println arr; // Out: [1, 2, 3, 4, 5]
⚙️️ Build Guide
🦀 Install Rust
We recommend installing Rust using rustup. You can install rustup
as follows:
-
macOS or Linux:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
-
Windows (64-bit):
Download the Windows 64-bit executable and follow the on-screen instructions.
🐙 Install Cecile
# Install 'Cecile'
$ cargo install Cecile --locked
Now to use Cecile language, in your terminal, run:
Cecile
Dependencies
~9–27MB
~313K SLoC