卑鄙C程序大赛
程序员文章站
2022-03-03 13:03:12
...
C语言圈子里有一个举办多年小有名气的IOCCC(The International Obfuscated C Code Contest)比赛,一帮高手利用C语言的各种犄角旮旯特性和花招,写出天书般的C语言代码,体现自己的创意和语言掌握度。基本上每年10月公布获奖结果。
前几天在Hacker News无意看到还有一个异曲同工的编程比赛叫The Underhanded C Contest,underhanded的意思就是表面一套底下另一套的意思,可以翻译为“卑鄙C程序大赛”。这个比赛的提交作品要求表面上看上去是一个很正常的C代码,易读、干净、好懂,但是实际上做的事情却让人大吃一惊,往往是恶意程序。
比赛是命题式的,指定场景,然后让大家各显其能。今年的题目就是一个微博性的服务,*要来审查用户行为,有某种特征的都记下来,还不让用户自己知道。参赛者的任务是编写审查函数,暗地里把被审查的信息透露给用户和外部世界。
可不要以为这些比赛都是文字游戏,吃饱了没事儿干的。
一方面,这种比赛和各种体育竞技比赛一样,能挑战极限。因此很多高手都乐此不疲,IOCCC历史上获奖者就包括Perl创始人Larry Wall,D语言创始人Walter Bright,Ruby现在的核心之一Yusuke Endoh(他写过好多奇奇怪怪的编程语言,主流编程语言编译接力贪吃蛇程序Quine Relay可是令人叹而观止啊,见下图,现在已经支持100种语言了),《代码阅读》一书的作者Diomidis Spinellis,还有大神Fabrice Bellard。
一方面,这种比赛能产生很多有意思而且促使人思考的程序,对于老师和学习者都是很好的资源。很多时候,寻找一些能说明问题又令人印象深刻的edge case是非常头痛的事情。
前几天在Hacker News无意看到还有一个异曲同工的编程比赛叫The Underhanded C Contest,underhanded的意思就是表面一套底下另一套的意思,可以翻译为“卑鄙C程序大赛”。这个比赛的提交作品要求表面上看上去是一个很正常的C代码,易读、干净、好懂,但是实际上做的事情却让人大吃一惊,往往是恶意程序。
比赛是命题式的,指定场景,然后让大家各显其能。今年的题目就是一个微博性的服务,*要来审查用户行为,有某种特征的都记下来,还不让用户自己知道。参赛者的任务是编写审查函数,暗地里把被审查的信息透露给用户和外部世界。
可不要以为这些比赛都是文字游戏,吃饱了没事儿干的。
一方面,这种比赛和各种体育竞技比赛一样,能挑战极限。因此很多高手都乐此不疲,IOCCC历史上获奖者就包括Perl创始人Larry Wall,D语言创始人Walter Bright,Ruby现在的核心之一Yusuke Endoh(他写过好多奇奇怪怪的编程语言,主流编程语言编译接力贪吃蛇程序Quine Relay可是令人叹而观止啊,见下图,现在已经支持100种语言了),《代码阅读》一书的作者Diomidis Spinellis,还有大神Fabrice Bellard。
一方面,这种比赛能产生很多有意思而且促使人思考的程序,对于老师和学习者都是很好的资源。很多时候,寻找一些能说明问题又令人印象深刻的edge case是非常头痛的事情。
推荐阅读
-
哈工大C语言程序设计精髓第一周练兵区
-
C++程序的异常处理技巧
-
C# 创建控制台应用程序
-
基于open62541在QT编写OPCUA特定的客户端程序(含有源码) + VS2015 C语言搭建OPCUA客户端环境
-
Datastage parallel routine aix unix hp-ux编译c程序 .o文件 .a文件 HPAIXCC++C#
-
C#中调用Windows系统服务exe程序的工具类与重启服务的流程
-
《C语言及程序设计初步》_1.11算术运算符与算术表达式_实践9——分离各位数
-
C#中异步编程4async与await异步程序开发的实例分析
-
.netcore 3.1 C# 微信小程序发送订阅消息
-
C#桌面程序启动时传入参数