CCF GitLink 确实开源编程夏令营( GitLink Code Camp ,简称 GLCC ),是由中国计算机学会( CCF )主办,之江实验室承办,CCF 开源发展委员会( CCF ODC )与 GitLink 确实开源社区协办的面向全国高校学生的暑期开源项目实习计划。学生在开源项目导师的指导下,以开源项目为题,学生完成特定题目的形式,最终导师审核通过后,学生获得丰厚奖金。
B 站完整的视频地址: https://www.bilibili.com/video/BV1AX4y1b71T/
凹语言社区给大家带来的课题是天干地支编码库。
课题链接: https://www.gitlink.org.cn/glcc/2023/subjects/detail/683
下面是凹语言项目的基本情况:
凹语言是国内编程语言爱好者发起的开源项目,宗旨是创建一门通用的静态类型编译型语言,主要使用环境是 WebAssembly 。降低使用者的心智负担是凹语言的设计重点;凹语言的运行时和后端是自行开发的,我们希望通过社区交流把语言设计和编译器的实践经验尽可能的分享出去。
去年 9 月我们实现了在浏览器内编译、执行全链路,今年 7 月份我们将发布 MVP 版本。
接下来是天干地支编码库课题介绍:
题中的天干地支码是一种将二进制串转换为可读文本的编码,它的设计灵感源自我国古代的天干地支纪年法,大家都知道干支纪年每 60 年一个轮回,所以每个干支码可以对应 0 到 59 中的一个数值,这个对应表我们就叫它干支码表。
下面是天干地支码的编码过程:
假如输入是 UTF8 编码的字符串“你好”,它对应的二进制串是这 6 个字节,如果把它看作一个二进制数,对应的十进制数就是下面这个很大的数字。把这个数转换为 60 进制,会得到一个 9 位数,每位对应的十进制值从高到低依次为 1 、29 、50 等等,然后参照前面的干支码表,将每位数换掉,就得到了最终的天干地支码。简单来说编码过程分为两个阶段,第一阶段是 Base60 转换,第二阶段是干支码逐位替换。
课题的要求是使用凹语言实现天干地支码编解码库,最终评分为三个等级:
最后是社区对各位同学的寄语:
快来报名 GLCC 暑期夏令营吧!
1
learningman 2023-06-13 08:36:53 +08:00 via Android
怎么感觉就是写个玩具,单纯实现编解码器,可能连两个小时都不要?
还是说难度在学这个语言本身 |
2
zsj1029 2023-06-13 09:45:28 +08:00 1
@learningman 文化自信,符合主旋律
|
3
ihciah 2023-06-13 12:06:42 +08:00 via iPhone
https://github.com/ihciah/byte-style-encoder
我这有个字节版的,阴阳怪气专用呢☺️ |