第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

促進(jìn)精神:“語(yǔ)義行為是邪惡的”?

促進(jìn)精神:“語(yǔ)義行為是邪惡的”?

C++ C
紅糖糍粑 2019-06-03 17:27:08
促進(jìn)精神:“語(yǔ)義行為是邪惡的”?閱讀和觀(guān)看本演講:http:/Boost-spir.com/home/2011/06/12/ast-BuildingwiththeUniversal-tree/我發(fā)現(xiàn)了這個(gè)說(shuō)法-基本上我們被建議不要使用語(yǔ)義動(dòng)作。我必須承認(rèn),我已經(jīng)有過(guò)這樣的感覺(jué):帶有語(yǔ)義動(dòng)作的語(yǔ)法實(shí)際上看起來(lái)有點(diǎn)丑。而且,當(dāng)我需要對(duì)它們進(jìn)行擴(kuò)展/更改時(shí),需要大量的“微觀(guān)管理”才能實(shí)現(xiàn)語(yǔ)義操作。在演示文稿中演示的帶有屬性語(yǔ)法的方法似乎更優(yōu)雅、更有希望。所以我想問(wèn):這是“官方”觀(guān)點(diǎn)嗎?我是否應(yīng)該學(xué)習(xí)如何使用屬性語(yǔ)法并更詳細(xì)地避免語(yǔ)義操作?如果是這樣的話(huà)-我想要一些基本的(甚至是微不足道的)例子,演示這種方法-LISP解釋器太復(fù)雜了,我無(wú)法咀嚼.
查看完整描述

1 回答

?
夢(mèng)里花落0921

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊

我相信Hartmut馬上就會(huì)回答的。在那之前,這是我的看法:

這不是官方的觀(guān)點(diǎn)。

語(yǔ)義動(dòng)作有一些缺點(diǎn)

  • 最簡(jiǎn)單的劣勢(shì)的語(yǔ)體概念分離關(guān)注點(diǎn)..你想表達(dá)句法在一個(gè)地方語(yǔ)義學(xué)在另一個(gè)。這有助于維護(hù)性(特別是用于編譯精神語(yǔ)法的冗長(zhǎng)編譯時(shí)間)

  • 如果它們有副作用的話(huà),會(huì)產(chǎn)生更復(fù)雜的影響(這通常是這樣的)。想象一下,當(dāng)語(yǔ)義操作有一個(gè)副作用解析器狀態(tài)將被恢復(fù),但外部效果不會(huì)恢復(fù)。

    在某種程度上,使用屬性就像在函數(shù)程序中使用確定性的純函數(shù)一樣,更容易對(duì)程序的正確性進(jìn)行推理(或者,在本例中是語(yǔ)法(狀態(tài)機(jī))編成純函數(shù)。

  • 語(yǔ)義操作有一種傾向(但不一定是這樣),即按值引入更多的復(fù)制;這再加上大量的回溯,可以降低性能..當(dāng)然,如果語(yǔ)義動(dòng)作“很重”,這本身就會(huì)妨礙解析的性能。


語(yǔ)義動(dòng)作對(duì)于不同的目的都是有好處的。事實(shí)上,如果您需要解析具有上下文敏感性的非平凡語(yǔ)法,則無(wú)法對(duì)它們進(jìn)行轉(zhuǎn)義。

  1. 考慮使用qi::locals<>繼承屬性(代碼來(lái)自Mini XML - ASTs!樣本)-它們涉及語(yǔ)義行為:

    xml =
            start_tag                   [at_c<0>(_val) = _1]
        >>  *node                      
        >>  end_tag(at_c<0>(_val)) // passing the name from the 
                                   // ... start_tag as inherited attribute;

    使用氣的一種:當(dāng)?shù)厝?/trans>:

    rule<char const*, locals<char> > rl;rl = alpha[_a = _1] >> char_(_a); // get two identical characterstest_parser("aa", rl);
     // passtest_parser("ax", rl); // fail

    國(guó)際海事組織,這些語(yǔ)義動(dòng)作通常不構(gòu)成問(wèn)題,因?yàn)楫?dāng)它們被回溯時(shí),下一次執(zhí)行傳遞(相同的)語(yǔ)義動(dòng)作時(shí),本土化只會(huì)被新的,正確的,價(jià)值所覆蓋。

  2. 此外,有些工作是“快速和骯臟的”,不值得使用烏特里或者手卷AST類(lèi)型:

     qi::phrase_parse(first, last, // imagine qi::istream_iterator... 
         intesting_string_pattern  // we want to match certain patterns on the fly
                [ log_interesting_strings ], // and pass them to our logger
         noise_skipper             // but we skip all noise
     );

    在這里,語(yǔ)義動(dòng)作是巖心解析器的函數(shù)。它可以工作,因?yàn)樵诰哂姓Z(yǔ)義操作的節(jié)點(diǎn)級(jí)別上不涉及回溯。

  3. 語(yǔ)義行為是精神因果報(bào)應(yīng)中語(yǔ)義行為的鏡像,在那里,語(yǔ)義行為所帶來(lái)的問(wèn)題通常比氣中的問(wèn)題少,因此,即使只是為了界面/API的一致性,語(yǔ)義行為也是一件“好事”,提高了Boost精靈作為一個(gè)整體的可用性。


查看完整回答
反對(duì) 回復(fù) 2019-06-03
  • 1 回答
  • 0 關(guān)注
  • 512 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)