The Cecile, a little programming language designed for simplicity and flexibility.
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.
- Interpreted
- Bytecode compiler
- Garbage collected in runtime
- Type Supported
- Basic types, Array
- Control flow statements
- Object Oriented Programming
- Stack tracing
- Repl
- Online playground
- Make compiled
- Self-hosted
- Standart library
- Module system
// Variable Declaration
let number: int = 1;
let string: String = "string";
// (Type Inferring) Ofcource you don't need to write type everytime you declare variable
let number = 2;
let string = "hello cecile";
fn say_hello() -> String {
return "hello";
}
println say_hello() // Out: "hello"
type Point {
x: int,
y: int,
}
impl Point {
fn new(x: int, y: int) {
self.x = x;
self.y = y;
}
}
let point: Point = Point();
let arr = [1, 2, 3, 4];
arr.push(5);
println arr; // Out: [1, 2, 3, 4, 5]
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'
$ cargo install Cecile --locked
Now to use Cecile language, in your terminal, run:
Cecile