Rust实现的趣味三体编程语言

电子说

1.3w人已加入

描述

项目地址: https://github.com/rustq/3body-lang

在线体验: https://rustq.github.io/3body-lang/

基于 REPL

编程语言

基于 Runtime

编程语言

线上体验

编程语言

Working with Wasm!! 主很在乎

Playground: https://rustq.github.io/3body-lang/

语法

Variable bindings

Format

	

<identifier><expression>;

Example

	

给 岁月 以 "文明"; 给 时光 以 "生命";

Operators

前进(+)运算符

	

给 自然选择 以 0; 自然选择 前进 4 // > 4

降维(-)运算符

	

给 宇宙 以 { "维度": 10 }; 宇宙["维度"] 降维 7 // > 3

Boolean


	

这是计划的一部分 // > true


	

主不在乎 // > false

Function

Format

	

法则 (<parameter one>, <parameter two>, ...) { <block statement> };

Example

	

给 黑暗森林 以 法则() { 给 基本公理 以 ["生存是文明的第一需要", "文明不断增长和扩张,但宇宙中的物质总量保持不变"]; 基本公理 } 黑暗森林()

Loop

Format

	

面壁 (<expression>) { <block statement> };

Example

	

给 面壁计划 以 法则() { 给 危机纪元 以 3; 给 人数 以 4; 面壁 (危机纪元 < 400) { 给 危机纪元 = 危机纪元 + 1; if (危机纪元 == 8) { 给 人数 以 人数 - 1; 延续; } if (危机纪元 == 23) { 给 人数 以 人数 - 1; 延续; } if (危机纪元 == 205) { 给 人数 以 人数 - 1; } 广播([危机纪元, 人数]); if (危机纪元 == 205) { 破壁; } } } 面壁计划()

内置方法

Print

Format

	

广播(<arg1>, <arg2>, ...): void

Example

	

给 三体世界坐标 以 "半人马星系"; 广播(三体世界坐标); // > "半人马星系"

Sleep

Format

	

冬眠(<arg1>): void

Example

	

冬眠(1000);

Clear

Format

	

二向箔清理(): void

Example

	

二向箔清理();

Exit

Format

	

毁灭(): void

Example

	

毁灭();

关键字对照表

Monkey 3body-lang Explanation
let "give"
= "as"
+ 前进 "go forward"
- 降维 "dimension reduction"
true 这是计划的一部分 "It's part of the plan."
false 主不在乎 "The Lord doesn't care."
fn 法则 "rule"
while 面壁 "face the wall"
break 破壁 "break the wall"
continue 延续、延绪 "continue"
print 广播 "broadcast"
sleep 冬眠 "hibernation"
clear 二向箔清理 "two-way foil cleaning"
exit 毁灭 "destroy"

系统内置随机函数库 (基于纯 3body 语法实现)

rand

如何开发本项目


	

$ git clone https://github.com/rustq/3body-lang.git $ cd 3body-lang $ make repl


	

$ ./target/debug/runtime ./example/macroatom.3body


	

$ make build_wasm


	

$ make test

有更多建议和想法

Create issues: issues

审核编辑 :李倩

 


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分