freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

編譯原理實驗二(設(shè)計一個詞法分析器)五篇范文(編輯修改稿)

2024-11-03 22:01 本頁面
 

【文章內(nèi)容簡介】 過程都寫出就行了。但是要注意的是,在編寫代碼時,要根據(jù)LL(1)文法的工作原理去設(shè)計。通過本次課程設(shè)計清楚地了解到遞歸下降分析法的優(yōu)缺點,其優(yōu)點是簡單、直觀,易于構(gòu)造分析程序。缺點是對文法要求高,必須是LL(1)文法,同時由于遞歸調(diào)用較多,影響分析器的效率。課程設(shè)計雖然只有短短的一周,但讓我認(rèn)識到學(xué)習(xí)好編譯原理,是對程序設(shè)計和編譯的一個很好的進(jìn)化橋梁和奠基石。今后學(xué)習(xí)的日子還很長,希望通過這次編譯原理的課程設(shè)計,不僅對編程語言的進(jìn)一步復(fù)習(xí),還是對更深層次的學(xué)習(xí)作一個簡單的準(zhǔn)備。編程的能力不是一朝一夕能鍛煉出來,堅持學(xué)習(xí),堅持編程的學(xué)習(xí),多看,多編是最好的學(xué)習(xí)和提高方法。通過本次編譯原理課程設(shè)計,對面向?qū)ο蟮亩x又有了更深一步的理解,對編譯程序有了進(jìn)一步的理解,同時也認(rèn)識到自己各方面知識的薄弱點,以后在學(xué)習(xí)中也能有針對性對這方面進(jìn)行深入學(xué)習(xí)。學(xué)習(xí)更好的知識重在基礎(chǔ),編譯原理的學(xué)習(xí)為我們提供非常好的橋梁和道路。參考文獻(xiàn)《編譯原理》 機(jī)械工業(yè)出版社出版Alfred Ravi Sethi Jeffrey D,Ullman著李建中 姜守旭等譯《程序設(shè)計語言 編譯原理(第三版)》 國防工業(yè)出版社出版陳火旺 劉春林 譚慶平趙克佳 劉越 著第五篇:編譯原理 語法分析器 (java完美運行版)實驗二語法分析器一、實驗?zāi)康耐ㄟ^完成預(yù)測分析法的語法分析程序,了解預(yù)測分析法和遞歸子程序法的區(qū)別和聯(lián)系。使學(xué)生了解語法分析的功能,掌握語法分析程序設(shè)計的原理和構(gòu)造方法,訓(xùn)練學(xué)生掌握開發(fā)應(yīng)用程序的基本方法。有利于提高學(xué)生的專業(yè)素質(zhì),為培養(yǎng)適應(yīng)社會多方面需要的能力。二、實驗內(nèi)容u 根據(jù)某一文法編制調(diào)試 LL(1)分析程序,以便對任意輸入的符號串進(jìn)行分析。u 構(gòu)造預(yù)測分析表,并利用分析表和一個棧來實現(xiàn)對上述程序設(shè)計語言的分析程序。u 分析法的功能是利用LL(1)控制程序根據(jù)顯示棧棧頂內(nèi)容、向前看符號以及LL(1)分析表,對輸入符號串自上而下的分析過程。三、LL(1)分析法實驗設(shè)計思想及算法u 模塊結(jié)構(gòu):(1)定義部分:定義常量、變量、數(shù)據(jù)結(jié)構(gòu)。(2)初始化:設(shè)立LL(1)分析表、初始化變量空間(包括堆棧、結(jié)構(gòu)體、數(shù)組、臨時變量等);(3)控制部分:從鍵盤輸入一個表達(dá)式符號串;(4)利用LL(1)分析算法進(jìn)行表達(dá)式處理:根據(jù)LL(1)分析表對表達(dá)式符號串進(jìn)行堆棧(或其他)操作,輸出分析結(jié)果,如果遇到錯誤則顯示錯誤信息。四、實驗要求編程時注意編程風(fēng)格:空行的使用、注釋的使用、縮進(jìn)的使用等。如果遇到錯誤的表達(dá)式,應(yīng)輸出錯誤提示信息。對下列文法,用LL(1)分析法對任意輸入的符號串進(jìn)行分析:(1)ETG(2)G+TG|—TG(3)Gε(4)TFS(5)S*FS|/FS(6)Sε(7)F(E)(8)Fi 輸出的格式如下:五、實驗源程序 import .*。import .*。import .*。import 。import .*。import 。public class LL1 extends JFrame implements ActionListener { /****/private static final long serialVersionUID = 1L。JTextField tf1。JTextField tf2。JLabel l。JButton b0。JPanel p1,p2,p3。JTextArea t1,t2,t3。JButton b1,b2,b3。JLabel l0,l1,l2,l3,l4。JTable table。Statement sta。Connection conn。ResultSet rs。DefaultTableModel dtm。String Vn[]=null。Vector P=null。int firstComplete[]=null。//存儲已判斷過first的數(shù)據(jù)char first[][]=null。//存儲最后first結(jié)果int followComplete[]=null。//存儲已判斷過follow的數(shù)據(jù)char follow[][]=null。//存儲最后follow結(jié)果char select[][]=null。//存儲最后select結(jié)果int LL=0。//標(biāo)記是否為LL(1)String vt_tou[]=null。//儲存VtObject shuju[][]=null。//存儲表達(dá)式數(shù)據(jù)char yn_null[]=null。//存儲能否推出空LL1(){ setLocation(100,0)。setSize(700,780)。tf1=new JTextField(13)。tf2=new JTextField(13)。l=new JLabel(“”)。l0=new JLabel(“輸入字符串:”)。l1=new JLabel(“輸入的文法”)。l2=new JLabel(“ ”)。l3=new JLabel(“分析的結(jié)”)。l4=new JLabel(“預(yù)測分析”)。//p1=new JPanel()。p2=new JPanel()。p3=new JPanel()。t1=new JTextArea(24,20)。t2=new JTextArea(1,30)。t3=new JTextArea(24,40)。b0=new JButton(“確定(S為開始)”)。b1=new JButton(“ 判斷文法 ”)。為:果:表:b2=new JButton(“輸入”)。b3=new JButton(“清空”)。table=new JTable()。JScrollPane jp1=new JScrollPane(t1)。JScrollPane jp2=new JScrollPane(t2)。JScrollPane jp3=new JScrollPane(t3)。(tf1)。(l)。(tf2)。(b0)。(b1)。(l0)。(l2)。(jp2)。(b2)。(b3)。(l1)。(l3)。(jp1)。(jp3)。(l4)。(new JScrollPane(table))。add(p2,“Center”)。add(p3,“South”)。(this)。(this)。(this)。(this)。setDefaultCloseOperation()。(new Dimension(660,200))。setVisible(true)。} public void actionPerformed(ActionEvent e){ if(()==b0){ String a=()。String b=()。(a+39?!?9。+b+39。n39。)。}if(()==b1){ (“)。int Vnnum=0,k。Vn=new String[100]。P=new Vector()。String s[]=().split(”n“)。for(int i=0。ireturn。}if(s[i].charAt(0)=39。A39。amp。amp。s[i].charAt(1)==39?!?9。){ for(k=0。k=Vnnum){ Vn[Vnnum]=s[i].substring(0, 1)。//存入Vn數(shù)據(jù) Vnnum++。} (s[i])。} else { (”文法輸入有誤,請重新輸入“)。return。} } yn_null=new char[100]。first=new char[Vnnum][100]。int flag=0。String firstVn[]=null。firstComplete=new int[Vnnum]。for(int i=0。Vn[i]!=null。i++)//依次求 FIRST** { flag=0。firstVn=new String[20]。if((flag=add_First(first[i],Vn[i],firstVn,flag))==1)return。firstComplete[i]=1。} (”first集:“+”n“)。//顯示FIRST**for(int i=0。Vn[i]!=null。i++){ (”first(“+Vn[i]+”)={ “)。for(int j=0。first[i][j]!=39。39。j++){ (first[i][j]+” , “)。} (”}“+”n“)。}follow=new char[Vnnum][100]。String followVn[]=null。followComplete=new int[Vnnum]。for(int i=0。Vn[i]!=null。i++)//求FOLLOW** { flag=0。followVn=new String[20]。if((flag=tianjiaFollow(follow[i],Vn[i],followVn,flag))==1)return。followComplete[i]=1。} (”follow集:“+”n“)
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1