詞法、語法與語義相關知識


概念

http://www.juweixin.com/t/detail/148383

語法到底是什么?有人說語法是語言里的法律、法規;有人說語法是框架結構;還有人說語法就是對前人語言習慣的一種總結。以上這些說法都對,但是又不全對。

In linguistics, grammar is the set of structural rules governing the composition of clauses, phrases, and words in any given natural language. The term refers also to the study of such rules, and this field includes morphology, syntax, and phonology, often complemented by phonetics, semantics, and pragmatics.

在語言學中,語法是句子、短語和詞匯在任何給定的自然語言中的結構規則組成。這個領域也包括這些規則的研究,這一領域包括形態學、語構、語音,常常輔以語音學,語義學和語用學。

 

 我的理解:

1、 詞法, 定義組成語言的單詞, 是語言中最小單元。

2、 語法, 將單子組織成有含義的短語和句子的規則。

3、 語義, 結合上下文,可以推導出語句的真實含義。

 

語法糖

http://www.cnblogs.com/zhangyongjian/p/3628766.html

語法糖(Syntactic sugar),是由Peter J. Landin(和圖靈一樣的天才人物,是他最先發現了Lambda演算,由此而創立了函數式編程)創造的一個詞語,它意指那些沒有給計算機語言添加新功能,而只是對人類來說更“甜蜜”的語法。語法糖往往給程序員提供了更實用的編碼方式,有益於更好的編碼風格,更易讀。不過其並沒有給語言添加什么新東西。 舉個例子:在C語言里用a[i]表示*(a+i),用a[i][j]表示*(*(a+i)+j),看來語法糖不是“現代語言”才有啊,連我們的老大哥C也有,而且這種寫法簡潔明了,也更好懂了。 實際上從面向過程到面向對象也是一種語法糖啊,C語言可以通過它的指針、類型轉換,結構實現面向對象的編程風格,但是C++更進一步的推廣了這種風格,更好用了

 

 

詞法分析、語法分析、語義分析

http://blog.csdn.net/nic_r/article/details/7835908

 

詞法分析(Lexical analysis或Scanning)和詞法分析程序(Lexical analyzer或Scanner)
  詞法分析階段是編譯過程的第一個階段。這個階段的任務是從左到右一個字符一個字符地讀入源程序,即對構成源程序的字符流進行掃描然后根據構詞規則識別單詞(也稱單詞符號或符號)。詞法分析程序實現這個任務。詞法分析程序可以使用lex等工具自動生成。

語法分析(Syntax analysis或Parsing)和語法分析程序(Parser)
  語法分析是編譯過程的一個邏輯階段。語法分析的任務是在詞法分析的基礎上將單詞序列組合成各類語法短語,如“程序”,“語句”,“表達式”等等.語法分析程序判斷源程序在結構上是否正確.源程序的結構由上下文無關文法描述.

語義分析(Syntax analysis)
  語義分析是編譯過程的一個邏輯階段. 語義分析的任務是對結構上正確的源程序進行上下文有關性質的審查, 進行類型審查.例如一個C程序片斷:
  int arr[2],b;
  b = arr * 10;
  源程序的結構是正確的.
  語義分析將審查類型並報告錯誤:不能在表達式中使用一個數組變量,賦值語句的右端和左端的類型不匹配.

 

 詞法分析實現:

http://www.cnblogs.com/yanlingyin/archive/2012/04/17/2451717.html

正則表達式的詞法分析:

http://www.cnblogs.com/naturemickey/p/3667571.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM