在計算機中接近人類自然語言的程序語言是什麼?

jamie1987


可能是python了吧,c和c++的精華在於指針,與日常語言差別太大。java,每次想到pom的xml配置,心裡就煩,比最囉嗦的人還囉嗦。


人類的自然語言,在於交流溝通,可以很靈活。而程序語言,在於執行任務和處理數據,要求嚴謹明確。兩者差別還是蠻大的,我們日常語言中可以有一詞多義,比如黃色。程序語言在設計時會盡力避開這種情形,否則程序員會抓狂的,對於程序員來說,語言越明確越簡潔越好,最好一個小任務只有一種表達方式。


程序語言的設計,和人的表達方式差不多

  • 有的很囉嗦,比如硬件電路設計中的VHDL,每個if後都跟一個then。最囉嗦的當屬xml,我個人覺得是反人類設計。
  • 有的很抽象,將內存地址抽象為指針,甚至指針的指針
  • 有的很接地氣,比如彙編,和最底層的硬件打交道
  • 有的能將簡單問題複雜化,比如scala,語法糖太多,很多人自己的代碼,一個月之後再看,自己都看不懂
  • 還有很多很多 大家可以在腦補或者評論


python的話,簡潔和明確性上權衡的比較好,算是大部分人都能看的懂的語言。不過,強制換行很噁心,一不小心一個空格,程序就報錯。要是能改成大括號,就能自動格式化了。再有,就是多線程是雞肋。最後就是速度慢點。


雖然很多 缺點,但我還是覺得python是目前和自然語言最相近的語言,相似度好比大猩猩和人,向下面這樣,是不是很像?


平凡科技



首先聊聊編程語言和人類語言的差異

這個就好比初學英語的中國人,很自然的按照中文邏輯進行思考,然後按照一定邏輯轉換成英文,中間是需要一個轉換過程,而不是一個接近過程。人腦處理自然語言與計算機處理編程語言的方式截然不同,後者是很有邏輯性和結構性。


自然語言本身不是很精確,在不同的場景下,同一個單詞表達的意思就不一樣,而計算機語言要求很強的精確性。


另外計算機編程的目的就是對描述的事務進行抽象表達,按照很嚴謹的邏輯進行表達,而自然語言的則是一個抽象的描述和理解,並不是到很具體很細節的。


從我目前瞭解到的, 個人感覺 AppleScript 是最接近人類語言的


首先我們來了解下什麼是AppleScript,AppleScript是蘋果公司開發的一種腳本語言,可以用來控制運行於Mac OS上的程序,也可以寫成獨立運行的Applet。這麼語言設計的初衷就是方便蘋果使用者,提升工作效率,避免重複勞動。這門語言有以下幾個特點:

  1. 語法簡單,並接近自然語言:幾乎沒有標點符號,語法不是十分嚴格
  2. 語法查詢十分方便:系統原生提供語法查詢字典。


接下來我來舉個例子吧,證明它是很接近自然語言的,比如告訴計算機打開一個程序,我們可以編寫如下腳本,告訴計算機我們要打開瀏覽器:


然後我們在來看定義字符串變量的例子:


最後在看一個複雜嵌套的例子:


這段腳本把 Safari 當前頁面的標題存入了名為「標題」的變量中。通過這幾個例子,我相信稍微懂點英文的人就能看懂這些程序的意思,是不是很接近自然語言呢。


SQL數據庫查詢腳本也是很接近自然語言

SQL查詢語句只能算查詢腳本,不能算一門編程語言,但是對計算機來說,它也是一門語言,其更接近自然語言,比如以下常用的查詢語句,我相信會點英語的人,稍微看看就明白是啥意思:


Python雖然沒有前兩者接近自然語言,勉強也算是吧

Python 之所以火,有一個重要的原因就是簡單易學,為啥簡單易學呢,用過的人都會感覺到比較接近人類語言和思考習慣,沒有太複雜的語法,接下來看個例子,如果你沒學過的話,是不是很容易看懂呢?


小節

今天的分享就和大家聊到這裡,感謝大家閱讀,如果你覺得還有其他語言像人類自然語的話,歡迎到留言區補充哦。

感謝大家閱讀,如果你有什麼好的想法歡迎到留言區分享交流,如果你贊同我的回答,歡迎給個贊和轉發,謝謝支持。


分享到:


相關文章: