<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                PLY是純粹由Python實現的Lex和yacc(流行的編譯器構建工具)。PLY的設計目標是盡可能的沿襲傳統lex和yacc工具的工作方式,包括支持LALR(1)分析法、提供豐富的輸入驗證、錯誤報告和診斷。因此,如果你曾經在其他編程語言下使用過yacc,你應該能夠很容易的遷移到PLY上。 2001年,我在芝加哥大學教授“編譯器簡介”課程時開發了的早期的PLY。學生們使用Python和PLY構建了一個類似Pascal的語言的完整編譯器,其中的語言特性包括:詞法分析、語法分析、類型檢查、類型推斷、嵌套作用域,并針對SPARC處理器生成目標代碼等。最終他們大約實現了30種不同的編譯器!PLY在接口設計上影響使用的問題也被學生們所提出。從2001年以來,PLY繼續從用戶的反饋中不斷改進。為了適應對未來的改進需求,PLY3.0在原來基礎上進行了重大的重構。 由于PLY是作為教學工具來開發的,你會發現它對于標記和語法規則是相當嚴謹的,這一定程度上是為了幫助新手用戶找出常見的編程錯誤。不過,高級用戶也會發現這有助于處理真實編程語言的復雜語法。還需要注意的是,PLY沒有提供太多花哨的東西(例如,自動構建抽象語法樹和遍歷樹),我也不認為它是個分析框架。相反,你會發現它是一個用Python實現的,基本的,但能夠完全勝任的lex/yacc。 本文的假設你多少熟悉分析理論、語法制導的翻譯、基于其他編程語言使用過類似lex和yacc的編譯器構建工具。如果你對這些東西不熟悉,你可能需要先去一些書籍中學習一些基礎,比如:Aho, Sethi和Ullman的《Compilers: Principles, Techniques, and Tools》(《編譯原理》),和O’Reilly’出版的John Levine的《lex and yacc》。事實上,《lex and yacc》和PLY使用的概念幾乎相同。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看