Create README.md

这个提交包含在:
2026-04-09 19:29:14 +08:00
提交者 GitHub
父节点 71ba30e555
当前提交 9c168a39f4
+226
查看文件
@@ -0,0 +1,226 @@
# SCL (SunsetCodeLang) 编程语言
## 什么是 SCL
SCL (SunsetCodeLang) 是一种简洁、高效、易于学习的编程语言,设计用于快速原型开发和脚本编写。它具有类似 Python 的语法,但更加轻量级,适合在资源有限的环境中运行。
## 主要特点
- **简洁的语法**:类似 Python 的语法,易于学习和使用
- **轻量级**:核心解释器体积小,运行内存占用低
- **高效执行**:经过优化的解释器,执行速度快
- **插件系统**:支持通过插件扩展功能
- **跨平台**:支持 Windows、Linux 和 macOS
- **易于嵌入**:可以轻松嵌入到其他应用程序中
## 系统要求
- **最低配置**0.5GHz CPU, 512MB 内存
- **推荐配置**1GHz CPU, 1GB 内存
- **Python 版本**Python 3.6 或更高
## 安装方法
### 1. 从源代码安装
```bash
# 克隆仓库
git clone https://github.com/JGZYES/SunsetCodeLang.git
cd scl
# 直接运行
python scl.py your_script.scl
```
## 快速开始
### 第一个 SCL 程序
创建一个名为 `hello.scl` 的文件,内容如下:
```scl
# 导入基础插件
simp{basic}
# 打印 Hello World
sout : "Hello, World!"
# 变量赋值
set x | x : 10
set y | y : 20
# 计算并打印结果
sout : x + y
```
运行程序:
```bash
python scl.py hello.scl
```
### 基本语法
#### 变量赋值
```scl
set x | x : 10
set name | name : "SCL"
```
#### 条件语句
```scl
sif x > 5 |
sout : "x 大于 5"
sel |
sout : "x 小于等于 5"
end
```
#### 循环语句
```scl
set i | i : 0
swhi i < 5 |
sout : i
set i | i : i + 1
end
```
#### 函数定义
```scl
sdef <add(a, b)>
sre : a + b
end
set result | result : add(1, 2)
sout : result
```
## 插件系统
SCL 支持通过插件扩展功能。内置插件包括:
- **basic**:基础功能,包括变量、条件、循环等
- **math**:数学运算功能
- **string**:字符串处理功能
- **request**HTTP 请求功能
- **json**JSON 处理功能
- **crypto**:加密功能
- **unit**:单位转换功能
- **color**:终端颜色输出功能
### 安装插件
使用 SCD (SCL Plugin Downloader) 工具安装插件:
```bash
# 安装单个插件
python scd.py install math
# 从文件安装多个插件
python scd.py install -t
```
## SCD (SCL Plugin Downloader)
SCD 是 SCL 的插件下载和管理工具,用于安装、更新和管理 SCL 插件。
### 主要功能
- **安装插件**`scd install xxx` 下载并安装插件
- **更新插件**`scd update xxx` 更新插件
- **更新 SCD**`scd update scd` 更新 SCD 本身
- **批量安装**`scd install plugins.txt -t` 从文件安装插件
- **管理镜像源**`scd mirror https://xxxxx.xx` 添加镜像源
- **列出插件**`scd list local` 列出本地插件,`scd list web` 列出远程插件
## 开发工具
### Nano 编辑器
SCL 内置了一个仿 Nano 的终端文本编辑器:
```bash
python scl.py --edit
```
### 打包工具
使用 `pack.py` 将 SCL 代码打包成 Python 代码:
```bash
python pack.py input.scl output.py
```
## 示例程序
### 1. 简单计算器
```scl
simp{basic}
simp{math}
sout : "简单计算器"
sout : "输入第一个数:"
set a | a : input()
sout : "输入运算符 (+, -, *, /):"
set op | op : input()
sout : "输入第二个数:"
set b | b : input()
sif op == "+" |
set result | result : a + b
selif op == "-" |
set result | result : a - b
selif op == "*" |
set result | result : a * b
selif op == "/" |
set result | result : a / b
sel |
set result | result : "无效的运算符"
end
sout : "结果: " + result
```
### 2. HTTP 请求示例
```scl
simp{basic}
simp{request}
sout : "发送 HTTP 请求"
set response | response : request : GET<"https://api.github.com/users/octocat">
sout : response
```
## 性能优化
SCL 解释器经过了多方面的优化,包括:
- **缓存机制**:缓存表达式求值结果、tokenize 结果和代码块执行结果
- **内存管理**:限制缓存大小,防止内存过度使用
- **执行优化**:使用快速操作映射和递归下降解析器
- **算法优化**:优化字符串处理和数字转换
这些优化使得 SCL 在低配置设备上也能流畅运行。
## 贡献
欢迎贡献代码、报告 bug 或提出功能建议!请通过 GitHub Issues 或 Pull Requests 参与贡献。
## 许可证
SCL 采用 MIT 许可证,详见 LICENSE 文件。
## 联系方式
- **GitHub**https://github.com/JGZYES/SunsetCodeLang
- **Email**luoriguodu@qq.com
---
**享受编程的乐趣!** 🌅