• <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和調用原則和形式,你高興的時候可以更新它).

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

            庫弄大了,健壯性和其健壯性的設計級效率就要靠使用的人去錘煉吧我想  回復  更多評論
              
            欧美精品一区二区久久| 亚洲AV日韩AV永久无码久久| 99久久亚洲综合精品成人| 亚洲欧美日韩精品久久| 亚洲人成无码久久电影网站| 亚洲国产精品无码久久一区二区| 好属妞这里只有精品久久| 无码人妻精品一区二区三区久久 | 久久久久久亚洲精品无码| 色噜噜狠狠先锋影音久久| 三级片免费观看久久| 99久久婷婷国产综合亚洲| 国产精品VIDEOSSEX久久发布| 日本亚洲色大成网站WWW久久| 亚洲中文字幕无码一久久区| a级毛片无码兔费真人久久| 中文字幕日本人妻久久久免费 | 狠狠色丁香婷婷综合久久来来去| 久久se精品一区二区影院 | 亚洲国产成人久久综合碰碰动漫3d| 蜜桃麻豆www久久国产精品| 天天综合久久久网| 久久99精品国产99久久6男男| 天天爽天天狠久久久综合麻豆| 久久国产影院| 日本五月天婷久久网站| 久久亚洲中文字幕精品一区| 日产精品久久久久久久| 99国产精品久久| 精品久久久久久无码人妻蜜桃| 国产精品伊人久久伊人电影 | 欧美成人免费观看久久| 欧美熟妇另类久久久久久不卡 | 日本欧美国产精品第一页久久| 免费精品久久久久久中文字幕| 久久精品国产亚洲AV久| 天天躁日日躁狠狠久久| 国产—久久香蕉国产线看观看| 久久综合九色综合网站| 精品久久久久久国产三级| 久久99精品久久久久久久不卡|