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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                >[success] # 編譯器那些術語 ~~~ 1.經常聽到'詞法解析'=》'語法解析' =》'ast' 等等這類專業術語,在實際編程中會有各種工具幫我 們完成這些術語名詞的工作,實際工作中大部分場景不會實際去打交道,在工程化原來越頻繁, 這些術語變得出現頻率更高,這里記錄一下這方面知識 2.js 執行過程 '語法分析階段'=>'編譯階段' =>'執行階段',這三個階段中, '語法分析階段'就包含了 '詞法解析'=》'語法解析' =》'ast',參考'http://www.hmoore.net/cyyspring/more/1843999' 3.計算機真正識別是'0 1' 這種二進制,但事實上這種二進制無論讓我們開發人員去讀去寫都是困難 的,因此有了'編譯器'的出現幫我們將代碼從高級語言翻譯成低級語言。編譯器將代碼翻譯成的低級 語言通常稱為匯編代碼、依靠編譯器來獲取我們的程序并將它們翻譯成機器代碼,這就是我們的計 算機將作為可執行程序運行的代碼。 4.相對的高級語言到高級語言的轉換工具,被叫做轉換編譯器,簡稱轉譯器 (Transpiler) ~~~ >[danger] ##### 解析 ~~~ 1. 詞法分析—— tokenizer 通過一個叫做tokenizer(詞素生成器,也叫lexer)的工具將源代碼 分解成一個個詞素。(詞素是描述編程語言語法的對象。它可以描述數字,標識符,標點符號, 運算符等等。) 2.語法分析—— parser 接收詞素并將它們組合成一個描述了源代碼各部分之間關系的中間表達 形式:抽象語法樹。(抽象語法樹是一個深度嵌套的對象,這個對象以一種既能夠簡單地操作又 提供很多關于源代碼信息的形式,來展現代碼。) ~~~ >[danger] ##### 轉換 ~~~ 1.編譯器的下一個階段是轉換階段。再回顧一遍,這個過程接收解析生成的抽象語法樹并對它做出 改動。轉換階段可以改變抽象語法樹使代碼保持在同一個語言(例如Babel,Babel接收的是JS代 碼生成的也是JS代碼),或者編譯成另外一門語言。 2.babel 中 traverser函數,這個函數接收抽象語法樹以及一個訪問者對象 接收創造的抽象語法樹并將它和一個訪問者對象傳給`traverser`函數。然后創造一個新的抽象 語法樹 ~~~
                  <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>

                              哎呀哎呀视频在线观看