經(jīng)老師介紹,而且最近進(jìn)行實驗二(將正則表達(dá)式轉(zhuǎn)換為DFA,然后轉(zhuǎn)換為代碼;想做一個類似于flex的軟件)覺得flex很奇妙,輸入一個正則表達(dá)式就能夠輸出對應(yīng)的掃描程序,這也開始真正體現(xiàn)老師說的自動化。我一直對計算機(jī)的一個終極問題(“什么能夠被有效地自動化”)很感興趣,因此想先從flex開始對這方面有點感性的認(rèn)識:
在網(wǎng)上搜索flex,安裝flex,先下載flex(原本打算放上來的,但是考慮到版權(quán)的問題,還是不要了。需要的朋友,我可以發(fā)給你),然后按照默認(rèn)的步驟逐步安裝。
安裝后,設(shè)置環(huán)境變量,將Path指向flex.exe所在的文件夾(本機(jī)上為:C:\Program Files\GnuWin32\bin,一般按默認(rèn)方式安裝后flex.exe都在該文件夾內(nèi)),具體步驟:
→對“我的電腦”圖標(biāo)按右鍵→選擇“屬性”→選擇“高級”→單擊“環(huán)境變量”→在“系統(tǒng)變量”中查找Path項,并選擇之→按“編輯”→在“變量值”的最后一項添加“;C:\Program Files\GnuWin32\bin”,按確定完成。
最近我是先從課本TINY語言開始,TINY語言的lex文件在源代碼的LEX文件夾內(nèi)
1. 在tiny.l的最后添加:
int yywrap()
{
return 1;
}
用來結(jié)束掃描
2. 在console上輸入flex tiny.l,生成lex.yy.c,將其替換scan.c,編譯鏈接生成tiny的編譯器。
參考文獻(xiàn):
http://course.cugnc.com/bianyi/shiyan/CHAPTER/f1.htm
http://blog.csdn.net/litchh/archive/2004/07/14/40983.aspx
http://www.cnscn.org/read.php?tid-10862.html