Comfort Lang

Comfort Lang 是一款处于早期渐进式迭代阶段的命令式编程语言,单文件解释器,仅依赖 Python3.6+,MIT 协议。主打极致清爽的交互式编程体验。

Comfort Lang 不是 Python 的简化版,重构人机交互逻辑;Python 仅作为扩展生态。版本:v1.0.1

前往 GitHub 仓库
提示: REPL交互模式,直接输入变量或者表达式回车自动输出结果,不需要打印函数。

快速上手

克隆仓库并启动解释器:

git clone https://github.com/dxiangwiki/comfort-lang.git
cd comfort-lang
python comfort_lang.py

出现提示符 > 即进入 Comfort Lang REPL。输入 exit 退出终端。

变量声明 def

使用 def 批量声明多个变量。

> def a b c
[success]
> a
[None]
> d
[null]

批量赋值

支持逗号分隔批量赋值,字符串、括号内部的逗号不会被错误拆分,支持转义引号。

> a=10,b=20
[success]
> a
[10]
> a + b
[30]

> s="he said \"hello\""
[success]
> s
[he said "hello"]

函数定义

箭头语法定义顶层表达式函数:function 名称=(参数)=>表达式

> function add=(x,y)=>x+y
[success]
> add(a,b)
[30]
> add(50,60)
[110]

# 无参数函数
> function hello=()=>999
[success]
> hello()
[999]

函数环境快照

定义函数时会对当前全局环境做深度拷贝快照。函数捕获定义时刻的变量状态。

后续对全局变量重新赋值、修改列表/字典等可变对象,不会影响已经创建完成的函数。嵌套函数能力将在后续版本迭代补齐。

> def arr
[success]
> arr=[1,2,3]
[success]
> function get_arr=()=>arr
[success]
> get_arr()
[[1, 2, 3]]

> arr.append(99)
[None]
> get_arr()
[[1, 2, 3]]

REPL控制台完整演示

> def a b
[success]
> function add=(x,y)=>x+y
[success]
> a=100,b=200
[success]
> a
[100]
> b
[200]
> a + b
[300]
> add(a,b)
[300]
> exit
👋 感谢使用 Comfort Lang!

返回状态标记

内置函数

可以直接调用经过安全过滤的 Python 内置函数,无需额外导入。危险系统相关函数已屏蔽。

> abs(-99)
[99]
> len("Comfort Lang")
[12]
> max(10,20,99)
[99]
> sum([1,2,3,4,5])
[15]

当前限制

⚠️ 安全提示

✅ 本地使用完全安全:下载至个人设备运行交互式 REPL,可正常 clone、Star、Fork,支持公开分享与二次迭代。

❌ 不建议直接部署为公网在线后端服务:解释器内部使用 Python eval 执行表达式,即便配置危险函数黑名单,仍无法完全抵御外部不可信输入的逃逸风险。

项目处于早期渐进式迭代阶段,优先面向本地交互开发场景,暂不作为线上服务组件使用,后续会持续扩展语法能力。