文言编程语言/wenyan-lang

这是一个大学生开源的一个文言文编程语言。

关键是这门文言文的编程语言,是一位卡内基梅隆大学(CMU)的大四学生开发。利用 NLP 的一些技术,将文言文程序语法转换到 JavaScript 或 Python 运行,并不是简单的将程序中的英文字符换成了中文

如要体验这门语言就到Wenyan Online IDE

下面就是这门语言的操作。

1.定义数据

文言                                                       javascript

吾有一數。曰三。名之曰⌈甲⌋。                               var a = 3;
有數五十。名之曰⌈大衍⌋。                                   var dayan = 50;
昔之⌈甲⌋者。今⌈大衍⌋是也。                                  a = dayan;
吾有一言。曰⌈⌈abc⌋⌋。名之曰⌈乙⌋。                            var b =" abc";
吾有一爻。曰蔭。名之曰⌈丙⌋。                                var c = false;
吾有一列。名之曰⌈丁⌋。                                     var d = [];
吾有三數。曰一。曰二。曰五。名之曰⌈甲⌋。曰⌈乙⌋。曰⌈丙⌋。     var a =1,b = 2,c=5;

2.流程控制

利用这些我们可以编写一些简单程序

文言                                                                   JavaScript

若三大於二者。乃得⌈⌈想當然耳⌋⌋也。                                        if (3>2){return "of course";}
若三不大於五者。乃得「「想當然耳」」                                     if(3<=5){return "of course"}else{return "noway"}
為是百遍。……云云。                                                     for(vari=0;i100;i++){...}
恒為是。……云云。                                                       while (true){...}                                                      
凡「天地」中之「人」。……云云。                                         for (var human of world){...}
乃止。                                                                   break;

3.运算 

最基本的运算是必须的

文言                                     JavaScript
 
加一以二。                                  1+2
加一於二。                                  2+1
加一以二。乘其以三。                       (1+2)*3
除十以三。所餘幾何。                        10%3
減七百五十六以四百三十三。名之曰「甲」。    var a=756-433;
夫「甲」「乙」中有陽乎。                    a||b
夫「甲」「乙」中無陰乎。                    a&&b

4.容器

使存储数据更加方便

文言                                         JavaScript

吾有一列。名之曰⌈甲⌋。充⌈甲⌋以四。以二。         var a = []; a.push(4,2);
銜⌈甲⌋以⌈乙⌋。以⌈丙⌋。                            a.concat(b).concat(c);
夫⌈甲⌋之一。                                    a[0];
夫⌈甲⌋之其餘。                                  a.slice(1);
夫⌈玫瑰⌋之⌈⌈名⌋⌋。                                rose["name"]
夫⌈寳劍⌋之辰。                                  sword.lengh;

5.函数

文言                                                                    JavaScript

吾有一術。名之曰⌈吸星大法⌋。是術曰。……是謂⌈吸星大法⌋之術也。            function f(){……}

吾有一術.名之曰⌈六脈神劍⌋。欲行是術。必先得六數。曰⌈甲⌋。曰⌈乙⌋。       
曰⌈丙⌋。曰⌈丁⌋。曰⌈戊⌋。曰⌈己⌋乃行是術曰。……是謂⌈六脈神劍⌋之術也。          function f(a,b,c,d,e,f){……}      

吾有一術.名之曰⌈翻倍⌋。欲行是術。必先得一數。。曰⌈甲⌋。乃行是術曰。
乘⌈甲⌋以二。名之曰⌈乙⌋。乃得⌈乙⌋。是謂⌈翻倍⌋之術也。                         function  double(a){var b = a * 2;return b;}

施⌈翻倍⌋於⌈大衍⌋。                                                          double(dayan);
吾有一數。曰一。書之。                                                     console.log(1);

这样我们就可以实现一些基本操作,如: 

吾有一術名之曰「乘算口訣」。是術曰。
    有數一名之曰「甲」。
    恆為是。若「甲」不小於十者乃止也。
        有數一名之曰「乙」。
        加「甲」以「乙」名之曰「丙」。
        恆為是。若「乙」不小於「丙」者乃止也。
                乘「甲」以「乙」名之曰「果」。
                若「果」不小於十者吾有三言。曰「乙」曰「甲」曰「果」書之。
                若非吾有四言。曰「乙」曰「甲」曰「「得」」曰「果」書之也。
                加「乙」以一。昔之「乙」者今其是矣。
        云云。
        加「甲」以一。昔之「甲」者今其是矣。
    云云。
是謂「乘算口訣」之術也。
施「乘算口訣」。
//乘法口决
//摘自https://ide.wy-lang.org/?file=multiplication_table

从上面可以看出在Wenyan中 甲 为 a ,乙 为 b ,以此类推。


 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值