日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

      歡迎訪問 生活随笔!

      生活随笔

      當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

      编程问答

      年度最骚语言之文言文编程!!!

      發(fā)布時間:2023/12/20 编程问答 31 豆豆
      生活随笔 收集整理的這篇文章主要介紹了 年度最骚语言之文言文编程!!! 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

      點擊上方“深度學習技術前沿”,選擇“星標”公眾號

      前沿資訊,第一時間送達

      年度最騷的編程語言來了!CMU大四學生發(fā)明文言文編程語言,項目如下所示:

      就連中科院計算所研究員、機器翻譯領域知名專家劉群老師都贊嘆道:后生可畏

      這個項目叫做Lingdong,可編譯成Javascript,也可編譯成Python,而且還有線上編輯器可直接運行。如今已經(jīng)在Github上標星7K324個Fork(Github地址:https://github.com/LingDong-/)

      而且發(fā)文前,Lingdong妥妥霸榜GitHub Trending日榜第一,單日斬獲4000+Star!下面還是來看看Lingdong怎么用吧。

      想知道文言文如何輸出"Hello World"嗎?

      請君睜圓雙眼注視于此:

      吾有一數(shù)。曰三。名之曰「甲」。 為是「甲」遍。吾有一言。曰「「問天地好在。」」。書之。 云云。

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

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

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

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

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

      吾有一數(shù)曰三名之曰「甲」為是「甲」遍吾有一言曰「「問天地好在」」書之云云

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

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

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

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

      作者是誰:

      這騷之過極的文言文編程語言,來自CMU本科生Huang Lingdong。如今大四,明年即將畢業(yè)。高中則畢業(yè)自上海世界外國語中學。

      序言:

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

      翻譯如下:

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

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

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

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

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

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

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

      語法規(guī)則

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

      變量命名

      條件/循環(huán)

      數(shù)學計算

      數(shù)組(列表)

      這里從「1」開始計數(shù)。

      函數(shù)

      文言文編程“黑話”

      Huang Lingdong同學應該是讀過《易經(jīng)》,畢竟易經(jīng)是最早論述二進制的古書。他用易經(jīng)的代表布爾變量中的0和1。

      “吾有”系列則被用來做定義:

      吾有一數(shù)是定義int變量;
      吾有一爻是定義布爾變量;
      吾有一言是定義字符串;
      吾有一術是定義函數(shù);
      吾有一列是定義數(shù)組;
      ……

      一般的編程里,循環(huán)判斷有if、while、for,文言文編程在這件事上更是變化無窮。下面就是一段文言文書寫的判斷語句:

      若三弗大於五者。乃得「「想當然耳」」。若非。乃得「「怪哉」」也。

      翻譯過來就是:

      if(3<=5){return?"of?course"} else{return?"no?way"}

      也許你會覺得if…else…語句用文言文太啰嗦,但是常用的for循環(huán),用文言文表達卻更為簡潔。

      為是百遍。?? 云云。

      它的意思是:

      for?(var?i?=?0;?i?<?100;?i++){?...?}

      如果需要判斷某個變量human是否在world中,我們一般用for (var human of world),初學者看到for的這種用法可能會很困惑,而文言文的表示更接近普通人的理解。

      凡「天地」中之「人」。?? 云云。

      古有《易經(jīng)》,今有金庸小說,在展示定義函數(shù)的時候,Huang同學又皮了一下:

      吾有一術。名之曰「六脈神劍」。欲行是術。必先得六數(shù)。曰「甲」。曰「乙」。曰「丙」。曰「丁」。曰「戊」。曰「己」乃行是術曰。??是謂「六脈神劍」之術也。

      這里Huang同學將函數(shù)名定義為“六脈神劍”,這個函數(shù)總共有6個輸入。

      funcion?f(a,b,c,d,e,f){…}

      還有更多好玩的函數(shù)定義:

      安裝與使用

      文言文編程只需將repo下載到本地,而且本地已經(jīng)安裝Node,就能立即使用。現(xiàn)在它支持將wenyan lang轉換成JavaScript和Python:

      ./build/wenyan.js?examples/helloworld.wy?-o?helloworld.js

      在這段命令中,如果不指定語言,程序將自動轉化為JavaScript,若想轉化成Python,請加入?yún)?shù)“—lang py”或是“-l py”。

      用戶也可以自行編譯二進制文件。如果你只想嘗嘗鮮,在線IDE也是個不錯的選擇。

      何出此“言”


      至于,為何要炮制一門文言編程語言,少年為項目寫有一序,由此可窺一二 (后有解讀) :

      夫唐、虞之世,結繩而足治,屈指而足算。是時豈料百代之後,計算機械之巧,精於公輸之木鳶,善於武侯之流馬;程式語言之多,繁若《天官》之星宿,奇勝《山經(jīng)》之走獸。鼠、蟹、鑽、魚,或以速稱。蛇、象、駱、犀,各爭文采。方知鬼之所以夜哭,天之所以雨粟。然以文言編程者 ,似所未有。此誠非文脈之所以傳,文心之所以保。嗟予小子,遂有斯志。

      然則數(shù)寸之烏絲猶覆於頭,萬卷之素書未破於手;一身長羈于遠邦,兩耳久曠于雅言。然夫文章者吾之所宿好,程式者偶承時人之謬譽。故希孟不慚年少,莊生不望無涯。乃作斯言。誠未能嘔瀝長吉之心血,亦庶幾免於義山之流沫。既成之後,復學干將鑄劍而自飼,越王嚐糞而當先。自謂偶追《十書》之筆意,但恨少八家之淋漓。此子山所謂士衡撫掌而甘心,平子見陋而固宜。然則雖實覆甕之質,尚存斧正之望;雖乏呂相之金,易字之渴蓋同。此亦開源之大義,吾輩之所以勉勵也。一笑。

      文中典故之多,恐無法在此一一注釋,便以劃重點之法,粗粗領會其意味,并簡要傳達為白話:

      上古人類結繩記事,不會想到后代竟然發(fā)明了計算機。今天編程語言眾星閃耀,只是沒有人用文言編程。我人在國外,想念這些古典的言語,同時又擅長編程又有頭發(fā),決定為開源事業(yè)貢獻一份力量。

      注:如想查看所有典故,請前往項目頁,出處皆有維基百科鏈接。

      傳送門

      項目代碼:
      https://github.com/LingDong-/wenyan-lang

      項目主頁:
      http://wenyan-lang.lingdong.works/

      線上IDE試玩:
      http://wenyan-lang.lingdong.works/ide.html

      個人主頁:
      https://lingdong.works/

      更多內容咨詢,請關注微信公眾號:

      ?

      總結

      以上是生活随笔為你收集整理的年度最骚语言之文言文编程!!!的全部內容,希望文章能夠幫你解決所遇到的問題。

      如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。