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

                # 編譯型與解釋型編程語言的區別 前面我們知道了高級編程語言計算機是不能直接識別的,需要通過翻譯成機器碼然后交由計算機執行。 根據不同的翻譯機制,又分為編譯型和解釋型。 注意,翻譯源代碼是一個非常復雜的過程,大致包括詞法分析,語法分析,語義分析,性能優化,目標代碼生成等五個步驟。在初學階段沒有必要研究這個,如果感興趣可以閱讀《編譯原理》一書。 接下來我會使用通用的語言和類比的方式講解編譯和解釋。 ## 編譯型 如果把高級編程語言編寫的代碼比作一篇英文文章,計算機比作一個不懂英文的人。那么,為了讓這個人閱讀這篇文章,可以找一名懂英文的翻譯將這篇文章整體翻譯成中文版。然后他就可以隨時隨地的閱讀這篇翻譯后的文章。 編譯的過程其實跟上面翻譯的過程很像。 編譯型編程語言就是通過編譯器(英文翻譯)將源代碼(編譯型編程語言編寫的程序,類比英文文章)編譯(翻譯)成可執行文件(翻譯后的文章)。 ![1658829684074](https://wcflove.gitee.io/images/1658829684074.png) 可執行文件可以在任何支持的平臺上,脫離編譯環境運行。因為可執行程序就是機器碼,所以它的執行效率高。但是編譯型編程語言一般是不能跨平臺的,也就是說不能在不同的操作系統間任意切換, 并且修改程序也非常不方便,只要源代碼修改了,都需要重新編譯生成新的可執行文件。C語言,C++就是典型的編譯型編程語言。 ## 解釋型 接上面的類比,翻譯這篇英文文章,還可以通過隨身電子詞典,逐字逐句的邊看邊翻譯。 解釋型編程語言就是通過解釋器(電子詞典)將源代碼(解釋型編程語言編寫的程序)逐行解釋成機器碼,然后交由計算機執行。 ![1658904942703](https://wcflove.gitee.io/images/1658904942703.png) 解釋型編程語言編寫的程序離不開解釋器,因為是邊翻譯邊執行所以相對效率不高,但是修改起來非常方便,只要源代碼修改了,下一次執行就是修改后的代碼。解釋型編程語言大都可以跨平臺運行,這歸功于解釋器。Python,php就是典型的解釋型編程語言。 ## 關于Python Python屬于典型的解釋型編程語言,支持所有常見的平臺,例如Linux,Windows,Mac OS, Android, FreeBSD等等,只要在不同的平臺上安裝了對應的解釋器,代碼就可以正確運行,一般不需要擔心任何兼容性問題,真正做到了"一次編寫,到處運行"。 另外,關于執行效率,你可能會看到很多人說python的執行效率差。那只是相對而言,隨著硬件性能的提升,和很多優化手段,python在某些時候執行效率甚至會超過c語言,所以忘記這個效率問題,全心全意的學習python吧。 ## 總結 總結編譯型編程語言與解釋型語言的區別如下表: | 類型 | 原理 | 優點 | 缺點 | | ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ---------------------------- | | 編譯型語言 | 通過專門的編譯器,將所有源代碼一次性轉換成特定平臺(Windows、Linux 等)執行的機器碼(以可執行文件的形式存在)。 | 一次編譯,多次運行,脫離編譯環境,并且運行效率高。 | 可移植性差,不夠靈活。 | | 解釋型語言 | 由專門的解釋器,根據需要將部分源代碼臨時轉換成特定平臺的機器碼。 | 跨平臺性好,通過不同的解釋器,將相同的源代碼解釋成不同平臺下的機器碼。 | 一邊執行一邊轉換,效率不搞。 | ~~~
                  <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>

                              哎呀哎呀视频在线观看