Atitit.編程語言and 自然語言的比較and 編程語言未來的發展

来源:http://www.cnblogs.com/attilax/archive/2016/03/11/5267195.html
-Advertisement-
Play Games

Atitit.編程語言and 自然語言的比較and 編程語言未來的發展 1. 單詞的間隔靠空格,編程的單詞的間隔靠分界符..1 2. 語句分界符:自然語言使用逗號,編程語言使用分號1 3. 換行1 4. 段落and fun method2 5. 上下文相關2 6. 操作泛型化2 7. 動詞和名詞之間


Atitit.編程語言and 自然語言的比較and 編程語言未來的發展

 

1單詞的間隔靠空格,編程的單詞的間隔靠分界符..1

2語句分界符:自然語言使用逗號,編程語言使用分號1

3換行1

4段落and  fun method2

5上下文相關2

6操作泛型化2

7動詞和名詞之間的互換性2

8詞類的判斷3

8.1.1. 詞類劃分的形式標誌3

8.1.2. 自然語言中的指代詞(你、我、他、它等等)好比編程語言中的“指針(point)”。4

8.2. 這類疑問句似乎在編程語言 是包括函數在內的“表達式”。4

8.3. 語句分析的“終極”在哪裡?4

9詞法檢查4

10. 句法檢查5

11. 一個類型系統。  自然語言中常用’token',編程語言常用‘instance’5

12. ref6

 

1. 單詞的間隔靠空格,編程的單詞的間隔靠分界符..

括弧 逗號  stop 句號

2. 語句分界符:自然語言使用逗號,編程語言使用分號

3. 換行

自然語言很少的中間做..編程語言很多中個..

作者:: 綽號:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿爾 拉帕努伊 ) 漢字名:艾龍,  EMAIL:[email protected]

轉載請註明來源: http://www.cnblogs.com/attilax/

 

4. 段落and  fun method

編程靠fun method來定義段落..

5. 上下文相關

編程語言跟個自然語言都是上下文相關的..業務角度...

技術上的ast絕大部分還是上下文無相關的.

6. 操作泛型化

自然語言中存在一些“ 泛義動詞 ” ,例如漢語中的“打” , “搞” , “乾”„„, 英語中的“ get ” , “ take ”等。它們的進一步的具體含義要由這些動詞所涉及 的對象來確定。例如: “打毛衣”中的“打”應理解為“編織” ,   “打籃球” 中的“打”應理解為“玩” ,   “打開水”中的“打”應理解為“取得” ,等 等。  

l

 

在面向對

在面向對象的編程語言中,也有類似的“動態綁定(Dynamic Binding)”機 制:一個函數名或者子程式名字的具體含義要在“運行時”依據所涉及對象在當時的指的類型來決定

 

數據:常數、變數名。它們對應於自然語言中的名詞。  

l 其他:起連接作用、用來表述token 之間的關係的符號,例如if, then等等。 它們對應於自然語言中的連接詞、感嘆詞等等

 

7. 動詞和名詞之間的互換性 

 在自然語言中,有一個引人矚目的現象,那就是“名詞和動詞之間的呼喚性”。這是因為,“詞”或者token是用來表達“概念”的,而一個概念往往有多種側面。所以自然語言中常常出現用同一個“符號”來表達不同的側面的現象。舉例來說:  “釘”本來是名詞,但是可以轉化,作為動詞來使用:我把畫釘在牆上

 

函數十編程走十中個.不個fun trans as data..

 

8. 詞類的判斷

從語法分析的角度看,對詞或 token 進行分類的依據是它的語法功能。從語言使用者的角度看,則是他們的使用方式。因此如何對詞或 token所屬類別進行判斷乃是一件至關重要的事情。

不管在自然語言中,還是在編程語言中,判斷一個詞或者 token 的類別的辦法基本上是兩種:詞典 和 詞本身所攜帶的形態標誌。

 

詞典中提供的信息

在編程語言中,為判斷一個 token 的類別而提供的“詞典”有兩種:

1. 一種是語言中“先驗地”規定好了的外部詞典。例如關鍵字和一些保留字。

2. 另外一種是編程人員(用戶)臨時定義的內部詞典,這就是程式中的 declaration.

8.1.1. 詞類劃分的形式標誌

如果能夠從詞或 token的外形(形式上的)特征就能判斷出他是屬於哪一類,那麼無論從“書寫者撰寫”的角度,還是從“閱讀者理解”的角度,都能夠大大減少出錯的機會。

在某些編程語言(例如Visual Basic)中,如果一個變數沒有在任何地方加以聲明,也可以從變數名字的外形上看出它的類型。例如:名字以%結尾的變數是?整數?, 名字以&結尾的變數是?字元串?,名字以&結尾的變數是?浮點數?等等。

英語中,在某種程度上也有類似的機制,例如:以tion, ing 結尾的基本上是名詞。以-lize 結尾的基本上是名詞。以-ful 結尾的基本上是形容詞。以-ly 結尾的大概是副詞。

漢語使用方塊字,沒有辦法添加尾綴,所以沒有這樣的形態標誌。因此大家認為,這一現象給漢語的電腦處理增加了困難。不過話不能說得太絕對。在某些情況下,漢語還是有“形態標誌”的。例如,在名詞的前面加“很”“還”之類一般用來修飾形容詞的副詞,就是在“形態”上指出:後面的這個名詞已經轉化為“形容詞”了。例子如:“同學們說我穿這條裙子很青春。”,“我們排演的這套節目還是很生活的。”, 

 

8.1.2. 自然語言中的指代詞(你、我、他、它等等)好比編程語言中的“指針(point)”。

但是自然語言中從不明顯地交待:從現在起,“他”表示“張三”,直到遇見新的聲明為止。每一個具體的代詞指向何方要根據句子域句子之間的前後語義來聯繫來判斷

 

8.1. 這類疑問句似乎在編程語言 是包括函數在內的“表達式”。

8.2. 語句分析的“終極”在哪裡?

電腦語言的編譯器在分析電腦程式中的語句時,最終總是要分析到語法規則中所規定的“終極符(terminator)”為止。

 

9. 詞法檢查

從詞法的角度,語素和語素合成單詞是有一定規則的。例如中文的字,作為一個語素,和其它語素結合成單詞時有一個限制條件,必須是單音語素。如:碧空,碧藍,碧綠;但是,碧天空,碧寶藍等就不合法了。程式設計語言的單詞(稱作identifier,標識詞)也有著類似的嚴格規定。例如,任何identifier必須以字母或下劃線開頭,像 bilan、 _blian等就是合法的identifier,而23bilan@bilan就屬於非法的。任何一個identifier中間不能有空格,否則非法

10. 句法檢查

從句法的角度,有類似自然語言的條從句:if x < y then print x +y;
意思是,如果兩個identifier所代表的數不相等且x小於y,那麼,將x所代表的數和y所代表的數相加,然後將結果列印出來。

從語義的角度,任何一個identifier都可以定義為不同的類型。例如 name可以代表張三age可以代表25
String name = ‘張三

 

程式設計語言中關於語法和語義的定義是非常嚴格、明確的,不能模棱兩可。例如,單複數的定義,
在漢語中,根本就是殘缺的,只有在指人類實體是可以可選地,而且用法非常複雜。英語簡單一些,用加s的方式表達。但有些單詞單複數一樣,如equipment,有些單詞只有複數沒有單數,如alms。無法只從形態上判斷是單複數。
而程式設計語言就沒有這樣的問題:
任何定義了品詞的identifier都是單數名詞。而複數名詞則需要一個特定的詞類,通常叫做數組,或者叫做。例如

 

11. 一個類型系統。  自然語言中常用’token',編程語言常用‘instance’

這些只是編程語言和自然語言的錶面的異同。更本質的共通點,我覺得是二者之間都有一個類型系統。
談到類型,就要引入另一個術語,自然語言中常用’token',編程語言常用‘instance’。我們經常重覆已經說過的話

 

當然,我們有時需要區分類型和實例。自然語言的辦法是加限定詞。你的朋友剛想拿一塊糖,你說,不是叫你吃這塊糖,而是那塊(當然在這種情景下必須有身體語言輔助:你得指著某一特定的糖塊)。還是很模糊,一定要明確,恐怕就要加更多的限定、形容

12. ref

自然語言與機器語言的比較 南京廖華.htm

自然語言和程式設計語言的某些共通點.htm


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在.net開發客戶端的時候,一定會遇到用戶沒有安裝.net環境的問題,特別是現在win7,win8,win10多系統並用的時間段,很多開發者使用的是4.5的目標環境,用戶卻是使用win7的系統,這樣勢必會要安裝環境包 可是如果win7的用戶已經安裝4.5的環境呢?那麼用戶是否需要連帶著環境包一起下載
  • NuGet is a Visual Studio extension that makes it easy to install and update third-party libraries and tools in Visual Studio. NuGet is not mandatory f
  • 什麼是通用語言運行時(CLR),簡單來講: CLR是一個支持多種編程語言及多語言互操作,完整的高級虛擬機。 有點拗口,而且不是很有啟發性,但上面的文字是將又大又複雜的CLR的功能歸類以便容易理解的第一步。它從一萬英尺的高度來幫助我們理解CLR的設計目標。從這個高度明瞭CLR之後,我們可以深入其各個組
  • 葡萄城近日與微軟公司達成合作,將Wijmo 產品線的HTML5和JaveScript 控制項融合到微軟Dynamics CRMOnline 2016版中。
  • 隨手記記 先定義下標誌枚舉: 在項目的model文件夾下新建一個IsEnums.cs類 [Flags] public enum ABC {a=1,b=2,c=4, } 然後在HomeController.cs類中引用下model, 用標誌枚舉的好處就是可以進行自由組合,而標誌枚舉里定義每個都是2的N
  • 規則引擎由推理引擎發展而來,是一種嵌入在應用程式中的組件,實現了將業務決策從應用程式代碼中分離出來,並使用預定義的語義模塊編寫業務決策。接受數據輸入,解釋業務規則,並根據業務規則做出業務決策。比較常見的業務規則引擎有Drools、VisualRules 和iLog。這裡介紹另外一個C#開源工具Rul
  • 1.設置百分比顯示而且是自適應。 2. meta標簽設置 ios:正確設置 <meta name="viewport" content="width=device-width;" /> :錯誤設置 <meta name="viewport" content="width=device-width"
  • 本文介紹在不使用PIL的情況下,使用Python保存截屏並保存屏幕截圖到.bmp文件。通過ctypes庫使用C指針來對記憶體進行操作。
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...