<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之旅 廣告
                # 練習 37:小型 BASIC > 原文:[Exercise 37: Little BASIC](https://learncodethehardway.org/more-python-book/ex37.html) > 譯者:[飛龍](https://github.com/wizardforcel) > 協議:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/) > 自豪地采用[谷歌翻譯](https://translate.google.cn/) 你現在要及時回到我的童年,并實現一個 BASIC 解釋器。不,我這里的 BASIC 不是指“一個非常簡單的基本的解釋器”。我的意思是 BASIC 編程語言。它是最早的編程語言之一,最初由 John Kemeny 和 Thomas Kurtz 在 Dartmouth 創建。這個基本版本叫做 Dartmouth BASIC,[在 Dartmouth BASIC 維基百科頁面](https://en.wikipedia.org/wiki/Dartmouth_BASIC)上,代碼看起來像這樣: ```basic 5 LET S = 0 10 MAT INPUT V 20 LET N = NUM 30 IF N = 0 THEN 99 40 FOR I = 1 TO N 45 LET S = S + V(I) 50 NEXT I 60 PRINT S/N 70 GO TO 5 99 END ``` 左邊的數字實際上是手動輸入的行號。你告訴 BASIC 每行一個數字,然后你可以只是告訴它“跳到”那一行來循環。后來在其他版本的 BASIC 中成為了`GOTO`,成為計算時代的象征。 BASIC 的最新版本,在 [BASIC 維基百科頁面](https://en.wikipedia.org/wiki/BASIC)上記載,該頁面記載了這個語言的漫長演化過程,朝著越來越現代的形式。過了一段時間,它吸收了 C 和 Algol 這樣的結構,然后它面向對象,今天你可以找到相當先進的 BASIC 版本。如果你想要現代的免費 BASIC,請查看 Gambas BASIC,網址為 <http://gambas.sourceforge.net/en/main.html>。 ## 挑戰練習 你的挑戰是實現原始的 BASIC 解釋器 - 具有手動行號和所有 CAPS(大寫)文本樣式的解釋器。你需要查看 [BASIC 維基百科頁面](https://en.wikipedia.org/wiki/BASIC),來獲得可能的記號和示例代碼,并閱讀 [Dartmouth BASIC 維基百科頁面](https://learncodethehardway.org/more-python-book/https//en.wikipedia.org/wiki/Dartmouth_BASIC)來了解更多線索。你的解釋器應該能處理盡可能多的原始 BASIC 并產生有效的輸出。 當你嘗試這樣做時,我建議你嘗試簡單的數學運算,打印和跟蹤行號。之后,我會努力使`GOTO`正常工作。如果你完成它的話,你可以完成剩余部分,慢慢開發一套測試程序,來確保你的解釋器工作順利。 祝你好運!這可能花費你一段時間,但它應該很有趣。我可以看到自己花了幾個月的時間在這上面,添加愚蠢的功能,像圖形,所以我可以創建所有這些愚蠢的小程序,當我還是孩子的時候我編寫了它們。我寫了這么多 BASIC 代碼,計算行號絕對扭曲了我的大腦。這可能是我這么喜歡 Vim 的原因。 ## 研究性學習 這個練習很困難,但如果你想要一些額外的挑戰,請執行以下操作: + 使用像 SLY 這樣的解析器生成器,創建一個替代的解釋器。一旦你有了 ABNF,這可能會變得更加容易,但是對于 BASIC 這樣的語言可能更難。你必須這樣做才能弄清楚。 + 嘗試制作一個“結構化 BASIC”的版本,它擁有函數,循環,`if`語句,以及你可以在較舊的非 OOP 語言(如 C 或 Pascal)中找到的所有內容。這是一個巨大的任務,所以建議你嘗試不要手寫 RDP 解析器。使用像 SLY 這樣的工具生成你的解析器,并為更重要的東西節省你的腦力。
                  <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>

                              哎呀哎呀视频在线观看