String型、開発中・・・

abdev 2 Comments »

たかがString型、されどString型ということでコンパイラの再設計をしているところですが、AB5でどこまで言語仕様を落とし込むかが問題です。

確かに、演算子のオーバーロードを用いれば、String型をクラスモジュールとして実装することは可能です。今現在、私の手元にあるテストコードでは、ABコンパイラと演算子オーバーロードを活用したStringクラスが正常に稼動しています。もちろん、Print命令やInput命令も従来通り利用できますし、メモリ管理の仕様がオープンになることでString型特有のバグも減少の方向に進むかと思います。

しかし、AB5ではただ単に演算子のオーバーロードでString型の一件を済ませてしまうのは、ちょっともったいない感じもします。というのも、C#、VBなどを見習うと、C/C++やABにはない下記のような機能を持ち合わせ、オーバーロードなどという “ウラ技” 的な発想ではなく、クラスモジュールが提供する正統派な機能として、これらの問題を解消しています。

  • インデクサ … オブジェクトに対して添え字アクセスが可能
  • プロパティ … メンバと同様のアクセス方法で、任意の処理を実行可能

オーバーロードを悪く言うつもりはありませんが、手続き型の言語仕様の側面から見て例外的な手法を提供するのであれば、こういうやり方が正しいのかもしれません。

さてさて、String型がある程度動くようになったところで、開発者向けにβ版のリリースをしていこうと思います。今回のβ版は、従来のString型を一掃するというバグバグしい内容となっているので、一般公開は避けさせていただきます。

スパム対策(その2)

abdev 1 Comment »

コミュニティにて、ゲストユーザーの皆様に確認コードをお願いする形にしたにもかかわらず、スパム投稿がいっこうに止みません。

日常的には、コミュニティを時々除いて良からぬ記事を削除してまわるのですが、土日に家をあけて、帰ってきた瞬間にコミュニティを開くと、とんでもないことになっていたりします。

それらのスパム投稿はすべて英語メッセージ。そこで今回は、ひらがなを含まないメッセージを弾くようなフィルタを、ゲストユーザーに限る形で導入させていただきました。この手法は私としても不本意ではありますが、日本語を使ったコミュニティまで崩壊しかねませんので、やむなくの対策でございます。

迷惑メールフィルタみたいなある程度のクオリティを保ったプラグイン、phpBBにもないものでしょうか??

FUNKY MONKEY BABYS

abdev 1 Comment »

ひょんなことから、清水エスパルス vs FC東京の試合会場(日本平スタジアム)に出向きました。

試合のハーフタイム中にFUNKY MONKEY BABYSの生ライブをやっていたので聞き入ってみると、意外とイイ感じの曲じゃないですか。「ALWAYS」が入ってるCD、買ってみようかな〜☆

FUNKY MONKEY BABYS – ALWAYS

新しいString型、CP2で間に合うか!?

abdev 新しいString型、CP2で間に合うか!? はコメントを受け付けていません

今、私のPCの中にあるABを構成しているソースコードでは、従来のString型の前面撤廃がなされています。その代わりに、AB5CP1のライブラリに含まれている開発途中のCStringがそれに取って代わる存在になりつつあります。

しかし、現状のCStringを従来のString型へ移行するのは、至難の業。発想としては、+演算子などを有効にして文字列演算を行えるようにするということで良いのですが、パラメータの引渡し、ローカル領域内での確保と解放のタイミング、演算過程で生じる一時オブジェクト保存領域の制御など、実はいままでコンパイラが行ってきた部分をコンパイラ自信が汎用化し、それらの具体的な処理の流れをStringクラスモジュールライブラリとして定義していかなければなりません。

それにしても、演算子のオーバーロードの連続となるソースコードに対するコンパイラのデバッグは辛いものがあります。何階層にもなって呼ばれるオーバーロード解決用のモジュール、その中を一つ一つチェックするのですが、出てくる単語は “+” とか “=” ばかり…

現状ですと、実用的なStringクラスモジュールを稼動させられるのかどうか、ちょっと自信がありませんが、なんとかこの壁は乗り越えたいところです。

まぁ、String型そのものは特段珍しい存在ではありませんが、このような些細な仕様がその言語で実現できるコーディングレベルを左右するものだと感じます。

コンパイラレベルで実装していた従来のString型は、絶対的な存在だったのかもしれませんが、それらをクラスモジュールとして持たせることで無限の拡張性が生まれるのです(なんと素晴らしいことだ!!)。

結婚できない男 × 金田サイト

abdev 結婚できない男 × 金田サイト はコメントを受け付けていません

「火曜22:00〜 結婚できない男」で出てくる金田のホームページって、ネット上に存在してるんですね。ちょっとした発見でした☆

金田のホームページ(更新されてるかもっ!?)

http://www.ktv.co.jp/shinsuke/kaneda/index.html

スケジュールが合わないときには録画をしてまで見たいドラマ、ホント久しぶりです。

ブレークポイント

abdev 2 Comments »

AB5CP1で未完成の機能の一つに「ブレークポイントの設定/解除」があったと思うのですが、本日、その機能のおおよその部分が完成致しました。

これでDebugステートメントの嵐から抜け出すことができます。「いざデバッグコンパイルしたものをエクスプローラから直接実行してみたら、Debugステートメントのおかげで強制終了してしまう(←これは仕様上、致し方ないのです…)」、こんな悩みも解消されることでしょう。

今、設置されたブレークポイントをプロジェクト保存時に一緒に保存させようかどうか悩んでいるところです。オプション項目にすれば間違いないでしょうが・・・

毎年恒例カナディアンファーム

abdev 34 Comments »

私らの家族には恒例行事になりつつあります、カナディアンファームへランチを食べに行こうという企画が実行に移されました。

このブログにも何度か出現したカナディアンファームですが、ちょっとだけ紹介します。

八ヶ岳付近、諏訪南I.C.から15分の場所にある、本場のカナダ料理を自然の中で食べられるお店です。なにがすごいかって、それは自然に溶け込んだすばらしい雰囲気を持っているところですかね。店舗そのものがご主人(ハセヤン)の手作り。廃材王国ということで、捨てられる材料と大自然のパーツをうまく組み合わせて立派な店舗が組み立てられています。うーん、五郎おじさんみたいだ。

カナディアンファームHP:

http://canadianfarm.hp.infoseek.co.jp/

今回はただ単にランチをいただくだけではなく、ウチのガキンチョ(従兄弟の子供、三歳児)の夏の思い出を作るべく、カブトムシ探しまでやってきました。ちなみに、カナディアンファームの店舗そのものが森の中にあります。舗装路に隣接されているワケではないのです。

さてさて野生のカブトを探すのは一苦労。なかなか見つからずに格闘していましたが、なとんか最後に立派な体格をしたメスカブトの捕獲に成功!結局、帰り際にリリースしてきたのですが、三歳児にとっちゃぁ贅沢な思い出となったんだと思います。

さぁさぁ、このブログを見られているお父さん方、夏も残りもあと僅かです。私が一押しするカナディアンファーム、一度足を運んでみてはいかがでしょうか?{その際は、是非ともコメントを!)

dai_optimistic:20060820130137j:image

左から二番目がカナディアンファームのご主人であるハセヤン。忙しい中、ムリヤリ写真を取らせてもらったのですが、優しいオジサンでした。

安定な結婚の問題

abdev 安定な結婚の問題 はコメントを受け付けていません

とうとう追加されましたね、このコードネタ。私がアルゴリズム事典を初めてめくったときに「面白い名前のアルゴリズムだな〜」と感じていたのですが、まぁこう思った方は私だけじゃないはず。

合コンのネタとかに使った方なんかは、やっぱいらっしゃるんでしょうかね??ノーパソ片手にアンケートを集計すれば、安定した組み合わせが得られてしまうという非常に素晴らしいシステム。その場にいる男女のレベルがある程度等しければ、現実的なアルゴリズムなのかもしれません(って、まずはこのハードルをクリアるのが大変か…)。

安定な結婚相手探しの仕組みを知りたい方はこちらへ(出会い系サイトのまわしモンじゃありませんよ!!)

http://www.activebasic.com/aba/wiki.cgi?%b0%c2%c4%ea%a4%ca%b7%eb%ba%a7%a4%ce%cc%e4%c2%ea

コンパイル時間

abdev 2 Comments »

今更ですが、VC++6.0からVC++2005への移行作業をabdev.exeソリューションに対して行いました。ABプロジェクトのほとんどがVC++2005またはAB5で開発されているのですが、肝心のエディタの開発環境はVC++6.0のままだったというわけです(まぁ、それだけVC6の完成度が高かったというワケか)。

abdev.exe(AB5)をVC++2005でコンパイルしたときの話です。

せっかく移行をしたので、リビルド(すべてのソースコードのコンパイル)に必要な時間を計測してみました。結果は下記の通り。

  • かかった時間 … 1分25秒
  • CPU … Pentium 4(3.20GHz)
  • メモリ … 1GB
  • OS … Windows XP Pro x64

ビルド直後に行われる、ブラウザ情報の生成に時間がかかったりしていました。それだけソースコードの量が多いということだと思うのですが、1分25秒はじっとしていられる時間ではありません(短気か!?)。

比較的高いスペックのマシンを使っているつもりではあるのですが、最近、動作の機敏さに少々不満がでてきました。処理速度の向上に関する欲望はいつになっても減りませんね。

最近の気になる曲

abdev 最近の気になる曲 はコメントを受け付けていません

8/23リリース予定のMi「それぞれの夢」が気になります。レオパレス21のCMを聞いて、過敏に反応していたりします。。。

http://www.leopalace21.co.jp/cm.html

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS ログイン