• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-341  評論-2670  文章-0  trackbacks-0
                接著上一篇的話題。開發(fā)智能提示首要的問題就是開發(fā)一個高性能的語法分析器。一個高性能的語法分析器總是包含一個高性能的詞法分析器的。本系列的第一篇已經(jīng)提到了用C#和狀態(tài)機寫著色器對10萬行代碼進行著色只需要半秒。鑒于我們大部分的程序文件都只是幾千行,因此用相同的技術(shù)開發(fā)的詞法分析器顯然可以在幾十毫秒內(nèi)完成對文件的分析,從而再也不需要擔(dān)心詞法分析器的性能問題了。

                著色器的狀態(tài)機一般都比詞法分析器的狀態(tài)機簡單,因為我們總是使用一個顏色來表達一些類型的記號(譬如操作符、數(shù)字和名字一般都用同樣的顏色——黑色)。因此我們每當(dāng)支持一種新語言或者當(dāng)語言升級的修改IDE的時候,總是要同時修改兩個狀態(tài)機。手寫狀態(tài)機是很容易出錯的,就如同手寫語法分析器也很容易出錯一樣。語法分析器的解決辦法是讓你給文法來生成語法分析器的代碼,因此詞法分析器和著色器也使用類似的方法:給狀態(tài)機生成代碼。

                目前這個狀態(tài)機只做了一半:只能畫狀態(tài),暫時還不能指定顏色或者記號類型。當(dāng)然添加一個指定顏色的功能是很簡單的,不過我還需要想一想如何用圖像來表達,讓狀態(tài)機顯得更清晰。今天做了一個晚上搞定了狀態(tài)機的編輯程序,如圖所示:

                接下來就可以開發(fā)兩個功能,第一個是生成著色器的代碼,第二個是生成詞法分析器的代碼。這樣就可以避免因為程序?qū)戝e從而省下一大堆調(diào)試的時間了。
            posted on 2010-09-19 09:58 陳梓瀚(vczh) 閱讀(7142) 評論(6)  編輯 收藏 引用 所屬分類: 開發(fā)自己的IDE

            評論:
            # re: 開發(fā)自己的IDE(四) 2010-09-19 16:33 | 路青飛
            有個小小的疑問,為啥要用C#開發(fā),為啥不用C++  回復(fù)  更多評論
              
            # re: 開發(fā)自己的IDE(四) 2010-09-19 17:45 | 空明流轉(zhuǎn)
            我說師祖啊,你每天都要被C++的擁躉折磨很長時間吶。其實我也希望你搞個C++的,然后我就可以用了。你現(xiàn)在這樣我咋移植。。。  回復(fù)  更多評論
              
            # re: 開發(fā)自己的IDE(四) 2010-09-19 19:04 | 陳梓瀚(vczh)
            @空明流轉(zhuǎn)
            我整個引擎都是C++寫的,只是IDE部分不是哈。你就讓linux用戶裝個mono,照樣移植。  回復(fù)  更多評論
              
            # re: 開發(fā)自己的IDE(四) 2010-09-19 19:04 | 陳梓瀚(vczh)
            @路青飛
            因為C++寫GUI吃力不討好,為什么不用C#呢。  回復(fù)  更多評論
              
            # re: 開發(fā)自己的IDE(四) 2010-09-20 02:43 | meax
            @陳梓瀚(vczh)
            大多數(shù)人都喜歡小巧快速,或者稱之為精致的東西。虛擬機目前還做不到這一點  回復(fù)  更多評論
              
            # re: 開發(fā)自己的IDE(四) 2010-09-20 18:07 | 陳梓瀚(vczh)
            @meax
            IDE本來就不精致,追求做IDE的東西要精致這顯然是不合理的哈。你看那個臃腫的java做eclipse和JBuilder不也是那么多人用。  回復(fù)  更多評論
              
            国内精品久久国产大陆| 亚洲AV日韩精品久久久久| 国产韩国精品一区二区三区久久| 国产精品一久久香蕉国产线看观看| 久久精品9988| 国产精品久久新婚兰兰| 久久婷婷五月综合色奶水99啪| 99久久精品免费看国产| 国产精品久久久久久久人人看| 人妻精品久久久久中文字幕69 | 色综合久久夜色精品国产| 亚洲中文字幕无码久久2017| 亚洲国产精品久久久久| 国产69精品久久久久APP下载 | 亚洲级αV无码毛片久久精品| 国产精品久久久久影院色| 一级做a爰片久久毛片免费陪| 久久久精品免费国产四虎| 日韩人妻无码一区二区三区久久99 | 久久久久99精品成人片试看| 亚洲欧洲久久久精品| 国产69精品久久久久99| 色欲久久久天天天综合网| 伊人久久亚洲综合影院| 久久久中文字幕日本| 99久久伊人精品综合观看| 好久久免费视频高清| 久久国产乱子伦免费精品| 久久久久久精品免费免费自慰| 中文字幕一区二区三区久久网站 | 99久久精品国产一区二区三区| 99久久99这里只有免费费精品| 无码人妻久久一区二区三区| 国产成人精品久久| 欧美亚洲国产精品久久久久| 欧美日韩久久中文字幕| 久久这里有精品| 伊人久久大香线蕉AV一区二区| 波多野结衣久久精品| 伊人久久大香线焦AV综合影院| 日产精品久久久久久久|