AB開発

今日明日とバイトなのですが、合間を縫って開発作業を進めます。作業内容をチラリと書いておきます。正式リリースが間近なので、ヘルプセンターの作成を一時中断し、AB本体の改良を重点的に進めようと思います。


Basic言語はC言語などと比べると打ち込む単語数が多く、制御文を書くだけでも手間がかかってしまいます。If文を例に挙げてみると、C言語では

if(...){
...
}

で済むところを、Basic言語では

If ... Then
...
End If

という記述をしなければなりません。これでは、コーディングの効率が良いとはいい辛いのではないかと感じています。それでは、結局のところC言語が優れているのか?といえば、答えはまだわからない段階だと思います。ABに限って言えば、高級言語でありながら、低レベルの要素までをサポートするC言語同等の記述能力を有していると思いますし、今後の改良でそれは明白にしていく予定です。しかし、「打ち込む単語数が違う」という観点から見ると、仕様を変えるほかどうしようもありません。まさか、大カッコ{}を取り入れてしまっては、Basicと呼んでよいのかどうか、私も疑問に感じてしまいますし、単語区切りのコードは読みやすいものです。


そこで、正式リリースに向けてエディタの改良を進めようと思います。これらのポイントを整理し、下記のような変更を施していこうと考えています。

  1. 自動インデントの処理能力が単調すぎるので、もう少し複雑な処理を可能にする
  2. ブロック判定の精度を向上させ、{}を入力する間隔で"For〜Next"、"If〜End If"、"Class〜End Class"などのステートメントのコーディングをサポートする


1番目は、例えば"Class"と打ち込んで改行したときに、自動インデントが効かないという問題を解消してくれます。現段階の自動インデントの機能は一つ前の行のインデントをコピーするだけの処理しかしていないので、インデントを新たに増やすステートメントであるかどうかを判定すれば、もっと使いやすくなりそうです。


2番目は、C言語で言う閉じカッコ"}"、ABで言う"Next"、"End If"、"End Class"というブロックの終了要素の補完機能を充実させる機能です。こちらは実際に実現させてみないと雰囲気がつかめないとおもうので、正式版にご期待ください。