考试

中考总分120分。其中古代诗歌默写6分,文言文阅读11分,古诗鉴赏4分。总共21分。

古代文学占17.5%

高考总分150分。文言阅读9分,翻译10分,古诗词鉴赏8分,古诗文默写5分。总共32分。

古代文学占21.3%

可见文言文是十分重要的。

然而。。。你想过用文言文编程吗???

简介

这是一款由卡内基梅隆大学一名大四学生(作者名叫 Huang Lingdong)打造的文言文编程语言:文言(wenyan-lang)。

虽然不是最好的语言,但展现了中华民族传统文化的博大精深。

该语言完全不使用英文字符,只包含繁体中文字符以及繁体的引号「」。

例如:这是他的Hello Word

吾有一數。曰三。名之曰「甲」。

為是「甲」遍。

吾有一言。曰「「問天地好在。」」。書之。

云云

编译为Javascript

var n = 3;

for (var i = 0; i < n; i++) {

console.log("問天地好在。");

}

编译为Python

a=3

for _rand1 in range(a):

_ans1="問天地好在。"

print(_ans1);

编译为Ruby

a=3

a.times do |_rand1|

_ans1="問天地好在。"

p([_ans1].join)

end

自译为c/c++

int n = 3;

for (int i=0;i

printf("問天地好在。");

}

运行:

問天地好在。問天地好在。問天地好在。

wenyan目前可编译为JavaScript,Python或Ruby,并且将来会支持更多语言(例如C)。

本篇文章的c/c++翻译,全为作者个人自译。

基本语法

变量

文言(wenyan)

Javascript

c/c++

吾有一數。曰三。名之曰「甲」。

var a = 3;

int a = 3;

有數五十。名之曰「大衍」。

var dayan = 50;

int dayan = 50;

昔之「甲」者。今「大衍」是矣。

a = dayan;

a = dayan;

吾有一言。曰「「噫吁戲」」。名之曰「乙」。

var b = "alas!";

string b = "alas!";

吾有一爻。曰陰。名之曰「丙」。

var c = false;

bool c = false;

吾有一列。名之曰「丁」。

var d = [];

vector d;

吾有三數。曰一。曰三。曰五。名之曰「甲」曰「乙」曰「丙」。

var a=1,b=3,c=5;

int a=1,b=3,c=5;

顺序控制

文言(wenyan)

Javascript

c/c++

若三大於二者。乃得「「想當然耳」」也。

if (3>2)

{ return "of course"; }

if (3>2)

{return"ofcourse";}

若三不大於五者。乃得「「想當然耳」」。若非。乃得「「怪哉」」也。

if(3<=5){return "of course"}else{return "no way"}

if(3<=5){return "of course"}else{return "no way"}

為是百遍。⋯⋯ 云云。

for (var i = 0; i < 100; i++){ ... }

for (int i = 0; i < 100; i++){ ... }

恆為是。⋯⋯ 云云。

while (true) { ... }

while (true) { ... }

凡「天地」中之「人」。⋯⋯ 云云。

for (var human of world){ ... }

for (int human : world){ ... }

乃止。

break;

break;

数学

文言(wenyan)

Javascript

c/c++

加一以二。

1+2

1+2

加一於二。

2+1

2+1

加一以二。乘其以三。

(1+2)*3

(1+2)*3

除十以三。所餘幾何。

10%3

10%3

減七百五十六以四百三十三。名之曰「甲」。

var a = 756-433;

int a = 756-433;

夫「甲」「乙」中有陽乎。

a || b

a || b

夫「甲」「乙」中無陰乎。

a && b

a && b

Objects

文言(wenyan)

Javascript

c/c++

吾有一物。名之曰「甲」。

var a = {};

struct node {} a;

吾有一物。名之曰「甲」。其物如是。物之「「乙」」者。數曰三。物之「「丙」」者。言曰「「丁」」。是謂「甲」之物也。

var a = {b:3, c:"d"}

struct node  {int b=3;char c="d";}a;

函数

文言(wenyan)

Javascript

c/c++

吾有一術。名之曰「吸星大法」。是術曰。⋯⋯是謂「吸星大法」之術也。

function f(){...}

void xixingdafa () {...}

吾有一術。名之曰「六脈神劍」。欲行是術。必先得六數。曰「甲」。曰「乙」。曰「丙」。曰「丁」。曰「戊」。曰「己」乃行是術曰。⋯⋯是謂「六脈神劍」之術也。

function f(a,b,c,d,e,f){...}

void liupaishengjian (int a,int b,int c,int d,int e,int f) {...}

吾有一術。名之曰「翻倍」。欲行是術。必先得一數。曰「甲」。乃行是術曰。乘「甲」以二。名之曰「乙」。乃得「乙」。是謂「翻倍」之術也。

function double(a){var b = a * 2; return b;}

viod Double(int a){int b = a * 2; return b;}

施「翻倍」於「大衍」。

double(dayan);

Double(dayan);

吾有一術。名之曰「甲」。欲行是術。必先得一數曰「乙」。二言。曰「丙」。曰「丁」

function a(float b, string c, string d)

void a(int b, string c, string d);

夫「甲」。夫「乙」。夫「丙」。取二以施「丁」。取二以施「戊」。名之曰「己」。

var f = e(a,d(b,c))

int f = e(a,d(b,c))

夫「甲」。夫「乙」。夫「丙」。取二以施「丁」。取二以施「戊」。取一以施「己」。夫「庚」。夫「辛」。取三以施「壬」。名之曰「癸」。

var j = i(f(e(a,d(b,c))),g,h)

int j = i(f(e(a,d(b,c))),g,h)

乃得四十九

return 49;

return 49;

減五十以一。乃得矣

return 50-1;

return 50-1;

乃歸空無

return;

return;

注释

文言(wenyan)

Javascript

c/c++

批曰。「「文氣淋灕。字句切實」」。

/*文氣淋灕。字句切實*/

/*文氣淋灕。字句切實*/

注曰。「「文言備矣」」。

/*文言備矣*/

/*文言備矣*/

疏曰。「「居第一之位故稱初。以其陽爻故稱九」」。

/*居第一之位故稱初。以其陽爻故稱九*/

/*居第一之位故稱初。以其陽爻故稱九*/

代码欣赏

我自己的评价

网上的一些评价也是参差不齐,我认为作者(Huang Lingdong),做这个项目其实只是一个期末作业亦或业余爱好。把这个当一件有趣的事罢了。并不希望成为主流或十分强大的语言。

我认为,作者既然没说这是一个多么认真、能用于生产环境的正式项目。而从这玩笑中寻找意义和用途,才是没意义的是。

因为文言语言可以解释成各种语言。他可做的是还是较多的。(其中洛谷题库支持文言语言是一个很好的例子。)

这是A+B problem 的文言:

施「require('fs').readFileSync」於「「/dev/stdin」」。名之曰「數據」。

施「(buf => buf.toString().trim())」於「數據」。昔之「數據」者。今其是矣。

施「(s => s.split(' '))」於「數據」。昔之「數據」者。今其是矣。

注曰。「「文言尚菜,無對象之操作,故需 JavaScript 之语法」」。

夫「數據」之一。取一以施「parseInt」。名之曰「甲」。

夫「數據」之二。取一以施「parseInt」。名之曰「乙」。

加「甲」以「乙」。書之。

抱歉,我自己看文言代码是看不了的。我也不希望上面的一些有识之士把文言语言作为NOI信息竞赛或计算机专业的必学语言。(除非想复辟繁体字)

Esolang

Esoteric programming language,简称 Esolang,它们的设计被用于测试计算机语言设计的极限,作为一个概念的证明,或仅仅是一个玩笑。Esolang 创作者通常并不打算让它成为主流编程语言,他们几乎不会在意语言的可用性,甚至恰恰相反,会故意增加使用难度。(我介绍这个你们自己品)

比如 Brainfuck,它是在 1993 年被创造的编程语言,语法仅包含八种符号,没有任何单词,用它打印 Hello world 是这样的:

++++++++++[>+++++++>++++++++++>+++>+<<<

>++.>+.+++++++..+++.>++.<

>.+++.------.--------.>+.>.

再比如 MarioLANG,它同样只能使用符号,需要使用形似马里奥关卡的语法来书写:

++++: > > +:+:+:+:+:+:+:::::

====+ >^=== """=================

+:-):(:^= = !

========= = #

= ! .+.,:-<

=### ======"

Parenthesis Hell,言如其名,括号地狱,只能使用括号来书写:

(()()(()()(()()()()((()()(()(()((()((()()()((()((()()()((()((((()()(()(

)()()()()(((()(((()((()((((()(((()()(()()((()((()()()((()()(()()()()(()

()()()(()()()()(()(())))))))))))))))))))))))))))))))))))))))))))))))))

-----------------------------END--------------------------------

有关古文的C语言编程题,文言文考试也编程,文言语言!!!(附c/c++自译)相关推荐

  1. c语言程序题是如何判分的,C语言编程题判分系统的研究与实现

    摘要: 随着计算机技术和因特网的发展,B/S模式的教学系统在高校教学中显得越来越重要.C语言程序设计是计算机专业的一门重要的基础课程,具有实践性强的特点,在教学中应加大实践教学比例.本文利用网络技术开 ...

  2. c语言编程题素数和,程序设计入门——C语言 第4周编程练习 1 素数和(5分)

    题目内容: 我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推. 现在,给定两个整数n和m,0 输入格式: 两个整数,第一个表示n,第二个表示m. 输出格式: 一个整数,表示第n个素数到 ...

  3. c语言编程题输入两个直角边,C语言编程 直角三角形已知两边求第三边

    C语言编程题 求大神解答 好久没写C了,不知道对不对:intsum=0;intindex=0;for(;indexsum+=a[2][index];}returnsum; C语言编程题,求分段函数 刚 ...

  4. 全国计算机二级编程题100道,计算机二级C语言100道编程题

    国家计算机二级100道编程题 #include #include int fun(int score[], int m, int below[]) { int i,k=0; float av=0.0; ...

  5. 沈阳工业大学c语言编程题,金融工程专业《C语言程序设计》启发式教学探讨

    一.引言 C语言是一门高级程序设计语言,掌握C语言不仅有利于提高学生的思维能力,而且有利于培养学生的编程能力,对学习其他计算机语言课程具有很大的帮助.因此,<C语言程序设计>既是计算机各类 ...

  6. 数据结构面试题编程题_您下次编程面试时应该了解的顶级数据结构

    数据结构面试题编程题 by Fahim ul Haq 通过Fahim ul Haq Niklaus Wirth, a Swiss computer scientist, wrote a book in ...

  7. java 初级编程题_java基础经典编程题

    java基础经典编程题 Monkey_peach代码 package com.sailor.game; /** * 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第 ...

  8. C语言填空题10道,3道C语言填空题,谁帮忙做下,谢谢

    3道C语言填空题,谁帮忙做下,谢谢0 功能:输出两个整数中大的那个数,两个整数由键盘输入. #include #include int main() { int a,b,*p1,*p2; p1=(in ...

  9. java 编程题_最新JAVA编程题全集(50题及答案)92862

    <最新JAVA编程题全集(50题及答案)92862>由会员分享,可在线阅读,更多相关<最新JAVA编程题全集(50题及答案)92862(32页珍藏版)>请在人人文库网上搜索. ...

  10. pta中java编程题_多文件编程题

    多文件编程题与函数题相似,区别是裁判编写的判题程序可能涉及多个文件,因此不是写在题干里,而是以附件的形式供学生下载,方便学生调试.学生须按照题干上给出的要求编写程序,完成指定功能.学生的提交也可能包含 ...

最新文章

  1. Visual Studio UML Use Case Diagram(2)
  2. 不懂装饰器,就不是真正会 Python
  3. python编程基础_月隐学python第一课
  4. React中解决样式丢失问题
  5. 信息学奥赛一本通 2062:【例1.3】电影票
  6. mysql修改字段结构_MySQL修改表结构及其添加删除修改字段功能
  7. 面向对象——抽象基类
  8. 数据结构上机实践第九周项目3 - 利用二叉树遍历思想解决问题
  9. 局域网不能远程控制_如何通过Windows自带的局域网远程控制连接两台设备
  10. mpvue微信小程序引入腾讯地图sdk
  11. CSS命名规范--BEM
  12. simulink仿真实例_推荐几本关于制冷仿真的书籍(制冷仿真必备)
  13. 百度地图---之---行政区域划分
  14. 关于Redis雪崩原因和解决方法终于搞懂了
  15. Java--获取xml头encoding编码方式
  16. 计算机主机的三大部分,计算机系统的三大组成部分
  17. Neuralizing Regular Expressions for Slot Filling 神经网络转回自动机
  18. 不同速度流体的剪切形成不同尺度的漩涡,看起来很像分形。
  19. java this逃逸_java this引用逃逸详解
  20. dmp标签_一种基于DMP标签的管理平台及方法与流程

热门文章

  1. sqldependency 实现原理_2020阿图什方形摇摆筛安装原理
  2. HCIA-IoT V2.5物联网初级考试总结(附题库,历年真题,刷题软件)
  3. springsecurity登出的配置信息以及登出的认证效果
  4. ribbon基于接口配置超时_Spring Cloud Ribbon配置详解
  5. 《色彩解答》系列之二 色彩比例
  6. 网页端实时音视频服务架构与实践
  7. 从云效1.0到2.0的升级,看技术如何驱动企业提效
  8. shell编程基础(二)
  9. Cocos2d-x3.2 持续动作
  10. C# 简单封装一个XML文件读取类