網頁

搜尋此網誌

2013年12月3日 星期二

Lexical structure of JavaScript and Python 詞彙結構

詞彙結構 (Lexical Structure) 是程式語言最基礎的規則,說明如何使用一個程式語言撰寫程式。當程式語言定義一套詞彙結構之後,程式開發人員撰寫程式碼,詞彙分析器 (Lexical Analyzer) 將程式碼分析為標記 (token),解析器 (parser) 處理標記才能給編譯器或解析器處理,由此可知,一個程式語言最底層的是詞彙結構,若要設計一個程式語言,也應該要從詞彙結構開始。

這裡我將比較 JavaScript 和 Python 這兩種程式語言的詞彙結構。

JavaScript (ECMAScript 3) Python (2.6)
字元集 (character set) Unicode 預設是7-bit ASCII
可使用特殊註解指定字元集
# -*- coding: encoding -*-
識別字 (identifier) 區分大小寫 (case-sensitive)
字母、底線或錢字符號開始
區分大小寫
字母或底線開始
註解 (comment) //雙斜線表示單行註解
/*斜線與星號之間為多行註解*/
#數字符號 (number sign) 表示單行註解
"""多行註解可用3個單引號或雙引號"""
空白 (space) space (\u0020)
tabulation (\u0009)
vertical tabulation (\u000B)
form feed (\u000C)
no-break space (\u00A0)
byte order mark (\uFEFF)
space (\u0020)
tabulation (\u0009)
form feed (\u000C)
行結束字元 (line terminator) line feed (\u000A),即LF
carriage return (\u000D),即CR
line separator (\u2028)
paragraph separator (\u2029)
基本上是line feed (\u000A)
Windows平台則是CRLF
Unix平台則是LF
多行程式碼 程式碼直接分行,最後必須用分號 (semicolon ;) 結束 每行結尾必須用反斜線 (backslash \) 表示分行
關鍵字 (keyword)
保留字 (reserved words)
基本上共29個
break case catch
continue debugger default
delete do else
false finally for
function if in
instanceof new null
return switch this
throw true try
typeof var void
while with

ECMAScript 5增加下列幾個
class const enum export 
extends import super
共31個
and as assert  
break class continue
def del elif
else except exec
finally for from
global if import
in is lambda
not or pass
print raise return
try while with
yield
字面值 (literal) 數字(整數、浮點數)
字串
布林
正規表示式
物件
陣列
字串
數字(整數、浮點數、複數)


###

沒有留言:

張貼留言

熱門文章