• <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
            Vczh Lazy Script
            Vczh Lazy Script的開發(fā)歷程
            關(guān)于類型推導(dǎo)的設(shè)想      摘要: 這幾天一直在忙學(xué)校的比賽,到了今天終于有空了。

            Lazy Script的語法實(shí)在是很復(fù)雜,因此不得不在進(jìn)行第一步的名字檢查之后把原本的語言轉(zhuǎn)換為內(nèi)部使用的一種元語言。這種元語言設(shè)計(jì)的原則是盡量簡單。譬如列表構(gòu)造和do-end語句就需要被轉(zhuǎn)換掉。進(jìn)行了轉(zhuǎn)換以后,就需要對元語言進(jìn)行一個(gè)類型方程組的建立。這一步暫時(shí)還沒有建模好,而且實(shí)際工作需不需要真的構(gòu)造出一組方程組還不知道。目前還比較沒有頭緒的就是如何對模板函數(shù)的類型方程建模。

            舉個(gè)例子,譬如我們對上一篇文章中提到的代碼進(jìn)行類型方程組的構(gòu)造:  閱讀全文
            posted @ 2008-04-27 10:16 陳梓瀚(vczh) 閱讀(2133) | 評論 (0)  編輯
            Vczh Lazy Script 語法分析器完成      摘要: 花了兩天的時(shí)間終于完成了Vczh Lazy Script的語法分析工作。語法分析是編譯的第一步,旨在把輸入的字符串(代碼)分析稱跟代碼結(jié)構(gòu)一致的語法樹,以便后續(xù)工作。

            藉著去年開發(fā)的Syngram工具包,這兩天過得還算輕松,僅僅對語言做了一份配置,不過這份配置也花掉了1200多行代碼。語法分析其余的部分是數(shù)據(jù)結(jié)構(gòu)。目前的數(shù)據(jù)結(jié)構(gòu)僅僅用于再現(xiàn)語言的結(jié)構(gòu),而沒有附加任何的數(shù)據(jù)。接下來的工作是檢查所有的identifier,看看有沒有哪些identifier是使用錯(cuò)誤的。一般來說都是在左值使用函數(shù)、類構(gòu)造標(biāo)簽參數(shù)不全、轉(zhuǎn)移運(yùn)算符指向的函數(shù)并沒有聲明成函數(shù)等等比較基本的東西。但是后續(xù)的工作就相當(dāng)?shù)芈闊┝恕?

            作為一門lazy+pure的函數(shù)范式程序語言,我模仿了Haskell的大部分語法,加上自己的一點(diǎn)點(diǎn)修改(因?yàn)镠askell的語法實(shí)在是太詭異了),但是主要功能是沒有變化的。等上面所說的identifier完成以后,我就要開始寫Lazy的類型推導(dǎo)程序了。類型推導(dǎo)程序用于計(jì)算出代碼中省略的類型聲明,相當(dāng)于把整份代碼轉(zhuǎn)換成類型方程然后求解  閱讀全文
            posted @ 2008-04-22 04:03 陳梓瀚(vczh) 閱讀(2550) | 評論 (4)  編輯
            Vczh Lazy Script 上下文無關(guān)文法      摘要: ExpCmList -> Expression ["," ExpList]
            ArrCmList -> [LeftValue "<-"] Expression ["," ArrList]
            CaseList -> LeftValue ":" Expression ";" [CaseList]
            DoList -> ([LeftValue "="]Expression | LeftValue "::" TypeDes ) ";" [DoList]
            WhereList -> (FuncHead | FuncBody) ";" [WhereList]

            Exp0 ->
            Exp0 -> FuncName
            Exp0 -> "(" [ExpCmList] ")"
            Exp0 -> "[" [ExpCmList] "]"
            Exp0 -> "[" Expression "|" ArrCmList "]"
            Exp0   閱讀全文
            posted @ 2008-04-20 20:50 陳梓瀚(vczh) 閱讀(1862) | 評論 (3)  編輯
            Vczh Lazy Script 語法描述
            posted @ 2008-04-20 20:49 陳梓瀚(vczh) 閱讀(2825) | 評論 (3)  編輯

            久久精品国产免费观看| 久久久精品无码专区不卡| 伊人久久综合成人网| 国产成人久久精品一区二区三区 | 久久久久九国产精品| 亚洲精品成人久久久| 少妇人妻88久久中文字幕| 国产精品久久影院| 亚洲国产精品久久久久婷婷老年| 嫩草影院久久99| 久久精品国产AV一区二区三区| 精品久久一区二区三区| 久久综合视频网| 99久久免费国产精品| 日韩乱码人妻无码中文字幕久久| 青青青青久久精品国产h| 久久综合九色综合网站| 久久精品国产亚洲7777| 久久精品国产亚洲AV电影| 伊人久久大香线蕉AV一区二区| 国内精品伊人久久久久| 久久综合狠狠综合久久| 久久久噜噜噜久久中文字幕色伊伊 | 91精品免费久久久久久久久| 人人狠狠综合久久88成人| 久久人妻AV中文字幕| 欧美久久一级内射wwwwww.| 久久91精品国产91久久小草 | 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 欧美一区二区三区久久综合 | 91麻豆精品国产91久久久久久| 久久人人爽人人爽人人AV东京热| 亚洲国产精品一区二区三区久久 | 久久综合偷偷噜噜噜色| 久久精品视屏| 久久无码人妻精品一区二区三区| 久久久久国产精品| 国产精品99久久久久久董美香| 久久噜噜电影你懂的| 亚洲国产精品一区二区久久| 国产精品久久久久久久久|