1998ieee圆周率c语言,华人留学生开发首个古汉语编程语言,实现易经算命、圆周率计算,Github获赞14.7k...
近日,世界上第一个古汉语编程语言在 Github 上横空出世,由该古汉语编程语言编写的程序现已达到了数十个,有圆周率计算方法,甚至有《易经》的算命算法。
截至目前,该项目在 Github 上已获赞 14.7k,引起诸多关注。
更让人惊奇的是,这套古汉语编程语言(wenyan-lang)的开发者 Lingdong Huang 是一名中国留学生,于去年在卡内基梅隆大学(CMU)获得了计算机和艺术学位,他曾参与创作迄今为止唯一由人工智能生成的中国戏曲,将传统文化融入技术中。
「昔有苍颉作书,而天雨栗,鬼夜哭」,汉字的出现,诞生了世界上一个伟大的文明,将知识传播到四海之外,而如今代码组成了整个庞大的数字世界,用文言文来编程,让古代文字在新时代焕发新生。
传承文脉、保护文心。
「夫唐、虞之世,結繩而足治,屈指而足算。是時豈料百代之後,計算機械之巧,精於公輸之木鳶,善於武侯之流馬;程式語言之多,繁若《天官》之星宿,奇勝《山經》之走獸...」
项目开篇,即是作者用文言文写的项目序言,介绍了建立项目的初衷:传承文脉、保护文心。
汉字的出现,让我们看到了中华文明时代到来的灿烂曙光。而编程语言的出现,让计算机也能懂得语言,极大促进了现代文明的发展。
那么,文言文和编程语言相碰撞又会有怎样的火花呢?作者又是怎样实现用文言文编程的呢?
用文言文写代码
用文言文编程不仅仅是将英文字符转换为文言文这么简单,而是需要运用到自然语言处理技术(NLP),将文言编程语言编译成 JaveScript 等编程语言,最后再运行程序得到结果。
若用文言编程语言来表达编程界经典的代码「Helloworld」,应该这样写:
这里具体思路是,先定义一个数为「3」,并将它赋值给「甲」,即甲=3,然后进入一个循环,遍历「問天地好在。」这个语句「甲」次。
将它转换为 JavaScript 语言,是这样的:
结果输出:
你以为文言编程就只有这些吗?那你就太小瞧它了。
著名的「八皇后问题」、「汉诺塔」等问题,它样样精通,甚至还可以画图。
在作者的网站上可以在线编译,大家也可以一试。
Github 网站:https://github.com/wenyan-lang/wenyan
古文代码生成器
此外,作者还开发了一个「古文代码生成器」,将文言文代码转到古书的页面上,从右到左,从上到下,没有标点的古文,带有十足的古典气息。
古汉语编程语言使用的是繁体汉字和古汉语语法,然而如何划分句子却成了难题,因为需要古汉语在不使用空格的前提下将句子分为单词。就如我们看到英语单词「pancakebatter」,我们需要依赖先验知识将其划分为「pancake batter」,而不是「pan cakebatter」。
为了解决这个问题,作者指出文言编程语言只需要拥有一定数量的关键词,这样每次运行时,扫描最长的关键词到最短的关键词来得到目标内容。
语法
作为一种「新语言」,除了有关键词,当然还有语法,无论是定义变量还是执行循环等,文言文都有其对应的语法。
变量命名
循环
网友评价
对于发布世界上第一种古语言编程语言的新闻,早已引发了热议。在 Reddit 上,不少网友发表了自己的看法。
这位网友认为,中国应该支持这种创新,进一步将计算机科学融入中国本土文化,在编译源代码时,可以将英语或任何其他语言作为编程语言,之后将一系列字母或单词解析为有意义的符号,然后将符号转换为机器代码。汉字已经是有意义的符号了,因此此番基于汉字的编程语言可以免去很多解析,这是极好的。
另一位网友也表示赞同,他认为,汉字具有含义,它可以表达任何语言,而且语法是固定且简单的,因此特别适合编程。
其实,这不是第一次将中国文化融入代码文化中,几百年前二进制的诞生竟也与《易经》有密不可分的关系。
二进制与《易经》
当我们在 LCD 屏幕上观看数字图像,在 MP3 上聆听音乐时,我们很难想象这背后的原理是一串二进制信号,通常由 0 和 1 表示。二进制数字系统(0 和 1)构成了所有现代计算系统的基础。它用两个数字就重构了各种场景,进行高速的运算。
17 世纪著名的数学家莱布尼茨(Leibniz)发明了这个重要的数字系统。那么他又是如何创建二进制的呢?据《卫报》专栏作家大卫沃尔特(David Walter)报道,莱布尼茨的灵感来自有着五千年历史的中国哲学核心著作——《易经》。
《易经》是中国最古老的古典文字和占卜系统之一,被认为比有记载的历史更早一些。它的核心是八卦,也可以延伸为六十四卦。《易经》代表了现实的两极,阴和阳,就像 1 和 0 一样,它们都是抽象概念。在八卦中,虚线代表阴,实线代表阳,这些线以三个为一组组合在一起,产生了八个基本的卦,然后又合在一起得到了六十四个卦,每个卦都有自己的含义和解释。
沃尔特解释说,六十四卦代表了人类生命本身的原型状态。在《易经》的哲学中,现实并不完全是真实的,它更像是一个梦想或幻想,现实源于阴和阳的二元性,它们发挥出了无限的组合。
因此,从易经的观点来看,在现实的梦境中,任何事物都可以被表示成由计算机处理的二进制成分模型,即由一串 1 和 0 组成的字符串。
莱布尼茨深受《易经》中哲学思想的影响,在他的《二进制算数的解释》(1703)这本书中写道:卦是二进制数字系统通用的基础,可以采用卦中阴阳符号表示二进制序列。因此 ¦¦¦¦¦¦ 代表 000000,而 ¦¦¦¦¦︳代表 000001,以此类推。
参考链接:
[1] https://spectrum.ieee.org/tech-talk/computing/software/classical-chinese
[2]https://www.theguardian.com/books/2014/mar/21/ancient-book-wisdom-i-ching-computer-binary-code
1998ieee圆周率c语言,华人留学生开发首个古汉语编程语言,实现易经算命、圆周率计算,Github获赞14.7k...相关推荐
- mixly编程怎样音乐_华人留学生开发首个古汉语编程语言,实现易经算命、圆周率计算,Github获赞14.7k...
近日,世界上第一个古汉语编程语言在 Github 上横空出世,由该古汉语编程语言编写的程序现已达到了数十个,有圆周率计算方法,甚至有<易经>的算命算法. 截至目前,该项目在 Github ...
- c语言怎么取字符串首字母,C语言 字符串首字母转换成大写简单实例
C语言 字符串首字母转换成大写简单实例 C语言 字符串首字母转换成大写简单实例 举例: 输入:this is a book 返回:This Is A Book #include #include #i ...
- Golang语言全栈开发视频教程全集
基础课: 语言基础第01天(变量和基本类型) 语言基础第02天(运算符和流程控制) 语言基础第03天(循环函数和工程管理) 语言基础第04天(工程管理和数组) 语言基础第05天(切片和map) 语言基 ...
- 脚本语言适合物联网开发吗
序言 物联网在今天已经不是一个新词汇,尤其是"物"这么接地气的东西,在互联网深入到各行各业时,自然而然会结合在一起,形成物联网. 这个"物",就是千奇百怪.多种 ...
- RStudio v1.2.1335 发布,R 语言的集成开发环境
开发四年只会写业务代码,分布式高并发都不会还做程序员? >>> RStudio 是 R 语言的集成开发环境,分为面向桌面用户 IDE 和 Linux R 服务器版编辑器两种编辑器 ...
- python基于什么语言-一种基于Python语言的EDA开发平台及其使用方法与流程
本发明涉及EDA开发的技术领域,尤其是指一种基于Python语言的EDA开发平台及其使用方法. 背景技术: 目前,主流的EDA设计语言Verilog HDL能实现完整的芯片硬件逻辑电路开发,但是其代码 ...
- python语言的编程模式_一种基于Python语言的EDA开发平台及其使用方法与流程
本发明涉及EDA开发的技术领域,尤其是指一种基于Python语言的EDA开发平台及其使用方法. 背景技术: 目前,主流的EDA设计语言Verilog HDL能实现完整的芯片硬件逻辑电路开发,但是其代码 ...
- 安卓开发语言php,go语言支持安卓开发吗
go语言支持安卓开发.使用golang开发android需要下载安装gomobile,然后有两种开发方式,分别为:1.原生应用开发:2.混合绑定开发. 本教程操作环境:windows10系统.GO 1 ...
- C语言核心技术-C语言概述与开发环境搭建
C语言概述 C语言发展简史 起源 1972年,贝尔实验室的Dennis Ritchie和Ken Thompson在开发Unix操作系统时设计了C语言,该操作系统的90%以上的代码都是由C语言实现,后期 ...
最新文章
- 生信服务器 | Linux 时间戳和标准时间
- 中小型网络系统总体规划与设计(Small and medium-sized network system overall planning and design)
- 自己动手利用KVM和Intel VT实现简单虚拟机
- android中requestFocus 以及与setFocusable的区别
- 不用NAS,无需attention,只用3x3卷积和ReLU 的SOTA算法RepVGG
- DevExpress GridView 添加和设置右键菜单
- 多人博客php源码,wusx php多用户博客(基础thinkphp)
- .net找List1和List2的差集
- Google 员工公开 Windows 10 零日漏洞隐藏 Bug!
- Google I/O 2019 将于5月7日举办
- Java开发笔记(一百四十二)JavaFX的对话框
- 几种常见的Java排序算法
- 环境监测设备中,使用GPS模拟器测试TTFF和灵敏度的注意点
- js获取屏幕、浏览器、页面的高度宽度
- 曲线运动与万有引力公式_物质自旋与力的形成 ——关于万有引力与磁荷力本质与统一问题的探讨...
- 树形加法器(Brent-Kung加法器)
- 使用python创建NBA Shotchart
- 深度学习与AI入门——追风记
- Exchange控制台错误:WinRM客户端已将请求发送到HTTP服务器
- 2021年中国银行间同业拆借成交额及加权平均利率分析:成交额、同业拆借及质押式回购加权平均利率均呈增长趋势[图]
热门文章
- 思科网络安全 第十一章测验答案
- 玉米社:seo优化推广 网站收录一直不太好什么原因?
- Can‘t write; duplicate key in table ‘qrtz_triggers‘
- 计算机教师职称申报工作总结,教师职称评定个人工作总结(精选3篇)
- Ubuntu之[福昕pdf安装与卸载]
- 计算机睡眠状态单机游戏,睡眠神经图 电脑版
- matlab 与eyelink,EyeLink眼动追踪系统
- 水深6到9米有鱼吗_我国四大家鱼之一,营养价值高,为何很少有人养殖?|青鱼|养殖|草鱼|罗非鱼|淡水鱼|黑鱼...
- 【考研英语——刘晓燕语法、简单句和长难句笔记】
- 移动硬盘新加卷变为本地磁盘且不能打开磁盘查看文件