六艺

点击进入云上编程环境,初步感受简洁易用的编程风格

六艺的本意

西周时期学校教育的六个科目

  • 礼: 一整套完善的行为规范体系
  • 射: 以射箭为主的各种军事才能
  • 书: 语文
  • 乐: 各种场景的音乐与舞蹈
  • 御: 日常出行和军事作战所需的驾车技能
  • 数: 数学

在商周时期数学就已广泛应用于商业、天文等领域。至春秋战国时期,数学开始成为一门独立的学科,孔子就把数学作为一门课程来教授。

孔子将《九章算术》列为数学教材,卷一为 方田--以御田畴界域:

用C++注释:

方田术曰:广、从步数相乘得积步。

class Rectangle { int length; int width; int GetAera(); } int Rectangle::GetAera() { return length*width; }

今有田广十五步、从十六步。

Rectangle r1 = new Rectangle(); r1.width = 15; r1.length = 16;

问:为田几何?

printf("The area of this rectangle is %d",r1.GetAera());

又有田广十二步;从十四步。

Rectangle r2 = new Rectangle(); r2.width = 12; r2.length = 14;

问:为田几何?

printf("The area of that rectangle is %d",r2.GetAera()); -------------------------

用JavaScript注释:

方田术曰:广、从步数相乘得积步。

function Rectangle(length, width) { this.length = length; this.width = width; this.GetAera = function() { return this.length*this.width; }; }

今有田广十五步、从十六步。

let r1 = new Rectangle(15,16); area1 = r1.GetAera();

问:为田几何?

console.log(`The area of this rectangle is ${area1} `);

又有田广十二步;从十四步。

let r2 = new Rectangle(12,14); area2 = r2.GetAera();

问:为田几何?

console.log(`The area of this rectangle is ${area2} `);

用PYTHON注释:

方田术曰:广、从步数相乘得积步。

class Rectangle: def __init__(self, length, width): self.width = width self.length = length def GetAera(self): return self.width* self.length

今有田广十五步、从十六步。

area1 = Rectangle(15, 16)

问:为田几何?

print(f'The area of this rectangle is {area1.GetAera()}' )

又有田广十二步;从十四步。

area2 = Rectangle(12, 14)

问:为田几何?

print(f'The area of this rectangle is {area2.GetAera()}' )

用六艺中文解析器直接执行

点击进入编程环境,载入范例“九章卷一之方田”

本编程语言的借用

六门课的名称用来指代编程语言的六个维度:

  • 礼: 定义与声明语句
  • 乐: 执行语句
  • 射: 输入输出语句 默认屏幕打印语句
  • 御: 流程控制语句 异常处理
  • 书: 日志与调试语句
  • 数: 响应式编程 异步函数 条件执行

六艺中文编程语法

----文言文、现代汉语

编译器将对自然语言进行解析,受解析能力的限制,也为了避免歧义及提高解析效率,仅支持范例中用到的句式。

六艺中文编程字符集

QWERT键盘,中文输入状态,仅使用不切换能直接输入的汉字及字符

避免使用中英文易混淆的符号

六艺中文编程系统保留字

礼、乐、射、御、书、数

天干十个、地支十二个

避免使用系统保留字用作单字标识,多字标识也应尽量避免包含系统保留字。

代码格式

注释语句: 任意位置

  • 注释语句写在实心方头括号内,占一行或多行,不支持在代码行内注释。
  • 例1:

    【这是单行注释语句】

    例2:

    【 多行注释开始

    中文编程范例 试运行:浏览器输入“六艺.cn”

    注释结束】

    括号位置不限,注释内容可以为任意字符。

数字常量表达

在没有特别声明的情况下默认为十进制数字。智能卡应用默认为十六进制。

汉字数字为〇一二三四五六七八九。数字速写字体0123456789。

在打印输出重要数据时使用防篡改替代字“零、壹、贰、叁、肆、伍、陆、柒、捌、玖”。

防篡改替代字在程序语言的其它位置具有不同的含义。

零与〇:〇在数字与编码中只占一位。在带数词的打印及读数时代表中间的一个或多个连续的〇。如一千零一夜。

贰、肆、捌开头的数,后面跟小写表示二进制、四进制、八进制数。

编程中最常用的是十六进制数,C语言及其它多种语言的十六进制通常写为:

0x0123456789ABCDEF

对应的中文表示为:

勹〇一二三四五六七八九十勺匀勾句甸

中文数字在打印输出时通常带数目单位,如:

100: 一百

10000: 一万

在万以后采用万进制,即万万为亿,万亿为兆,万兆为京。

万及后面的大数单位: 万、亿、兆、京、垓、姊、穰、沟、涧、正、载、极、恒何沙、阿僧祇、那由他、不可思议、无量、大数、全仕祥、无边(亦)、无数(王)、无知(肤)、无想(张)、无觉(战)、古戈尔。

古戈尔: 10的100次方

“兆”的辨析:
  现代物理学将英文的M翻译为兆,采用了在古代就已废弃的“百万”含义,给兆的使用带来了混乱。
  所以兆在与物理量词组词后成为一个组合量词,其含义转义为“百万”。如101兆赫兹。
 兆作为单独的数词,或与其它非物理学单位组词时,其含义为万亿。
 亿的使用近现代无歧义,表示万万。在使用亿的场景,兆为万亿。
 西文大数字采用三位分节,中文采用四位分节:
例:2024年全年国内生产总值为134,9084,0000,0000元。
 可读作:一百三十四兆九千零八十四亿元

浮点数的表达:

0.125 :

纯数字: 点一二五

带单位输出: 一分二厘五毫

小数点后每一位名称依次为:

分、厘、毫、丝、忽、微、纤、沙、尘、埃、渺、漠、模糊、逡巡、须臾、瞬息、弹指、刹那、六德、虚空、清净、阿赖耶、阿摩罗、涅槃寂静。

指定起始位置:

礼位

每行的顶格位置为礼位,是定义语句的起始位置。

礼法:

引经据典:除系统定义外,可引用经典篇章的定义。如与系统默认相同则替代系统定义

后浪推前浪:相同名称后引用替代前面的引用

入乡随俗:相同名称本章定义替代前面的引用

乐位:

缩进4格(2个汉字位置)为乐位,是正文位置,普通执行语句的起始位置。

射位:

缩进8格(4个汉字位置)为射位,是输出内容的位置,默认为屏幕打印。嵌入式软件一般默认输出到串口,智能卡软件默认输出到7816接口。输出可以在礼位配置“射”,确定射向的端口。

御位:

缩进12格(6个汉字位置)为御位,是异常处理代码的位置,负责驾御代码走向。

书位:

缩进16格(8个汉字位置)为书位,是书写日志的代码位置。默认输出到以当前日期及程序名称命名的文本文件。

数位:

缩进20格(10个汉字位置)为数位,是处理输出数据的位置。网页编程中是响应处理代码位置。智能卡工具此处为中文正则表达式及跳转处理。

基于云端的智能卡工作平台

网络游戏

国际象棋

开始