凹语言入选 CCF GLCC2023 编程夏令营

2023-06-12 22:24:58 +08:00
 chai2010

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 转换,第二阶段是干支码逐位替换。

课题的要求是使用凹语言实现天干地支码编解码库,最终评分为三个等级:

  1. 及格线自然是编解码库本身;
  2. 优秀线需要额外提供测试用例和性能分析报告;
  3. 满分线则需要提供一个完整的天干地支编解码网页应用。

最后是社区对各位同学的寄语:

快来报名 GLCC 暑期夏令营吧!

891 次点击
所在节点    程序员
3 条回复
learningman
2023-06-13 08:36:53 +08:00
怎么感觉就是写个玩具,单纯实现编解码器,可能连两个小时都不要?
还是说难度在学这个语言本身
zsj1029
2023-06-13 09:45:28 +08:00
@learningman 文化自信,符合主旋律
ihciah
2023-06-13 12:06:42 +08:00
https://github.com/ihciah/byte-style-encoder
我这有个字节版的,阴阳怪气专用呢☺️

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/948147

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX