17 个版本

0.1.7 2024年2月2日
0.1.6 2024年1月8日
0.1.4 2023年12月21日
0.0.9 2023年12月10日

#251 in 编程语言

Download history • Rust 包仓库 9/week @ 2024-03-08 • Rust 包仓库 2/week @ 2024-03-15 • Rust 包仓库 51/week @ 2024-03-29 • Rust 包仓库 17/week @ 2024-04-05 • Rust 包仓库

每月下载量 194

MIT 许可证

240KB
6.5K SLoC

Group 1 (2)

塞西莉编程语言

⭐ 简介

塞西莉,一种简单、灵活的小型编程语言。

🍎 概述

欢迎使用塞西莉编程语言。

这门语言是我学习编译器和解释语言旅程的一部分。它受到了 ajeetdsouza/loxcraft 的启发,这是一个伟大的 Rust 项目,实现了 Lox 语言。

塞西莉的语法受到了像 JavaScript、Go 和 Rust 这样的传统编程语言的影响,注重开发者体验、可读性和易用性。

塞西莉是用 Rust 编写的。性能关键部分是用不安全 Rust 编写的,使其能够与传统解释语言(如 JavaScript、Python)相媲美。

重要提示:此项目仅用于学习目的。此项目的代码质量绝对不适合生产环境。

📕 功能

语言功能

  • 解释型
  • 字节码编译器
  • 运行时垃圾回收
  • 支持类型
  • 基本类型,数组
  • 控制流语句
  • 面向对象编程
  • 堆栈跟踪
  • Repl

正在开发的功能

  • 在线沙盒

为编译版本的塞西莉

  • 构建编译
  • 自托管
  • 标准库
  • 模块系统

🔥 语法示例

变量声明

// 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";

函数声明

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]

⚙️️ 构建指南

🦀 安装 Rust

我们建议使用 rustup 安装 Rust。您可以通过以下方式安装 rustup

  • macOS 或 Linux

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    
  • Windows (64位)

    下载 Windows 64位可执行文件 并按照屏幕上的说明进行操作。

🐙 安装塞西莉

# Install 'Cecile'
$ cargo install Cecile --locked

现在要使用塞西莉语言,在您的终端中运行

Cecile

依赖项

~9–25MB
~299K SLoC