
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 暑期夏令营吧!