導航:首頁 > 源碼編譯 > 什麼是標識符編譯原理

什麼是標識符編譯原理

發布時間:2023-09-17 22:20:15

『壹』 舉例說明詞法分析中關鍵字,運算符及標識符的詞法二元組的描述(編譯原理)問題

ANSI C中的標識符定義是:以字母開頭的,字母、數字以及下劃線的組合。
用正則表達式表示就是:[a-zA-Z]+[a-zA-Z0-9_]*
根據這個正則表達式畫出它的NFA,轉換成DFA,化簡為最簡DFA。最後根據這個最簡的有限狀態機就可以寫出標識符的匹配演算法了。

『貳』 c語言中標識符是什麼

C語言中的標識符只能由字母、數字和下劃線三種字元組成,且第一個字元必須是字母或下劃線。

標識符是用戶編程時使用的名字,比如指定某個東西、人,都要用到它,他或她的名字。在電腦語言中,對於變數,常量,函數,語句塊也有名字,統統稱之為標識符。

電腦的標識符如下:

知識擴展:

C語言的標識符一般應遵循如下的命名規則:

1、標識符必須以字母a~z、 A~Z或下劃線開頭,後面可跟任意個(可為0)字元,這些字元可以是字母、下劃線和數字,其他字元不允許出現在標識符中。

2、標識符區分大小寫字母。

3、標識符的長度,c89規定31個字元以內,c99規定63個字元以內。

4、C語言中的關鍵字,有特殊意義,不能作為標識符。

5、自定義標識符最好取具有一定意義的字元串,便於記憶和理解。

『叄』 編譯原理:c語言標識符的正則表達式

C語言中的標識符:
標識符由字母、數字、下劃線「_」組成,並且首字母不能是數字.
java語言中的標識符:
標識符由字母、數字、下劃線「_」、美元符號「$」組成,並且首字母不能是數字。
一般標識符由字母、數字、下劃線「_」組成
如果只能以下劃線、英文字母開頭,後跟單詞字元的話:
^[A-Za-z_][A-Za-z0-9_]*$

『肆』 編譯原理的名字與標識符的區別是什麼

不太明白樓主想問什麼,先幫你查這么多,如果還不明白,請繼續詢問網路和谷哥。

標識符
是用戶編程時使用的名字。我們指定某個東西、人,都要用到它,他或她的名字;在數學中解方程時,我們也常常用到這樣或那樣的變數名或函數名。同樣的道理,在電腦語言中,對於變數,常量,函數,語句塊也有名字,我們統統稱之為標識符。我們在給人起名字時有一定的規矩,比如,頭一個字為父親或母親的姓氏,後面一般為一個或兩個字。所以,您可以想當然地認為電腦語言里的標識符也有一定的命名規則,如果您這樣想,那您就想對了!

保留字(reserved word)
保留字又稱關鍵字。
指在高級語言中已經定義過的字,使用者不能再將這些字作為變數名或過程名使用。
每種程序設計語言都規定了自己的一套保留字。
例如:BASIC語言規定不能使用LIST作為變數名或過程名,因為LIST是一個BASIC語言專用於顯示內存程序的命令
C有22+10 = 32個關鍵字
C++ 有22+10+11+20 = 63 個關鍵字
JAVA 有22+ 9+ 17 = 48 個關鍵字

『伍』 【編譯原理】第二章:語言和文法



上述文法 表示,該文法由終結符集合 ,非終結符集合 ,產生式集合 ,以及開始符號 構成。
而產生式 表示,一個表達式(Expression) ,可以由一個標識符(Identifier) 、或者兩個表達式由加號 或乘號 連接、或者另一個表達式用括弧包裹( )構成。

約定 :在不引起歧義的情況下,可以只寫產生式。如以上文法可以簡寫為:

產生式

可以簡寫為:

如上例中,

可以簡寫為:

給定文法 ,如果有 ,那麼可以將符號串 重寫 為 ,記作 ,這個過程稱為 推導
如上例中, 可以推導出 或 或 等等。

如果 ,
可以記作 ,則稱為 經過n步推導出 ,記作 。

推導的反過程稱為 歸約

如果 ,則稱 是 的一個 句型(sentential form )。

由文法 的開始符號 推導出的所有句子構成的集合稱為 文法G生成的語言 ,記作 。
即:


文法

表示什麼呢?
代表小寫字母;
代表數字;
表示若干個字母和數字構成的字元串;
說明 是一個字母、或者是字母開頭的字元串。
那麼這個文法表示的即是,以字母開頭的、非空的字元串,即標識符的構成方式。

並、連接、冪、克林閉包、正閉包。
如上例表示為:

中必須包含一個 非終結符


產生式一般形式:
即上式中只有當上下文滿足 與 時,才能進行從 到 的推導。

上下文有關文法不包含空產生式( )。


產生式的一般形式:
即產生式左邊都是非終結符。

右線性文法
左線性文法
以上都成為正則文法。
即產生式的右側只能有一個終結符,且所有終結符只能在同一側。

例:(右線性文法)

以上文法滿足右線性文法。
以上文法生成一個以字母開頭的字母數字串(標識符)。
以上文法等價於 上下文無關文法

正則文法能描述程序設計語言中的多數單詞。

正則文法能描述程序設計語言中的多數單詞,但不能表示句子構造,所以用到最多的是CFG。

根節點 表示文法開始符號S;
內部節點 表示對產生式 的應用;該節點的標號是產生式左部,子節點從左到右表示了產生式的右部;
葉節點 (又稱邊緣)既可以是非終結符也可以是終結符。

給定一個句型,其分析樹的每一棵子樹的邊緣稱為該句型的一個 短語
如果子樹高度為2,那麼這棵子樹的邊緣稱為該句型的一個 直接短語

直接短語一定是某產生式的右部,但反之不一定。

如果一個文法可以為某個句子生成 多棵分析樹 ,則稱這個文法是 二義性的

二義性原因:多個if只有一個else;
消岐規則:每個else只與最近的if匹配。

閱讀全文

與什麼是標識符編譯原理相關的資料

熱點內容
msf埠遷移命令 瀏覽:880
工商app積分怎麼查詢 瀏覽:143
鐵路app怎麼買火車票 瀏覽:309
移魅族除的app怎麼添加 瀏覽:240
兔籠子大號加密 瀏覽:171
單片機程序燒錄操作成功 瀏覽:878
指標高拋低吸點位源碼 瀏覽:205
25匹壓縮機銅管 瀏覽:570
單片機單燈左移05 瀏覽:150
買伺服器練手什麼配置 瀏覽:783
伺服器被毀該怎麼辦 瀏覽:939
python私有庫 瀏覽:514
Python有中文嗎 瀏覽:736
麥塊的伺服器為什麼都進不去 瀏覽:474
新買的伺服器如何打開 瀏覽:35
安卓軟體游戲怎麼開發 瀏覽:319
用撲克擺愛心解壓神器怎麼擺 瀏覽:70
松下製冷壓縮機 瀏覽:275
pdf里怎麼修改文字 瀏覽:686
已保存文檔加密如何設置 瀏覽:413