パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

もうやらなくていい昔のコーディングテクニックあれこれ」記事へのコメント

  • RENUM
    あとは、行番号にルーチンの固まり毎で帯域を作ったりとか
    FORループのNEXTは、変数を書かない方が速いとか。

    # って、BASIC毎にちょっとずつ違うのかな?

    • Re: (スコア:3, 参考になる)

      昔のBASICの高速化のテクニック(?)として、

      ・プログラムの最初でDEFINT A-Z
      ・よく実行されるコードは最初の方においておく (行番号を先頭から線形探索しているから?)
      ・変数名は短くする
      ・複数行はマルチステートメント化する
      ・IF I=29 THEN X=X+1 ELSE IF I=30 THEN X=X-1の代わりにX=X+(I=30)-(I=29)とする。

      とかいうのを思い出しました。

      • Re: (スコア:3, 興味深い)

        by Anonymous Coward
        > ・IF I=29 THEN X=X+1 ELSE IF I=30 THEN X=X-1の代わりにX=X+(I=30)-(I=29)とする。

        MSX-BASICだと、かえって遅くなるんですよ、これ。
        他のBASIC実装だと、速かったんでしょうか?
        • Re: (スコア:2, 興味深い)

          NEC系は確か速くなったはず、と思ってN88-BASICで確かめてみると、IFを使う場合が10000回で29秒であったのに対して、論理式の方は10000回で33秒となりかえって遅くなってました。
          これは高速化のための方法ではなく、N60のようなIF構文が弱い(ELSEが使えない)場合に書きやすいって話だったのかもしれません。

          • by nyagy (17036) on 2009年05月04日 20時50分 (#1559206)

            条件によって処理速度がばらつかないようにという理由もあったように思います。
            例のコードみたいなのって、入力に従ってキャラクタを上下左右に動かすとかだったりするんだけど、IFの羅列で書くと、上への移動と下への移動の速度が違うなんて現象が起こってしまうとか。

            親コメント

弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家

処理中...