文言文编程语言来了,可是好像比英文更难写了!
近日有开发者开源了一门新的编程语言,吸引了大量开发者的目光,短短几天获得了 3k+ star。
该语言名为“文言(wenyan-lang)”,这是一门采用文言文输入的编程语言,该语言不包括英文字符,仅包含繁体中文字符,并保留繁体引号「」。
先看看 Helloworld 怎么写:
吾有一數。曰三。名之曰「甲」。 為是「甲」遍。 吾有一言。曰「「問天地好在。」」。書之。 云云。
这段代码等效于以下 JavaScript 代码:
var n = 3; for (var i = 0; i < n; i++) { console.log("問天地好在。"); }
输出:
問天地好在。 問天地好在。 問天地好在。
同时,标点和换行符是完全可选的,与古汉语一致,所以上面的代码等效于:
吾有一數曰三名之曰「甲」為是「甲」遍吾有一言曰「「問天地好在」」書之云云
Helloworld 看上去虽然简单,但是其实作为一门编程语言,这里的语法都有严格的定义:
变量
wenyan | JavaScript |
---|---|
吾有一數。曰三。名之曰「甲」。 | var a = 3; |
有數五十。名之曰「大衍」。 | var dayan = 50; |
昔之「甲」者。今「大衍」是也。 | a = dayan; |
吾有一言。曰「「噫吁戲」」。名之曰「乙」。 | var b = "alas!"; |
吾有一爻。曰陰。名之曰「丙」。 | var c = false; |
吾有一列。名之曰「丁」。 | var d = []; |
吾有三數。曰一。曰三。曰五。名之曰「甲」曰「乙」曰「丙」。 | var a=1,b=3,c=5; |
控制
wenyan | JavaScript |
---|---|
若三大於二者。乃得「「想當然耳」」也。 | if (3>2){ return "of course"; } |
若三不大於五者。乃得「「想當然耳」」。若非。乃得「「怪哉」」也。 | if(3<=5){return "of course"}else{return "no way"} |
為是百遍。⋯⋯ 云云。 | for (var i = 0; i < 100; i++){ ... } |
恆為是。⋯⋯ 云云。 | while (true) { ... } |
凡「天地」中之「人」。⋯⋯ 云云。 | for (var human of world){ ... } |
乃止。 | break; |
运算
wenyan | JavaScript |
---|---|
加一以二。 | 1+2 |
加一於二。 | 2+1 |
加一以二。乘其以三。 | (1+2)*3 |
除十以三。所餘幾何。 | 10%3 |
減七百五十六以四百三十三。名之曰「甲」。 | var a = 756-433; |
夫「甲」「乙」中有陽乎。 | a || b |
夫「甲」「乙」中無陰乎。 | a && b |
容器
数组从 1 开始索引。
wenyan | JavaScript |
---|---|
吾有一列。名之曰「甲」。充「甲」以四。以二。 | var a = []; a.push(4, 2); |
銜「甲」以「乙」。以「丙」 | a.concat(b).concat(c); |
夫「甲」之一。 | a[0] |
夫「甲」之其餘。 | a.slice(1); |
夫「玫瑰」之「「名」」。 | rose["name"] |
夫「寶劍」之長。 | sword.length; |
函数
wenyan | JavaScript |
---|---|
吾有一術。名之曰「吸星大法」。是術曰。⋯⋯是謂「吸星大法」之術也。 | function f(){...} |
吾有一術。名之曰「六脈神劍」。欲行是術。必先得六數。曰「甲」。曰「乙」。曰「丙」。曰「丁」。曰「戊」。曰「己」乃行是術曰。⋯⋯是謂「六脈神劍」之術也。 | function f(a,b,c,d,e,f){...} |
吾有一術。名之曰「翻倍」。欲行是術。必先得一數。曰「甲」。乃行是術曰。乘「甲」以二。名之曰「乙」。乃得「乙」。是謂「翻倍」之術也。 | function double(a){var b = a * 2; return b;} |
但是作者表示上下文无关的语法描述还在构建中。
文言语言采用自然语言处理共享了古典汉语语法,将语言编译为 JavaScript 或 Python,并且图灵完备。同时它不仅提供了一个配套在线 IDE,还提供了大量算法与数据结构示例,包括快排、汉诺塔问题与斐波那契数列表示等。
--------------------------------
华为云邀请您关注【最强AI技术博客号】,包括最前沿的技术动态、技术文章、案例实战等,此外关注还有机会赢取精美大奖(HDC.Cloud门票、AI课程、AI书籍)。点击 https://url.cn/5klEr02 ,登入华为云账号,关注。(抽奖方式请见论坛文章 https://bbs.huaweicloud.com/blogs/139292)
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
VeraCrypt 1.24 Update 2 发布,开源加密软件
距离VeraCrypt 1.24 发布过去几个月的时间后,现如今,VeraCrypt 1.24 Update 2也已发布。VeraCrypt 是TrueCrypt的分支,于2013年6月发布,项目的主要开发者是来自法国的安全顾问 Mounir Idrassi 。该版本的新功能如下: Changes 所有操作系统: 使用非优化实现时,从堆栈内存中清除 AES 密钥。不适用于 VeraCrypt 官方版本 将 Jitterentropy RNG 库更新为版本 2.2.0 开始遵循 IEEE 1541 同意的字节命名(KiB, MiB, GiB, TiB, PiB) 各种文档增强 Windows: 修复了在执行 VeraCrypt Expander 期间可能出现的本地特权升级漏洞 MBR bootloader: 不允许在 BIOS 模式下使用小于 4096 字节缓冲区的 SSD 磁盘的解决方法 如果 MBR 来自与我们不同或与 Microsoft 不同的加载程序,请不要将其恢复为 VeraCrypt 值 EFI bootloader: 修复“ ActionFailed”无法正常工作,并添加“...
- 下一篇
IBM 在“审查开源优先级”之后疑似放弃 Swift
Swift 论坛上的公告表明 IBM 正在停止其在服务器端 Swift 上的工作。IBM 团队负责人 Ian Partridge 和技术架构师 Chris Bailey 即将离开 Swift 服务器工作组。 Apple的 Swift 语言于 2014 年发布,专门针对 OS X 和 iOS 的应用开发,并很快成为流行的的现代编程语言。2015 年,Apple 宣布 Swift 开源,并且将针对 Linux 和 Apple 的操作系统进行构建。“IBM 得知这一点后,便通过与 Apple 的合作伙伴渠道展开了对话,并且我们开始致力于将 Swift 中的大多数主要 Foundation 库移植到 Linux。”今年一月份,IBM 在一篇博客中提到。 于是,在不久后的 2016 年 2 月,IBM 发布了Kitura,这是一款用 Swift 构建的服务器端框架。它旨在为具有 Swift 技能的移动开发人员提供一条简单的途径,以使用相同的语言来构建服务器组件、API 或 Web 应用程序。 自那时起,该框架随着 Docker 镜像和 Helm 图表一同发展,现在它可以轻松部署到 Kuberne...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS8编译安装MySQL8.0.19
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案