• <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
                開源了之后反而就不是很想寫開發紀事了,因為每一次check-in到服務器上都會寫幾句描述,就有了一種已經公布了進度的錯覺。Codeplex加上Visual Studio Team Foundation System真是方便,不像其他的源碼管理系統一樣要配置到半死,還要到命令行里面搞來搞去,好不容易找到一個UI插不進Visual Studio,好不容易找到一個能插的老是要掛。

                但是開源了之后就不好意思不寫文檔了。把自己的代碼放上網的另一個好處就是總是覺得會有很多人來看,所以還是要寫點文檔介紹介紹。Codeplex是英文的,文檔還不能只有中文。而且自己認識的很多程序員是說中文的,文檔也不能只有英文。結果干脆就維護起了雙語文檔。不過雙語文檔真是麻煩啊。現在沒看到什么文檔生成工具可以產生多種語言(指自然語言)的文檔的,而且格式還不好看(想象一下Doxygen的東西,全都是參差不齊的表格,不知道從哪里下手看啊),因為文檔除了介紹每一個函數的作用以外,還要有編程指南。其實有些函數用指南來寫反而比單獨的介紹函數的返回值參數什么的要好得多。特別是C++。

                現在Vczh Library++3.0的Core Library應該算成型了,于是在做腳本引擎的部分。我打算把腳本引擎分為若干個模塊。首先是基礎語言的中間指令集,其實就像是專門為C語言設計出來的指令集。其次是基礎語言的語法樹,這次的語法樹的類型規則要足夠簡單,因為主要是用來給高級語言的編譯器產生輸出的。第三是一門類似C#(當然這只是個比喻)的語言,然后把這個語言的語法樹轉換為C語言的語法樹。想來想去之前 CMinus的失敗其實并不是說高級語言語法樹不能轉換為C語言的語法樹,而是設計出來的語法樹太強大了反而不好拿來生成。最后就是動態語言了。

                這次做出來的應該是一個框架,我提供一大堆工具輔助開發語法分析器,然后底下有一層把虛擬機的事情全都給做了。于是就可以在上面用非常小的代價來實現各種各樣的語言了。

                現在基礎語言的中間指令集算是搞定了,當然只剩下一點點,不過這個在后面的東西完成之前沒法繼續寫。C語言的編譯器正在搞,我提供了一大堆的工具讓人們可以在C++里面漂亮的拼出語法樹,然后可以執行。當然以后還可能會有專門的語法分析器和代碼生成器來在一些語言和這個語法樹之間進行轉換,不過這也僅僅是為了調試用的,因為要實現的語言其實是一門類似C#的高動態和靜態結合的語言的語法樹。

                但是開發一個語法樹是相當麻煩的,因為語法樹基本上就是幾套大規模繼承類的組合,然后要給他們寫各種各樣的虛函數,每一次要修改虛函數的參數表的時候都是大動干戈。于是今天早上開發出了一堆宏,用來方便地寫語法樹的visitor(這幾乎是處理語法樹的唯一辦法),萬一遇到需求變更,改起來更加方便。代碼在Library\Scripting\Common\AlgorithmDeclaration.h,還附帶有一個TestCase,在UnitTest\UnitTest\TestScripting_BasicLanguage.cpp里面。

                接下來就可以開發C語言語法樹到中間指令集的轉換了,然后一層一層做下去。最后要是有空,把最低下的中間指令集拿來一x86,整個瞬間就變成JIT了。
            posted on 2010-01-09 23:37 陳梓瀚(vczh) 閱讀(2410) 評論(1)  編輯 收藏 引用 所屬分類: VL++3.0開發紀事

            評論:
            # re: Vczh Library++3.0之目前進度 2010-01-12 04:14 | 千暮(zblc)
            - -b 既然已經搞的很大了 建議增加互動環節.

            比如提供整個框架的主要接口細節,并且列出自己希望大家測試的代碼或者希望用你的東西實現何種demo以及必備的簡單說明。
            把這個做成附帶開源包內的一個文檔包版本(這個版本提供各種你的庫簡略的LI和調用原則和形式,你高興的時候可以更新它).

            這樣,有興趣的人一旦需要用你的庫做什么東西,下載后看到日益豐富的文檔包,即能夠吸收你的代碼的設計思想,有洞見的人也可以提供意見。

            庫弄大了,健壯性和其健壯性的設計級效率就要靠使用的人去錘煉吧我想  回復  更多評論
              
            久久久久久毛片免费播放| 久久久久久极精品久久久| 无码超乳爆乳中文字幕久久 | 亚洲国产另类久久久精品| 午夜不卡久久精品无码免费| 久久久久99精品成人片直播| 国产AV影片久久久久久| 久久综合久久综合亚洲| AAA级久久久精品无码片| 久久久久亚洲?V成人无码| 久久国产乱子伦免费精品| 久久亚洲av无码精品浪潮| 国产精品国色综合久久| 国内精品久久久久影院老司 | 久久99精品国产麻豆| 精品免费久久久久国产一区| 久久亚洲精品中文字幕| 婷婷久久综合| 色综合久久88色综合天天| 久久精品aⅴ无码中文字字幕重口 久久精品a亚洲国产v高清不卡 | 99久久无色码中文字幕人妻| 伊人久久综合热线大杳蕉下载| 久久精品国产亚洲av麻豆蜜芽| 国产精品久久久天天影视香蕉| 久久天堂AV综合合色蜜桃网| 亚洲国产日韩综合久久精品| 91精品无码久久久久久五月天 | 久久精品蜜芽亚洲国产AV| 久久久久亚洲精品日久生情| 香蕉久久AⅤ一区二区三区| 国产精品日韩深夜福利久久| 女人香蕉久久**毛片精品| 久久久精品2019免费观看| 午夜不卡久久精品无码免费| 人妻少妇久久中文字幕| 7777精品久久久大香线蕉| 亚洲精品乱码久久久久久中文字幕| 中文字幕精品久久| 久久天天躁狠狠躁夜夜2020一| 久久久SS麻豆欧美国产日韩| 国产亚洲精品久久久久秋霞|