浅谈文言文编程

_Rainlzy

2020-01-12 19:53:58

Personal

## 1、说在前面 现在,电脑编程技术日渐新颖。近日,一个文言文语言编程火遍了 $github$ ,这里将会为你讲述如何编写文言文代码。 ![](https://cdn.luogu.com.cn/upload/image_hosting/pa1sqbaj.png) ## 2、关于wenyan语言的代码与语法 ### 2-1、认识wenyan语言 **Hello wenyan** 咱们都知道,学习一门编程语言是从什么开始的?? 众编程 $orz$ :当然是 $A+B$ 辣~ 哦,不对,学习一门语言应该先从理解这个语言的优缺点啊,基础框架啊等等(回想一下你刚开始学 $C++$ , $Pascal$ 的时候(那时候我C++框架默了5遍都默错))。 但是! $wenyan$ 语言 ``没有框架!`` $wenyan$ 就像 $Pascal$ 一样,定义好变量后就直接开始打主代码了。不会像 $C++$ 一样还有什么万能头啊,什么 $STL$ 啊,没有这么多,简单易懂(还能提升你的文言文阅读水平)。 现在,我们要开始打主代码,我们先从最基本的 $Hello world!$ 开始吧~ $wenyan$ 的 $Hello world!$ 的输出是这样的: ``` 吾有一言。曰「「Hello world!」」。書之。 ``` 是不是很生动?很形象?对, $wenyan$ 就是这样!清晰易懂,代码简便...... 现在开始介绍 $wenyan$ 的基本语法: ### 2-2、基本语法 #### 2-2-1、定义变量 毕竟都说是文言文编程了,肯定不能出现英文字母和数字的嘛~ | wenyan | C++ | | :----------- | :----------- | | 吾有一數。曰六。名之曰「甲」。 | int a(a就是甲)=6; | | 有數六。名之曰「蒟蒻」。 | int juruo=6; | | 吾有一言。曰「「噫吁戲」」。名之曰「乙」。 | string b(s就是乙)=alas! | #### 2-2-2、ture和false true/false 分别对应 $wenyan$ 语言中的陽/陰(繁体的阳/阴),类型就是“爻”(卦符的基本符号): | wenyan | C++ | | :----------- | :----------- | | 吾有一爻。曰陽。名之曰「丙」。 | bool c=true; | | 吾有一爻。曰陰。名之曰「丁」。 | bool d=false; | #### 2-2-3、if判断 作为一个编程语言怎么少了 $if$ 判断呢? | wenyan | c++ | | :----------- | :----------- | | 若三不大於五者。吾有一言。曰「「OK」」。書之。。若非。乃得「「NO」」也。 | if(3<=5) cout<<"OK"; else cout<<"NO"; | #### 2-2-4、运算符 加减乘除一应俱全,连逻辑运算符都有! | wenyan | C++ | | :----------- | :----------- | | 加一以一。 | 1+1 | | 除七以三。所餘幾何。 | 7%3 | | 減六六六六以六六六。名之曰「甲」。 | int a=6666-666; | | | | #### 2-2-5 容器类型 容器类型也支持,而且注意一下,首个下标是从一开始的。 | wenyan | C++ | | :----------- | :----------- | | 吾有一列。名之曰「数组」。充「数组」以四。以二。 | int shuzu[]={4,2}; | | 夫「寶劍」之長。 | sword.size; | | 夫「蒟蒻」之一。 | juruo[1]; | | 夫「中国」之「「名」」。 | China["name"] | #### 2-2-6 进阶语法 一些 $wenyan$ 的进阶语法。。。。。。 | wenyan | JavaScript | | :----------- | :----------- | | 吾有一術。名之曰「吸星大法」。是術曰。⋯⋯是謂「吸星大法」之術也。 | function f(){...} | | 吾有一術。名之曰「六脈神劍」。欲行是術。必先得六數。曰「甲」。曰「乙」。曰「丙」。曰「丁」。曰「戊」。曰「己」乃行是術曰。⋯⋯是謂「六脈神劍」之術也。 | function f(a,b,c,d,e,f){...} | | 吾有一術。名之曰「翻倍」。欲行是術。必先得一數。曰「甲」。乃行是術曰。乘「甲」以二。名之曰「乙」。乃得「乙」。是謂「翻倍」之術也。 | function double(a){var b = a * 2; return b;} | | 施「翻倍」於「蒟蒻」。 | double(juruo); | | 吾有一數。曰五。書之。 | console.log(5); | #### 2-2-7 循环 就是那些 $for$ , $while$ 循环之类的。(注意! ``云云`` 为 $wenyan$ 语言循环的后面必加的东西!) | wenyan | C++ | | :----------- | :----------- | | 為是百遍。⋯⋯ 云云。 | for(int i=1;i<=100;i++) ...... | | 恆為是。⋯⋯ 云云。 | while(true) ...... | | 乃止。 | break | 目前就这些了...... # 3、编写wenyan语言程序运行 本人是用洛谷 $IDE$ 进行运行的,当然还有一种网站也可以实现 $wenyan$ 语言的编译运行,还可以实现 $wenyan$ 转 $JavaScript$ 和 $Python$ 的功能!(虽然我都不会......) 这个网站就是:[https://wy-lang.org/ide?example=beer](https://wy-lang.org/ide?example=beer) ! 这里面有不少好康和好玩的东西,你也可以在这里面编译。 而且项目文件还有个脚本src/render.js,它可以把程序渲染成古代书籍的样子。 ![](https://cdn.luogu.com.cn/upload/image_hosting/ioswoq7n.png) # 4、关于wenyan语言编程 > 夫唐、虞之世,結繩而足治,屈指而足算。是時豈料百代之後,計算機械之巧,精於公輸之木鳶,善於武侯之流馬;程式語言之多,繁若《天官》之星宿,奇勝《山經》之走獸。鼠、蟹、鑽、魚,或以速稱。蛇、象、駱、犀,各爭文采。方知鬼之所以夜哭,天之所以雨粟。然以文言編程者 ,似所未有。此非文脈之所以傳,文心之所以保。嗟予小子,遂有斯志。然則數寸之烏絲猶覆於頭,萬卷之素書未破於手;一身長羁于远邦,兩耳久旷于雅言。然夫文章者吾之所宿好,程式者偶承時人之謬譽。故希孟不慚年少,莊生不望無涯。乃作斯言。未能嘔瀝長吉之心血,亦庶幾免於義山之流沫。既成之後,復學干將鑄劍而自飼,越王嚐糞而當先。自謂偶追《十書》之筆意,但恨少八家之淋漓。此子山所謂士衡抚掌而甘心,平子見陋而固宜。然則雖實覆甕之質,尚存斧正之望;雖乏呂相之金,易字之渴蓋同。此亦開源之大義,吾輩之所以勉勵也。一笑。 ----Huang Lingdong(wenyan语言作者) Huang Lingdong,来自卡耐基梅隆大学,如今大四,明年即将毕业。高中则毕业自上海世界外国语中学。 就是这个小伙子,做出了这个风靡 $github$ 的 $wenyan$ 语言! # 5、写在最后 到最后,不知道大家看懂没(反正我是看懂了)。 好了,我的 $wenyan$ 语言就讲到这里了,谢谢观看的各位 $orz$! $tql$