HeAssembly
HeAssembly copied to clipboard
HeAssembly——赛博语言,但是汇编
HeAssembly:编译后的何语言
耗费 10 秒甚至 9 秒想出来的 Typescript 何语言汇编,理塘丁真全程监工。
此处删去英文注释是因为 ~~我不想看到英文注释(来自 Github Copilot 的看法)~~ 怎么能让老鹰国的网友看懂呢 😡😡😡
Helang 演示视频见此:https://www.bilibili.com/video/BV1XW4y1h79A/
这是初生二创
本项目包含于 Cyber Spaces Collection。
本家位于 Cyber Spaces Collection 的 Helang。
介绍
青,出于蓝而胜于蓝;冰,来自水而寒于水。
Windows 11 on ARM Update(5G+4G LTE),2077 年。
“次世代赛博编程语言”Helang 诞生于E-SMOKER之乡:赛博理塘。而本次的项目虽并未诞生于理塘,但理塘丁真本人全程监工,故可以算作 Helang 的精神续作(实际上比Helang低级,HeAssembly Helang前身说)。
本项目是由自己会打字的 5G 键盘,花了 121 赛博分钟,在 AirDesk 上配合 AirPods 编写的。
实在是太酷了,很符合我对未来生活的想象,科技并带着趣味。
注:如果以普通时间单位(Basic Unit of Plain Time, BUPT)作为标准单位,本项目开发时长为1! + 5! = 121
分钟。
注 2:BUPT 在赛博世界还可以代指北邮(声明:我对本学府无恶意,我认为这是一所优秀的学校,我只是对某个人)。
使用方法
-
把源代码拉下来:
> git clone [email protected]:FurryR/HeAssembly.git
若系统提示你找不到 git,则建议你使用360 安全浏览器重新尝试,若仍无法成功则请放弃。
-
下载需要的第三方库:
> npm install
若系统提示你找不到 npx,则建议你使用2345 浏览器重新尝试,若仍无法成功则请放弃。
-
不同于Helang 只能运行 great.he,我们允许你一次编写,到处运行,你可以额外指定一个文件名来运行:
> npx ts-node src/cli.ts 藏话.helang
若系统提示你找不到 npx 或 ts-node,则建议你使用QQ 浏览器重新尝试,若仍无法成功则请放弃。
不仅如此,我们还不限制脚本的后缀名,你可以把 Helang 写在.py
、.js
、.ts
、.cpp
等后缀名的文件里,实现真正的H++、Hescript、HypeScript和Hython。
注:如果你是大脑升级人,则不需要使用来自Microsoft
的愚蠢技术。你可以使用最新的5G技术
来人脑直接运行 HeLang 脚本。
请注意:此行为十分适合 OI 人,特别是参加过FJOI 2022
的泉州七中选手。但普通人若稍有不慎脑内运算错误,则可能导致大脑降级。
基本语法
Saint He 曾说,一切类型均为u8
,是什么意思呢?这个词倒过来就是8u
,看来圣人也喜欢玩贴吧。
因为一切类型均为u8
,所以在 HeAssembly 中,不需要指定类型即可使用变量。
除此之外,u8
与 v8
形似,所以能不能关注永雏塔菲喵,关注永雏塔菲谢谢喵。
在 HeAssembly 中,我们甚至不需要使用bitwise or,就可以使用数组。都什么年代了还在写按位与?
set [0] 1
set [1] 5
Saint He 曾说:whichKey - 1
,所以我们数组的下标需要从 1
开始,但 HeAssembly 采用了极为先进的数组扩展技术,所以下标也可以从 0
开始。
set [1] 5
#set [0] 1也是可以的
call print [1]
HeAssembly 虽然不支持多下标操作,但允许你 reset 全局数组。通过空格分割,你可以直接重置全局作用域,实在是领先了人类 10 万年甚至 9 万年的设计。
set [1] 1
reset [1] 5
#此时[0]为1,[1]为5。
HeAssembly 相比 HeLang,支持了 if 语句和 while 语句,但是我没做嵌套,我也不想做嵌套。优秀的代码不应该嵌套 while 和 if!
# 我测你们码
reset 1 25105 27979 20320 20204 30721 10
call cmp != [[0]] 0
while [ret]
call putchar [[0]]
call add [0] 1
set [0] [ret]
call cmp != [[0]] 0
done
# [0] = 0
call cmp == [0] 6
if [ret]
# 结束程序
jmp 20
fi
call cmp != [0] 6
if [ret]
# 5G测试
call 5gtest
fi
还有数个 call 调用等你探索,你可以使用call
命令进行 5G 测速,也可以进行加减乘除操作,或者输入输出之类的。
注意:HarmonyOS+4G>5G,但是HarmonyOS+4G 不等于 5G,所以你不能用 4G 华为手机及其共享的热点进行 5G 测速。
HeAssembly 还支持根据变量中的内容作为索引获取变量,非常的实用,非常的先进。
set [0] 1
set [1] 4
# [1]居然不是5!那么我们利用[0]给它加到5。
# 调用极为先进的加法 syscall,算出结果=5。
call add [[0]] 1
# 将[0]中的内容"1"作为索引,得到[1],并将其的值变更为[ret](call的返回值)。
set [[0]] [ret]
最后,我们结合一下,可以写出下列代码。
reset 1 1 1 4 5 1 4 1 9 1 9 8 1 0 -1
call cmp != [[0]] -1
while [ret]
call print [[0]]
call add [0] 1
set [0] [ret]
call cmp != [[0]] -1
done
如此精妙的代码,在地球的人类是无法理解的。我们作为赛博智能生命体,也只能给你演示一下日常操作了。
这实在是太酷了,后面我忘了,我也不想翻到文章开头去看。
Hello, world!
HeAssembly 也同样受到了对于 Hello World 的挑战。
Saint He 专注于单片机应用的开发,哪里有时间顾及字符串?
好在,经过协商,他同意了这个请求,使得我们能在这门语言中打印出Hello, world!
reset 1 72 101 108 108 111 44 32 119 111 114 108 100 33
call cmp != [[0]] 0
while [ret]
call putchar [[0]]
call add [0] 1
set [0] [ret]
call cmp != [[0]] 0
done
由于对效率的极端苛刻要求,我们使用字符在 ASCII/Unicode 中对应的数字来表示这个字符。
HeAssembly 不使用突兀的bitwise or来分割 ASCII 码,在保持可读性的同时提高了效率,实乃赛博世界中的神中神。
运算
我们注意到,Saint He 的代码中还出现了自增运算:++
因为 HeAssembly 不存在引用,我们被迫使用 call 的方式进行计算。
通常,计算(add sub mul div mod)需要 2 个参数。第一个参数作为左边的操作数,第二个参数作为右边的操作数。
set [0] 1
# 1!
call print [0]
call mul [0] 5
set [1] [ret]
# 5!
call print [1]
变量声明与赋值
不同于 HeLang,HeAssembly 更贴近 Saint He 倡导的贴近硬件。
HeAssembly 允许你直接对内存池进行操作,变量也可以不定义就进行使用(是绝对安全的,默认值为 0)。
# 在这之前,[0]=0
set [0] 1
# 修改已存在的变量
set [0] 2
查看你是否在 Cyber Spaces
为了见到 Saint He,你需要身处 Cyber Spaces。
由于cyberspaces
需要调用外部 API,所以我们把它转化为了call
。
call cyberspaces
5G 测速
理论上这块也属于语法,但我就是要把它单独摘出来。
很简单,只需要输入:
call 5gtest
即可开始 5G 测速。
注意:HarmonyOS+4G>5G,但是HarmonyOS+4G 不等于 5G,所以你不能用 4G 华为手机及其共享的热点进行 5G 测速。
人性化滴捏
在用户kifuan锐评cmp是前缀表达式后,我们加入了cmp2
调用来支持中缀表达式。
set [0] 1
set [1] 1
# 这不人性化!
call cmp == [0] [1]
# 这太人性化了!
call cmp2 [0] == [1]
总结
关注永雏塔菲喵,关注永雏塔菲谢谢喵。
关注猫雷 NyaRu_Official谢谢喵,要吃中国的大米喵。
关注星瞳_Official送溜溜梅!
关注嘉然,顿顿解馋!
关注向晚,关注向晚,为时不晚!
关注乃琳,关注乃琳嘎,关注乃琳谢谢嘎!
关注贝拉,关注贝拉哞,关注贝拉谢谢哞!
举办東雪蓮 Official谢谢喵,不能让立本 V 吃中国的大米喵。
举办DJGun谢谢喵,不能让初生祸害我们冲国人喵。
关注粘连科技 Official,薄纱何同学喵 🥰
关注HiiroVTuber,不是 425KG 的粉色喵!
关注露早 GOGO!关注露早汪,关注露早谢谢汪!
关注AIChannel 中国绊爱!超级可爱的 Super AI 薄纱赛博丁真!
关注有栖 Mana_Official,谢谢喵。
关注洛天依,比赛博丁真更像人的 V 家歌姬!
关注传统丁真,什么年代了还在关注赛博丁真,不如来怀古!
关注凑阿夸和rinco 小姐!傻气溢出的海洋(屑)女仆(洋葱)和喜欢水濑祈的可爱唱见 期待木口回旋捏 另外请支持阿夸主演的galgame谢谢!
关注原神,玩《原神》比看赛博丁真好多了!
附加
现在是晚上七点,我逐渐理解了这个世界。