main
SCL (SunsetCodeLang) 编程语言
什么是 SCL
SCL (SunsetCodeLang) 是一种简洁、高效、易于学习的编程语言,设计用于快速原型开发和脚本编写。它具有类似 Python 的语法,但更加轻量级,适合在资源有限的环境中运行。
主要特点
- 简洁的语法:类似 Python 的语法,易于学习和使用
- 轻量级:核心解释器体积小,运行内存占用低
- 高效执行:经过优化的解释器,执行速度快
- 插件系统:支持通过插件扩展功能
- 跨平台:支持 Windows、Linux 和 macOS
- 易于嵌入:可以轻松嵌入到其他应用程序中
系统要求
- 最低配置:0.5GHz CPU, 512MB 内存
- 推荐配置:1GHz CPU, 1GB 内存
- Python 版本:Python 3.6 或更高
安装方法
1. 从源代码安装
# 克隆仓库
git clone https://github.com/JGZYES/SunsetCodeLang.git
cd scl
# 直接运行
python scl.py your_script.scl
快速开始
第一个 SCL 程序
创建一个名为 hello.scl 的文件,内容如下:
# 导入基础插件
simp{basic}
# 打印 Hello World
sout : "Hello, World!"
# 变量赋值
set x | x : 10
set y | y : 20
# 计算并打印结果
sout : x + y
运行程序:
python scl.py hello.scl
基本语法
变量赋值
set x | x : 10
set name | name : "SCL"
条件语句
sif x > 5 |
sout : "x 大于 5"
sel |
sout : "x 小于等于 5"
end
循环语句
set i | i : 0
swhi i < 5 |
sout : i
set i | i : i + 1
end
函数定义
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) 工具安装插件:
# 安装单个插件
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 的终端文本编辑器:
python scl.py --edit
打包工具
使用 pack.py 将 SCL 代码打包成 Python 代码:
python pack.py input.scl output.py
示例程序
1. 简单计算器
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 请求示例
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 文件。
联系方式
享受编程的乐趣! 🌅
语言
Python
100%