V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
chai2010
V2EX  ›  程序员

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

  •  
  •   chai2010 ·
    chai2010 · 2023-06-12 22:24:58 +08:00 · 974 次点击
    这是一个创建于 565 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    learningman
        1
    learningman  
       2023-06-13 08:36:53 +08:00 via Android
    怎么感觉就是写个玩具,单纯实现编解码器,可能连两个小时都不要?
    还是说难度在学这个语言本身
    zsj1029
        2
    zsj1029  
       2023-06-13 09:45:28 +08:00   ❤️ 1
    @learningman 文化自信,符合主旋律
    ihciah
        3
    ihciah  
       2023-06-13 12:06:42 +08:00 via iPhone
    https://github.com/ihciah/byte-style-encoder
    我这有个字节版的,阴阳怪气专用呢☺️
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2543 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:17 · PVG 08:17 · LAX 16:17 · JFK 19:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.