• <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久久久国产精免费| 7国产欧美日韩综合天堂中文久久久久| 国产综合久久久久| 久久婷婷五月综合97色直播| 97香蕉久久夜色精品国产| 综合网日日天干夜夜久久| 国产一区二区精品久久| 国产精品内射久久久久欢欢| 久久婷婷五月综合成人D啪| 国产成人久久激情91| 久久天天躁狠狠躁夜夜不卡| 88久久精品无码一区二区毛片 | 久久免费的精品国产V∧| 久久青草国产精品一区| 免费精品久久天干天干| 久久国产高清字幕中文| 国产精品99久久久精品无码| 国产香蕉97碰碰久久人人| 狠狠综合久久AV一区二区三区| 国产精品gz久久久| 久久久久成人精品无码中文字幕| 亚洲七七久久精品中文国产| 91麻豆精品国产91久久久久久| 久久精品中文字幕无码绿巨人| 亚洲&#228;v永久无码精品天堂久久| 粉嫩小泬无遮挡久久久久久| 日韩人妻无码精品久久免费一| 香蕉久久夜色精品国产2020| 久久久99精品成人片中文字幕| 国产精品成人99久久久久 | 久久久久久九九99精品| 亚洲国产精品成人久久| 久久久久久精品免费看SSS| 日本精品久久久久久久久免费| 久久99精品免费一区二区| 国产精品日韩欧美久久综合| 久久99国产一区二区三区| 久久强奷乱码老熟女| 久久精品18|