成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

CMU本科生開源文言文編程語言,數天2K星

新聞 前端
這是知乎上討論非常火熱的話題。很多接觸過編程的人都知道「易語言」,這是一種使用中文代替編程語言中的英文的編程語言,同樣可以實現程序功能。

「昔者蒼頡作書,而天雨粟,鬼夜哭」,漢字的出現,誕生了世界上一個偉大的文明。而編程語言的出現,讓人類和計算機產生了真正的聯系,推動了現代文明的發展。

那么,將古代漢語和編程語言結合又會產生怎樣的火花?最近,GitHub 上出現了一個文言文做代碼的項目,幾乎是世界上第一門文言文編程語言(當然,底層還是轉換成 Python 或 JavaScript 運行)。 

阁下可知文言编程之精妙?CMU本科生开源文言文编程语言,数天2K星

如果中文是編程語言中使用的主要語言,我們中國人學習編程是否會更簡單?

這是知乎上討論非常火熱的話題。很多接觸過編程的人都知道「易語言」,這是一種使用中文代替編程語言中的英文的編程語言,同樣可以實現程序功能。近日,一位卡內基梅隆大學(CMU)的大四學生開發了基于文言文的編程語言,高中語文三大怕的文言文終于找上程序員了。

項目地址:https://github.com/LingDong-/wenyan-lang

這一項目并不是簡單的將程序中的英文字符換成了中文,而是利用 NLP 的一些技術,將文言文程序語法轉換到 JavaScript 或 Python 運行,有一定的技術難度。項目問世幾日即獲贊 2.2K,還得到了很多人的微博轉發。

阁下可知文言编程之精妙?CMU本科生开源文言文编程语言,数天2K星

作為橫跨媒體和 AI 的機器之心也測試了這一項目,項目作者的腦洞、文采和創意著實令人驚訝。

如果讀者想快速試一試,你也可以玩一玩在線 IDE,上面有很多預定義的函數。即使在手機上,我們也能編輯并運行「文言文代碼」。

在線地址:http://wenyan-lang.lingdong.works/ide.html

阁下可知文言编程之精妙?CMU本科生开源文言文编程语言,数天2K星

作者在項目開篇使用了一段文言文,介紹了建立這個項目的初衷。

阁下可知文言编程之精妙?CMU本科生开源文言文编程语言,数天2K星

翻譯如下:

在堯舜時代,人們使用結繩和數手指來計算。當時怎么能夠預料到,幾百代人之后計算機的巧妙呢!計算機比魯班(公輸盤)的木鳶更加精巧,比諸葛亮(武侯)的木牛流馬更好。此外,編程語言數量眾多,如同《天官書》記錄的星宿一般多,又比《山海經》中記錄的飛禽走獸還要奇特。Go(鼠)、Rust(蟹)、Ruby(鑽)、Fishshell(魚)因速度而出名。Python(蛇)、Php(象)、Perl(駱)和 JavaScript(犀)則各有獨特之處。我這才理解到,為什么鬼會夜哭,天上會下粟雨。

(注:傳倉頡造字后,鬼神啼哭,天降粟雨)

但以往從未有人使用過文言文進行編程。這并不是傳承文脈、保護文心的好方法,所以我才產生了用文言文編程的想法。我目前還太年輕,讀過的書也沒有破萬卷。如今身處遙遠的國家(美國),也很久沒有接觸中文了。但是我一直對文學很有興趣,編寫的程序有時候也得到人們的一些肯定。正如王希孟和莊子一般,并不因為年輕或者知識的浩瀚無涯而退縮,于是寫下了這些話。

(注:王希孟,北宋畫家,18歲畫成傳世名作《千里江山圖》)

我既沒有像李賀那樣嘔心瀝血,也沒有像李商隱那樣口角流沫(形容讀書勤奮)。項目完成后,我將繼續以干將鑄劍的精神勉勵自己,帶著越王臥薪嘗膽的精神繼續向前。我自己雖想效仿《算經十書》的筆法,只是遺憾沒有唐宋八大家那樣淋漓的文筆。正如庾信在《哀江南賦》所寫:「陸機聽了心甘情愿地拍掌;張衡見了將輕視它也是理所當然」(意指如果被人嘲笑,也是理所當然,我不會太過介意)。

盡管這項目只有覆甕的價值(一點微小的工作),但是還有完善的空間。雖然沒有像呂不韋那樣有一字千金的本錢,但是我對交流的渴望是一樣的。

這也正是開源的精神內核,我們以此互相勉勵吧。

作者是誰?

Lingdong Huang 目前是 CMU 計算機專業大四學生,明年就本科畢業了。我們可以看到他曾在迪士尼研究實驗室、紐約時報等大廠實習過。而且從個人網站中,很明顯可以發現他高中就開始做各種小項目,包括視覺和自然語言的都有。

寫得了代碼、讀得了文言文,文化底蘊還這么強,現在的本科生已經這么厲害了。

阁下可知文言编程之精妙?CMU本科生开源文言文编程语言,数天2K星

個人網站:https://lingdong.works 

文言文編程是什么情況

用文言文編程是什么樣一種體驗?是不是既能學習文言文,又能搞定編程邏輯?介紹不如演示,我們先看看編程世界里的第一段代碼,廣大程序員學習的第一句「HelloWord」是什么樣的。如果讀者們文言文比較溜,或者了解一點程序思維,那么可以了解,下面一段文言文代碼就是輸出三遍「問天地好在」,也就是「HelloWord」的文言文版。

  1. 吾有一數。曰三。名之曰「甲」。 
  2. 為是「甲」遍。 
  3.     吾有一言。曰「「問天地好在。」」。書之。 
  4. 云云。 

具體而言,先定義一個數「3」,并命名為「甲」,現在循環「甲」次,每次在屏幕上打印出「問天地好在。」。作者會將其翻譯成對應的 Javascript 代碼,從而幫助我們理解。

  1. var n = 3
  2. for (var i = 0; i < n; i++) { 
  3.     console.log("問天地好在"); 

當然,按照我們的習慣,改寫成 Python 代碼也是沒問題的:

  1. a = 3 
  2. for i in range(a): 
  3.     print("問天地好在"

為了更貼近文言文的表達習慣,Lingdong Huang 在項目表示各種標點和換行都是可以去掉的,上面的文言文代碼可以等價寫為:

  1. 吾有一數曰三名之曰「甲」為是「甲」遍吾有一言曰「「問天地好在」」書之云云 

突然感覺,好像沒了符號的文言文代碼更容易懂了?

這樣看起來似乎很簡單?那你就小瞧了文言文編程的魅力。比如說程序員入門必修課「斐波那契數列」,每一項都是前兩項的和,第一項是 0、第二項是 0+1、第三項是 1+1 等等。

阁下可知文言编程之精妙?CMU本科生开源文言文编程语言,数天2K星

如果用文言文來寫斐波那契數列,我們需要建立一個函數,函數的輸入是斐波那契項數,輸出是該項具體的值。如果用文言文來寫,畫風是這樣的:

阁下可知文言编程之精妙?CMU本科生开源文言文编程语言,数天2K星

最后一句「施「斐氏列」於七。書之。」是調用函數,并輸出第 7 個結果。雖然看上去比較麻煩,但我們還是可以細細閱讀,例如「吾有一術。名之曰「斐氏列」。」很明顯定義了一個函數,函數名是「斐氏列」;「若「因」等於零者。昔之「果」者。今「因」是矣云云。」表示如果「因」這個變量等于 0,那么就將「因」這個變量的值賦值到「果」變量。

如果閱讀上還有困難,那么也可以看看項目作者提供的對應 Javascript 代碼。不過我們可以嘗試把它翻譯成 Python 語言,翻譯結果如下所示:

  1. def fei_seq(yin):  
  2.     tou = 0  
  3.     wei = 1  
  4.     ji = 1  
  5.     guo = 0  
  6.   
  7.     if yin == 0:  
  8.         guo = yin  
  9.     if yin == 1:  
  10.         guo = yin  
  11.   
  12.     while True:  
  13.         if ji >= yin:  
  14.             break  
  15.         ans_ = tou +wei  
  16.         guo = ans_  
  17.         tou = wei  
  18.         wei = guo  
  19.         ans_ = ji + 1  
  20.         ji = ans_  
  21.     return guo  
  22.   
  23. print(fei_seq(7))  

當然,Python 作為一種極其精簡的語言,真正用它來寫斐波那契數列肯定代碼量要少很多。不過,借助這段翻譯,理解文言文編程還是要簡單很多的。如果讀者想要試一試,可以復制這個 GitHub 項目,并在本地編譯,也可以直接使用在線 IDE 編譯你的代碼。

下面,作為一種「新語言」,我們當然要了解它的神奇語法,不論是定義變量、函數,還是生成數列,文言文都有對應的語法。

語法規則

考慮到文言文和其他編程語言的轉換有一定的理解難度,作者提供了一些語法轉換規則表,供參考。

變量命名

阁下可知文言编程之精妙?CMU本科生开源文言文编程语言,数天2K星

條件/循環

阁下可知文言编程之精妙?CMU本科生开源文言文编程语言,数天2K星

數學計算

阁下可知文言编程之精妙?CMU本科生开源文言文编程语言,数天2K星

數組(列表)

這里從「1」開始計數。

阁下可知文言编程之精妙?CMU本科生开源文言文编程语言,数天2K星

函數

阁下可知文言编程之精妙?CMU本科生开源文言文编程语言,数天2K星

讓你的代碼更有逼格

看厭了黑底的代碼?項目還提供了一個炫酷的「古文代碼生成器」,我們可以把自己的文言文代碼轉換成古書中從右到左,從上到下,沒有標點的古文。是不是更有 B 格了?這個生成器還有 SVG 文件,可以將代碼再提取出來,重新運行。

以下為項目作者嘗試的「圖靈機」代碼:

阁下可知文言编程之精妙?CMU本科生开源文言文编程语言,数天2K星

 

責任編輯:張燕妮 來源: 機器之心
相關推薦

2021-08-26 15:05:01

微軟翻譯文言文微軟亞洲研究院

2020-03-12 13:50:59

編程語言PythonJava

2024-11-06 09:11:33

編程語言程序員

2020-02-02 17:21:18

語言編程文言文

2019-06-17 09:00:00

代碼開發工具

2018-06-20 09:23:07

AI專業科技

2020-04-01 12:18:11

人工智能強化學習開源

2024-09-09 14:15:00

AI訓練

2021-06-10 12:50:02

編程語言PythonJava

2020-02-05 15:23:00

語言編程文言文

2021-03-29 09:24:28

編程技能開發

2025-02-26 14:24:43

AIChatGPT生成式人工智能

2015-06-03 10:52:29

面試總結編程經歷

2021-04-02 15:02:42

開源技術 工具

2023-07-24 12:30:36

谷歌AI

2022-03-22 18:19:29

論文深度學習人工智能

2020-02-06 15:20:21

編程語言PythonJava

2019-02-27 14:06:53

AIAdamSGD

2023-02-27 09:29:05

GPT模型
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美乱码精品一区二区三区 | 一级免费毛片 | 亚洲精品大全 | 超碰97免费观看 | 色综合网站 | 欧美日韩亚洲国产 | 成人a视频在线观看 | 二区精品 | 秋霞电影一区二区 | 欧美成人在线网站 | 久久久久久久久久久久久九 | 亚洲视频一区二区三区 | 亚洲性爰 | 亚洲国产欧美在线人成 | 久久亚洲欧美日韩精品专区 | 天堂免费看片 | 一区二区在线看 | 日韩中文字幕在线观看视频 | 亚洲视频在线观看 | 亚洲一区中文字幕 | av中文字幕在线观看 | 国产精品海角社区在线观看 | 在线中文一区 | 欧美日韩在线一区二区三区 | 日本精品免费 | 日韩中文字幕视频 | 91在线精品秘密一区二区 | 九九综合| 人人看人人草 | 成人免费在线播放 | 亚洲高清视频在线观看 | 亚洲精品美女在线观看 | 自拍偷拍中文字幕 | 日本污视频 | 久久国产精品视频免费看 | 日韩av一区二区在线观看 | 国产露脸对白88av | 午夜影院免费体验区 | 青青99| 亚洲成人av| 国产人成在线观看 |