作業9月30號

2022-06-04 23:45:18 字數 2477 閱讀 1621

1、              詞法分析的功能:

詞法分析器的主要任務是讀入源程式的輸入字元、將它們組成詞素,生成並輸出乙個詞法單元序列,每個詞法單元對應於乙個詞素。

當詞法分析器發現了乙個識別符號的詞素時,要將這個詞素新增到符號表中。

其他任務:

詞法分析器的兩個級聯的處理階段:

掃瞄階段:簡單處理,刪除注釋,壓縮空白字元。

詞法分析階段:處理掃瞄階段的輸出並生成詞法單元。

2、符號與種別碼對照表

單詞符號

begin

ifthen

while

doend+-

*/:: =

種別碼123

45613

1415

1617

18單詞符號

<> 

<=

>==;

()letter(letter|digit)

digit digit*

種別碼20

2122

2324

2526

2728

1011

二。符號與種別碼的對照表以及源程式。

我所做的詞法分析程式和大多數程式差不多,也有著很多的不足,我將需要進行翻譯的各種單詞符號的對應的種別碼分成了若干個陣列,並且在後期的修改中將老師的種別表進行了擴充,具體的功能是:輸入需要翻譯的東西作為字串儲存在a的陣列中,用字元ch來儲存乙個個的字元,在一次的迴圈中翻譯出乙個個種別類並將其用(,)來顯示出來,一次迴圈,用陣列token儲存,進行下一次迴圈的同時清除裡面的資料,方便進行下一次的翻譯與儲存。大致是如此。

源**如下:

/*這是我定義的種別類 符號:

@ 0 # 33

auto 1 

break 2 

case 3 

char 4 

const 5 

continue 6 

default 7 

do 8 

double 9 

else 10 

enum 11 

extern 12

float 13 

for 14 

goto 15 

if 16 

int 17 

long 18

register 19 

return 20

short 21

signed 22

sizeof 23

static 24

struct 25

switch 26

typedef 27

union 28

unsigned 29

void 30

volatile 31

while 32

end 33

include 34

stdio 35

string 36

main 37

stdlib 38

qita 100

number 40

#      33

<=     41

>=     42

==     43

:=     44

<>     45

<      46

>      47

=      48

:      49

+  50

-  51

*  52 

/  53

(  54

)  55

57;  58

.  59

*/三 .用文法描述詞法規則。

這個概念我不是太懂,但是也說說自己的理解和想法。

首先是文法形式的定義:a-〉b ,a代表的是左部符號,『-〉』意思是為生成,而b代表的是右部的符號串。

有著終結符號:如0,1:1.組成語言的終止符。2.基本有小寫字母組成。

文法(vn,vt,p,s)

就比如說:a->a|b|e|aa|ae|ao|a

vn = ,

vt =

p=s = a .

其實a-〉aa 就代表著迴圈的意思,每進行一次,就會增加乙個a,假如a-〉aaa,意思就是每迴圈一次,就增加aa,所以暫時也就是理解到了這個意思,然後通過幾道題來強化自己的理解。

就好比q=,l=

首先是看好n的取值範圍,然後看n具體指了多少個,那麼就比如一起來進行迴圈,這個題a,b都有n,但是是分開的,所以不用一起進行。

解題思路如下:

1.增長的趨勢:a^2n,aa aaaa aaaaaa........

b^2n,bb bbbb bbbbbb.......

2.迴圈規律:a->aa  a->aaa

b->bb b->bbb

3.s->a|b

a->aa|aaa // 意思是aa為開頭,迴圈不斷增加aa

b->bb|bbb // 意思是bb為開頭,迴圈不斷增加bb

9月9號作業

優點 敲完一條命令,馬上就能看到結果 缺點 無法儲存優點 能以檔案的形式儲存 缺點 檔案永久儲存在硬碟中,並且開啟檔案後,會讀一行翻譯一行當沒有變數名指向變數值時,會消除變數值存在記憶體中的儲存空間 x 10 y 10 z 10 del y10的引用計數為多少?引用計數 2個x 257 y x de...

3月9號總結

3月9號總結 心情 開心 開支 18 收入 500 昨天晚上破解了智睿的乙個商業 今天有點小回報 今天上網檢查了y老師的oask系統,發現一漏洞,我和王凡討論未來計畫,打算做外掛程式,這方面都沒怎麼接觸,moyo哥也參加了,我相信很快就能成功 製作了個半成品的vb 漏洞查詢工具,有這東西,那些0da...

1月30號到31號總結

作為新的一年的第乙個月的最後兩天,這篇部落格也是有一定的意義的吧。一月三十號這一天,我主要完成的就是最小生成樹的克魯斯卡爾演算法,然後完成了最小生成樹這一演算法的總結,具體放在了這裡。這是在學習上的成果,這天下午,我們進行了集訓隊一年一度的搬宿舍活動。額額。其實就是寒假了,學校要將我們這些留校生集中...