• <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>

            歲月流轉,往昔空明

            C++博客 首頁 新隨筆 聯系 聚合 管理
              118 Posts :: 3 Stories :: 413 Comments :: 0 Trackbacks

            對于C++一系的語言,Name Mangling主要用于同名函數,同名類型和同名變量的重載。編譯器可以在編譯期將同名函數的不同簽名形式區分開來。Name Mangling經常用于以下場合:函數同名稱不同簽名(函數重載);跨編譯單元的變量、函數引用;動態鏈接庫或其他形式的函數、變量導出。

            盡管現階段SASL不打算支持Member Function等比較復雜的行為,甚至暫時不考慮函數重載。但是作為現代語言編譯的基本要素,SASL在語義分析階段,仍然提供了較為完善的Name Mangling機制,為以后的編譯器特性擴充打下基礎。

            SASL的Mangling語法如下:
            mangled_name = 'M' basic_name '@' return_value_type parameter_type_list '@' 'Z'
            basic_name = string '@'
            return_value_type = value_type
            parameter_type_list = ( value_type )*
            value_type = qualifier_code type_code
            qualifier_code = "UN" | "CN" | "NN" | "UC"
            type_code = buildin_typecode | struct_class_typecode | array_type_code
            buildin_typecode = dimension_code basic_type
            dimension_code = scalar | vector | matrix
            scalar = 'B'
            vector = 'V' (1|2|3|4)
            matrix = 'M' (1|2|3|4){2}
            basic_type =
              'S1' | 'U1' | 'S2' | 'U2' | 'S4' | 'U4' | 'S8' | 'U8' | 'F' | 'D' | 'V' | 'B'
            struct_class_typecode = 'S' string '@@'
            array_class_typecode = 'A' type_code size '@@'

            和主流語言相比,本Mangling暫時不支持Qualifier(Class Member,Namespace Qualifiers)。以后在需要Qualifier的時候再酌情添加。也就是說暫時不會考慮現有版本和以后版本在二進制上的兼容性。

            以下是一個mangling的例子:

            double foo();  => Mfoo@@NNBD@Z

            posted on 2010-05-24 23:00 空明流轉 閱讀(1580) 評論(7)  編輯 收藏 引用

            評論

            # re: SASL 的 Name Mangling 2010-05-24 23:59 OwnWaterloo
            SASL是什么? google了一下, 好像都不是……  回復  更多評論
              

            # re: SASL 的 Name Mangling 2010-05-25 00:11 空明流轉
            @OwnWaterloo
            softart shader language...  回復  更多評論
              

            # re: SASL 的 Name Mangling 2010-05-25 00:34 OwnWaterloo
            @空明流轉
            哦, 這樣……
            為什么要新造一門語言呢? —— 如果這個問題過于無聊可以無視……
            我只是想收集一下創造一門語言的n個理由……
            謝謝……  回復  更多評論
              

            # re: SASL 的 Name Mangling 2010-05-25 08:40 ccsdu2009
            語法難懂!
              回復  更多評論
              

            # re: SASL 的 Name Mangling 2010-05-25 11:07 空明流轉
            @ccsdu2009
            呃,哪里難懂了。。。  回復  更多評論
              

            # re: SASL 的 Name Mangling 2010-05-25 18:16 ccsdu2009
            @空明流轉
            最基本 要讓學過其他語言的程序員快速掌握
              回復  更多評論
              

            # re: SASL 的 Name Mangling 2010-05-25 19:58 空明流轉
            @ccsdu2009
            name mangling 是編譯器處理的問題,和語言本身無關。  回復  更多評論
              

            97久久精品无码一区二区天美| 亚洲国产天堂久久综合网站| 久久91这里精品国产2020| 精品无码久久久久久久久久| 青青草国产97免久久费观看| 热99RE久久精品这里都是精品免费 | 久久综合亚洲色HEZYO社区| 人妻丰满AV无码久久不卡| 亚洲国产二区三区久久| 亚洲v国产v天堂a无码久久| 亚洲精品无码久久久久| 国产午夜精品久久久久九九| 精品综合久久久久久97| 91精品国产91久久| 久久午夜羞羞影院免费观看| 亚洲精品无码久久久久AV麻豆| 久久国产色AV免费看| 亚洲国产成人乱码精品女人久久久不卡 | 无码精品久久一区二区三区| 久久综合狠狠综合久久| 久久久精品日本一区二区三区| 乱亲女H秽乱长久久久| 久久久久se色偷偷亚洲精品av | 国产女人aaa级久久久级| 亚洲精品乱码久久久久久蜜桃不卡| 国产ww久久久久久久久久| 色综合久久无码五十路人妻| 香蕉久久影院| 久久久久久极精品久久久| 成人国内精品久久久久影院VR| 久久久久无码精品国产| 亚洲精品乱码久久久久久中文字幕| 亚洲人AV永久一区二区三区久久| 久久99精品国产麻豆蜜芽| 久久se精品一区二区| 国产精品久久久久久一区二区三区| 国产成人精品综合久久久久| 久久婷婷人人澡人人爽人人爱| 香蕉久久久久久狠狠色| 日本精品一区二区久久久| 亚洲欧洲中文日韩久久AV乱码|