精华内容
下载资源
问答
  • simplified-dialect-wy-vscode:简化的方言wenyan-lang的vscode插件
  • 文渊阁-wenyan-lang的软件包管理 (wenyan-get,或文渊阁)是wenyan-lang的套件管理员。 就像Node.js的或Python的一样。 安装 npm i -g @wenyan/wyg 用法示例 wyg i ziyue 中文名称也可以接受 wyg i 子曰 上面的...
  • 您可以使用摘要快速编写Wenyan: 以下是一些常见的摘要。 有关完整列表,请签出。 扳机 片段 if 若⋯者。⋯也。 else 若非。⋯也。 for 為是⋯遍。⋯云云。 break 乃止。 while 恆為是。⋯云云。 function 吾...
  • 官方网站 编程介绍 该语言是由github上一位名为【LingDong-】创制并发布分享出来的,项目地址是 https://github.com/LingDong-/wenyan-lang/。 夫唐、虞之世,結繩而足治,屈指而足算。是時豈料百代之後,計算機械...

    站长寄语

    站长接触过易语言,是用简体中文来编程的语言,已经够奇葩的了,这次在github上遇到一个更奇葩的,竟然是用文言文打造的编程,文言文编程,文言文懂得把,之乎者也,而且更厉害得是图灵竟然完备,接下来咱们感受一下,分享给大家,于是就有了今天这篇文章。

    官方网站

    编程介绍

    该语言是由github上一位名为【LingDong-】创制并发布分享出来的,项目地址是 https://github.com/LingDong-/wenyan-lang/。

    夫唐、虞之世,結繩而足治,屈指而足算。是時豈料百代之後,計算機械之巧,精於公輸之木鳶,善於武侯之流馬;程式語言之多,繁若《天官》之星宿,奇勝《山經》之走獸。鼠、蟹、鑽、魚,或以速稱。蛇、象、駱、犀,各爭文采。方知鬼之所以夜哭,天之所以雨粟。然以文言編程者 ,似所未有。此誠非文脈之所以傳,文心之所以保。嗟予小子,遂有斯志。然則數寸之烏絲猶覆於頭,萬卷之素書未破於手;一身長羁于远邦,兩耳久旷于雅言。然夫文章者吾之所宿好,程式者偶承時人之謬譽。故希孟不慚年少,莊生不望無涯。乃作斯言。誠未能嘔瀝長吉之心血,亦庶幾免於義山之流沫。既成之後,復學干將鑄劍而自飼,越王嚐糞而當先。自謂偶追《十書》之筆意,但恨少八家之淋漓。此子山所謂士衡抚掌而甘心,平子見陋而固宜。然則雖實覆甕之質,尚存斧正之望;雖乏呂相之金,易字之渴蓋同。此亦開源之大義,吾輩之所以勉勵也。一笑。

    编程特点符合古汉语的语法

    可以编译成 JavaScript 或者 Python

    图灵完备

    在线 IDE,即刻体验

    通过 几个例子快速入门

    举个例子Hello World吾有一數。曰三。名之曰「甲」。

    為是「甲」遍。

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

    云云。

    输出問天地好在。

    問天地好在。

    問天地好在。

    怎么样,想不想试一试?

    更多内容可以扫描下方二维码,点击关注,或者打开浏览器来访。Luckydesigner​www.luckydesigner.space

    展开全文
  • 文言转换器Wenyanizer 介绍 受到伟大的项目的启发,该项目将古代中国语言编译为javascript代码,因此我创建此项目的目的是做相反的事情-将...您现在可以在Wenyan Lang VSCode插件中使用Wenyanizer。 例子 基本语法
  • Add support for Wenyan Lang

    2021-01-07 02:59:51
    <div><p><a href="https://github.com/LingDong-/wenyan-lang">Wenyan Lang</a> is a programming language for the ancient Chinese which grows rapidly in recent weeks. <p>Thanks.</p><p>该提问来源于开源项目&...
  • 文言wenyan-lang | | 英文|| 文言文编程语言。一种用于古代汉语的编程语言。 序 夫,之世,,屈指而足算是时岂料百代之后,计算机械之巧,精于。之,善于之;程式语言之多,繁若之星宿,奇胜之走兽。,,,,或以速...
  • 而是一款由卡内基梅隆大学一名大四学生打造的文言文编程语言:文言(wenyan-lang)。 简介 该语言完全不使用英文字符,只包含繁体中文字符以及繁体的引号「」。 所以,它的Hello World画风是这样的: 这段文言...

           最近有个编程语言火了,不是C/C++,不是Java、也不是世界上最好的语言。而是一款由卡内基梅隆大学一名大四学生打造的文言文编程语言:文言(wenyan-lang)

    简介

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

    所以,它的Hello World 画风是这样的:

    这段文言文代码的意思是啥?看看等效的代码:

    这两个不同语言的代码最终都会实现如下输出内容:

    语言介绍

    是不是很就没读文言文,已经看不懂了?

    下面这些语法定义有没有让你想起学生时代的小学妹?

    变量

    控制

    运算

    容器

    数组从 1 开始索引。

    函数

    这也太有才了吧!你的看法呢?

           我是一名从事了10年开发在退休边缘垂死挣扎的高龄程序员,最近我花了一些时间整理了一个完整的学习C语言、C++的路线,项目源码和工具。对于想学习C/C++的小伙伴而言,学习的氛围和志同道合的伙伴很重要,笔者推荐我主页的C语言/C++编程爱好者的聚集地!

           欢迎初学和进阶中的小伙伴。希望你也能凭自己的努力,成为下一个优秀的程序员。工作需要、感兴趣、为了入行、转行需要学习C/C++的伙伴可以一起学习!”           

    关注我,带你遨游代码世界!

    展开全文
  • 编译技术在我们日常的工作中可以说无处不在,React JSX语法的解析,Typescript转化为Javascript,XML、JSON的解析,Spring字节码生成技术,PHP的模板引擎,还有最近很火的文言文编程项目(wenyan-lang)……这些都和...

     

            编译技术在我们日常的工作中可以说无处不在,React JSX语法的解析,Typescript转化为Javascript,XML、JSON的解析,Spring字节码生成技术,PHP的模板引擎,还有最近很火的文言文编程项目(wenyan-lang)……这些都和编译技术息息相关,既然编译技术有这么大作用,那么它到底是什么?首先我们给出一个整体的介绍,如下图所示:

            从图中可以知道,编译技术总共分为6个过程,其中词法分析、语法分析、语义分析这三个过程统称为前端,生成中间码、优化、生成目标代码这三个过程叫做后端。有了一个整体的印象之后,就可以一步一步来解释每一个过程的作用。

            写过程序的人都知道,程序语言一般包含一些特殊关键字:if、else、for、while、class、import……运算符:>、<、=、+、-、*、/……以及特殊字符:{、}、(、)、,、:……所以第一步就是要把程序代码先转化成这样一个一个的词法记号(Token),这个过程叫做词法分析(Lexical Analysis)

            接下来请回想一下自己在写代码的过程中是不是会写各种各样的语句,比如下面这样的if语句:

    if(a>b) return a;

    如果把a>b抽象成expr(表示任意表达式),把return a;抽象成statement(表示任意语句),那么上面的if语句就可以转化成如下形式:

    if(expr) statement

     

    这就是if语句的结构,同样很容易写出while语句的结构:

    while(expr) statement

     编译的第二个阶段就是要识别出程序代码中一个一个这样类似的结构,这个过程就叫做语法分析(Syntactic Analysis,or Parsing)。但是马上就会有一个疑问,我们到底把这些结构识别成什么了呢?还是回到刚才的例子,用如下图形表示if语句:

     

     

    看到这里有没有很熟悉?这不就是数据结构中学习过的树结构嘛,是的,这就是一棵树,它叫做抽象语法树(Abstract Syntax Tree,AST),现在很容易就可以画出while语句的抽象语法树了:

     

     

     

    同样地,还可以画出很多这样的图形,而我们的程序就是由这样一个一个的语句构成的,那么最终的程序就可以用如下图形表示出来:

     

    这就是整个程序的语法树。你看语法树其实一点也不难理解,而整个语法分析的过程就是构建出这样一棵树。

            有了语法树之后还要做什么呢?让我们再次回到刚才if语句的例子:

    if(a>b) return a;

    在if语句中使用了a、b两个变量,很多语言都要求在使用变量之前先申明,不然就是不合法的,编译器要能检测出这种错误。还有不同的语言有不同的作用域,比如Javascript有函数作用域,Java有类作用域,C语言有块作用域,编译器要能分析不同的作用域,以及每个变量所属的作用域等。在函数作为一等公民的语言中,还要实现闭包,比如如下Javascript代码:

    function outer() {      
        var a = 0;      
        function inner() {      
            a = a + 1;              
            return a; 
        }       
        return inner;
    }
    var inner = outer();
    console.log(inner()); // 1
    console.log(inner()); // 2

     

    按理说outer函数调用结束后,a应该被销毁了,但是在调用inner的时候还是可以引用到a,这就是我们常说的闭包,编译器要能识别出这样的a。还有比如很多静态类型的语言在编译的时候要做类型检查等等。给生成的语法树添加足够的信息,让它可以生成正确的目标代码,这个添加信息的过程就叫做语义分析(Semantic Analysis)

            理论上,拥有了足够信息的语法树之后已经可以生成目标代码了,这个过程可以用下面的图形表示:

    再来看,如果引入中间码的过程会是怎么样:

     

    对比两个图我们可以很容易看出,当引入中间码的时候,可以大大节省工作量,这就是引入中间码的其中一个原因。

            我们都知道,衡量程序好坏的其中一个重要指标就是程序的性能,这就要求我们对生成的中间码进行优化,这个过程就是接下来的优化过程,可以用下面的图形表示:

    经过优化器以后就可以生成最终的目标代码了,到此我们已经把编译的整个过程过了一遍。

     

    总结:

    • 词法分析:把源代码分割成一个一个的词法记号
    • 语法分析:识别程序结构,生成语法树
    • 语义分析:给语法树添加信息,用于生成正确的目标代码
    • 生成中间码:节省工作量,解放生产力,增加灵活性
    • 优化:让程序跑得更快

    下篇预告:《人人都可以学会编译原理-词法分析之四则运算》,在该篇中我们的主要目标是实现类似于下面的四则运算表达式的词法记号解析

    ​-3.14 + 3.14 * 3.14 + (3.14 + 3.14) / 3.14 - 3.14

    最终将它转化成如下形式 

    Minus             -
    NumberLiteral     3.14
    Plus              +
    NumberLiteral     3.14
    Star              *
    NumberLiteral     3.14
    Plus              +
    LeftParen         (  
    NumberLiteral     3.14
    Plus              +
    NumberLiteral     3.14
    RightParen        )
    Slash             /
    NumberLiteral     3.14
    Minus             - 
    NumberLiteral     3.14

    可以洗关注我的公众号获取第一时间更新内容。

     

     

     

     

     

    展开全文
  • 文言文编程项目

    千次阅读 2019-12-18 16:01:11
    https://github.com/LingDong-/wenyan-lang 项目主页: http://wenyan-lang.lingdong.works/ 线上IDE试玩: http://wenyan-lang.lingdong.works/ide.html 个人主页: https://lingdong.works 吾有一術。名之...

    项目代码:
    https://github.com/LingDong-/wenyan-lang

    项目主页:
    http://wenyan-lang.lingdong.works/

    线上IDE试玩:
    http://wenyan-lang.lingdong.works/ide.html

    个人主页:
    https://lingdong.works

     

    吾有一術。名之曰「埃氏篩」。欲行是術。必先得一數。曰「甲」。乃行是術曰。
    	吾有一列。名之曰「掩」。為是「甲」遍。充「掩」以陽也。
    	除「甲」以二。名之曰「甲半」。
    
    	有數二。名之曰「戊」。恆為是。若「戊」等於「甲半」者乃止也。
    		有數二。名之曰「戌」。恆為是。若「戌」等於「甲半」者乃止也。
    
    			乘「戊」以「戌」。名之曰「合」
    			若「合」不大於「甲」者。
    				昔之「掩」之「合」者。今陰是矣。
    			若非乃止也。
    		加一以「戌」。昔之「戌」者。今其是矣云云。
    	加一以「戊」。昔之「戊」者。今其是矣云云。
    
    	吾有一列。名之曰「諸素」。
    	有數二。名之曰「戊」。恆為是。若「戊」等於「掩」之長者乃止也。
    		夫「掩」之「戊」。名之曰「素耶」。
    		若「素耶」者充「諸素」以「戊」也。
    	加一以「戊」。昔之「戊」者。今其是矣云云。
    	乃得「諸素」。
    是謂「埃氏篩」之術也。
    
    施「埃氏篩」於一百。書之。

    求一百以内的质数,打印结果:

    二。三。五。七。一十一。一十三。一十七。一十九。二十三。二十九。三十一。三十七。四十一。四十三。四十七。五十三。五十九。六十一。六十七。七十一。七十三。七十九。八十三。八十九。九十七

     

     

     

    展开全文
  • 毕竟有易语言在前,有人认为...Hello wenyan最近有个 GitHub 项目火了 —— 文言编程语言 / wenyan-lang。项目地址:https://github.com/LingDong-/wenyan-lang这一项目并不是简单的将程序中的英文字符换成了中文,...
  • http://wenyan-lang.lingdong.works 文言文編程語言。A programming language for the ancient Chinese. Try it online.
  • 文言 wenyan-lang wy-lang.org | Wiki | The Book English | 简体中文 | 繁體中文 文言文編程語言。A programming language for the ancient Chinese. Try it online. CHANGELOG 序 夫唐、虞之世,結繩而足...
  • 原创:程序员的那些事(id:iProgrammer)文言文编程语言,大家都还记得吧2019 年 12 月,火了一个文言文编程项目 wenyan-lang。该项目作者Huang Ling...
  • 原创整理:程序员的那些事(id:iProgrammer)近日,GitHub 新出了一个特别的开源项目:文言文編程語言 wenyan-lang。该项目迅速引发了国内程序员关注热议,其 St...
  • 近日,GitHub 新出了一个特别的开源项目:文言文編程語言 wenyan-lang。该项目迅速引发了国内程序员关注热议,其 Star 数最近 24 小时飙涨到了近 8000+。weny...
  • <div><p>when user choose to save,someone like me, he may not notice the title input box,and just check the svg file.</p><p>该提问来源于开源项目:antfu/wenyan-lang-vscode</p></div>
  • <div><p>https://github.com/wenyan-lang/book/blob/d807775acdb4f89f0a24b79a0becebe177a7cab9/11%20%E5%85%8B%E7%A6%8D%E7%AC%AC%E5%8D%81%E4%B8%80.md#L3</p> <ul><li>上蔡云云臆當李斯其事矣,而杜陵云云...
  • 国查:用中文编写SQL

    2019-12-19 20:01:55
    这两天被文言(wenyan-lang)刷屏了,这个项目在于使用文言文进行编程,我打算蹭个热度,把年初的作品再捞一捞,即中文SQL。1. 文言Wenyan:吾有一數。曰三。名之曰「甲」...
  • 第七第八用字疑義

    2020-12-09 05:35:29
    <div><p>https://github.com/wenyan-lang/book/blob/538a0006ed24fe2d069364546e1bee8b34bc3762/07%20%E8%A8%80%E8%AA%9E%E7%AC%AC%E4%B8%83.md#L3</p> 竊未嘗聞析革一詞,檢之於經典中不得,纔見「金革...
  • 今天发现了一个比较有意思的东西, 看下图: image.png 竟然是文言文编程, 可以转换为js代码... 我就想知道~~~ 各位大佬觉的文言文好, 还是English编程好~~~ 项目地址:文言文编程 wenyan-lang ...
  • Typo?

    2020-12-09 11:30:41
    <div><p>格物一篇中有言『欲行是術。必先得而言』於九十頁。似為筆誤。望改之。</p><p>该提问来源于开源项目:wenyan-lang/book</p></div>
  • 文言文编程火了,可我完全学不懂

    万次阅读 多人点赞 2019-12-21 18:09:28
    毕竟有易语言在前,有人认为...最近有个 GitHub 项目火了 —— 文言编程语言 / wenyan-lang。 现在这个项目已经超过 10K Stars 了(昨天看还是 9K,一夜涨了 1K),咱赶紧来研究下。 学语言嘛,当然先从 “Hello wo...
  • 吾有一數。曰三。名之曰「甲」。 為是「甲」遍。 吾有一言。曰「「問天地好在。」」。書之。 云云。 运行: 問天地好在。 問天地好在。...链接地址:https://github.com/LingDong-/wenyan-lang ...
  • Image: Lingdong HuangA rendering of a program written in wenyan-lang to draw the Mandelbrot set.世界上第一种基于文言文的编程语言只有一个月左右的历史,志愿者们已经用它编写了几十个程序,比如一个基于古.....
  • 中国小康网2月14日讯 老马 ...文言文编程语言编写的显示结果俄罗斯卫星通讯社报道,文言文编程语言(wenyan-lang)是一种遵循古典汉语语法的编程语言。这套字符集只包括中国传统文字和引号。因此,如果中国古人看到,...
  • <div><p>Ctrl+N 新建文件,文件未保存時,已將語言模式設為文言,卻無法使用該插件(插件按鈕未顯示)。 希望可以改進這點。...antfu/wenyan-lang-vscode</p></div>
  • 最近有个 GitHub 项目火了 —— 文言文编程语言 / wenyan-lang。文言文编程语言的作者名叫Huang Lingdong,是卡内基梅隆大学(CMU)一名大四学生,高中毕业于上海世界外国语中学。 据悉,这一项目吸引了大量开发者的...
  • 大四学生发明文言文编程语言最近有个 GitHub 项目火了 —— 文言文编程语言 / wenyan-lang。文言文编程语言的作者名叫Huang Lingdong,是卡内基梅隆大学(CMU)一名大四学生,高中毕业于上海世界外国语中学。据悉,这...

空空如也

空空如也

1 2 3
收藏数 44
精华内容 17
热门标签
关键字:

wenyan-lang