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

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

  • 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)とする。

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

      • by Anonymous Coward on 2009年05月04日 15時42分 (#1559053)
        > ・IF I=29 THEN X=X+1 ELSE IF I=30 THEN X=X-1の代わりにX=X+(I=30)-(I=29)とする。

        MSX-BASICだと、かえって遅くなるんですよ、これ。
        他のBASIC実装だと、速かったんでしょうか?
        親コメント
        • by xsd (25734) on 2009年05月04日 17時03分 (#1559088) 日記

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

          親コメント
          • by nyagy (17036) on 2009年05月04日 20時50分 (#1559206)

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

            親コメント
          • by Anonymous Coward
            n画面プログラムとかの投稿のレギュレーションに合わせるためだろ。常考。
        • Re:BASICあつまれー (スコア:2, おもしろおかしい)

          by docile-jp (16652) on 2009年05月05日 11時51分 (#1559438) 日記

          NS-HU BASIC で、メモリ節約するのにそれをやるというのがあったような。
          (コントローラ入力あたりの処理で)

          --
          ええファミリーベーシックですよ

          親コメント

アレゲは一日にしてならず -- アレゲ研究家

処理中...