64コンパイラの開発スタート

abdev 3 Comments »

寝る時間を惜しんでまで、64ビットネイティブEXEのPEヘッダと格闘しています。第一ラウンドはなんとか勝ち越せそうなのですが、どうもWin64の関数呼び出しに戸惑いそうな雰囲気…。

Win64の規約って、変に速さを意識しているのか、デフォルトでレジスタを使ってるんすよね。_fastcallみたいな感じf(–)。

そんなことより、アセンブルコードをきちんとトレースできるデバッガを仕入れようと思います。Windows XP x64 Editionの上では、VC6.0のデバッガは無力です(ホント、トホホです)。←肝心の64ネイティブコードのデバッグができません。おいらは持ってないんで詳しいことはわからないんですが、VC.NET 2003に変えれば、ここらへんのデバッグサポートはきちんとしているんでしょうか?今現在はVS2005 Express Editionでなんとか踏ん張ってます。

まずは痒いところまで手が届くような、高機能デバッガでも探してみないと始まらないっすね。これいいよ、みたいなのがあったら教えてくださいm(__)m

念願のブツがとうとうウチに(≧∇≦)

abdev 念願のブツがとうとうウチに(≧∇≦) はコメントを受け付けていません

連休の中日ということで、今朝も相変わらずおそ起き。

で、起きた直後なんですが、唐突に一本の電話がなります。「ぁんだよ〜、またどっかのわけのわからん業者かぁ〜?」と思いながら、さえない声で電話に出ると、おかーちゃんでした。

どうも、宅配業者がウチに荷物を届けたいらしく、当の本人(おいら)がいるか、自宅電話に確認を取ったとのこと。←おいらのケータイじゃないのはナゼ??

まぁ、とにかく、おいらは起床直後で、一日中することもないんで、在宅確認は取れたんですね。すぐに届けますとのことだったんで、顔でも洗って着替えておくかと思った次の瞬間、「ピンポーン」と玄関からチャイム音が…。はやっっっ。いくらなんでも早すぎるでしょうよ。だって、おいらがおかーちゃんの電話を切った2〜3分後の話ですぜぃ。

たぶん、宅配のにーちゃんはおいらのウチの玄関前に既におったということでしょう。

こんな前置きはいいんです。今日のメインはこの送られてきた品!待ちに待った念願の64ビットPC!!!キタァ〜って感じですよ。もう今日は朝からハイテンションで、予定は無しにします。今日だけは外へ出ません宣言をさせてください。インテリでいいです。オタクでいいんですー(ここまで言ったら、なんか気が抜けました)。

まずは、この気持ちをブログに書き残して、それから腹ごしらえをして、新PCスペースの掃除を徹底的にして、それから開封します。

構想と共に、膨らむ悩み

abdev 構想と共に、膨らむ悩み はコメントを受け付けていません

東京から終電で帰ってきた昨夜。酒を飲みつつのミーティングの内容は核心をつくものばかりでした。東大の内部事情の話題から始まり、ネットゲーム開発に関すること、おいらにとって重要な10年後の言語市場について、などなど。

自己保身が確立されていない今、おいらはなんとかして将来のソフトウェア業界で食いつなぐ手法を模索しなくてはなりません。単純に就職先の会社でえらい人になることがそうなのか、はたまた、この路線のまま、ABを成熟させてそこでなんらかのアクションを待つのか…。

まだ自分の考えがまとまってないのが現状ですが、双方ともおいら的には納得いかないことは確かです。まだ若い証なんでしょうか…「会社人間なんかにゃなりたかぁねーよ」みたいな幼稚な考えを持つこともそうですが、やはり、おいらの本音は(技術的レベルは百歩譲って無しにしてやって下さい)将来のソフトウェア社会に大きく貢献していきたいことです。これは、システムソリューションの構築に積極性を持って取り組むんでもなく、ネイティブコンパイラの世界を突っ込みまくるのでもなく、もっと単純な、純粋な話です。

で、結論から言うと、「進化しつづけるコンピュータと人間との関連性」これにつきます。この間を取り持つのは、「言語」なんですよね〜。よく考えてみてください。言語というものは、他の生物が持ち合わせない、人間のみぞ知る、特別なモノなんですよ。人間ってのは何万年前だかわかんないっすけど、その頃から言語を持ち、その形を変えながら成熟させて、今の楽しい世界があるんですよね。その多大性には震えたつものがあります。

コンピュータが生まれてからはまだまだ半世紀ほどしか経っていません。付け加えると、オブジェクト指向が騒がれてから早30年。しかし、オブジェクト指向の技術が本当の意味で広まってきたのは、ここ10年という、そういうレベルでの話です。ハードウェアの進化は正直いってすごいです。気付くと早さや容量が10倍とかになってますし、まぁ、凡人からするとありえないスピードだといえます。しかし、そのハードウェアを操るための「言語」そのものの進化は遅いんですよね。なぜなんでしょうか。

人間が本来持ち合わせるコミュニケーション言語の成長過程と、コンピュータ言語の成長過程を比べることは非常に興味深い考察なのかもしれません。やはり、経験の無いおいらは簡単にこういうところにハマってしまうんです。

昨夜は自宅へ帰ってから(PM11:30頃)、明け方4時くらいまでこのことで頭がイッパイになってしまってって感じで、もう大変なんですよ。やはり、将来は「人間」のみが持ち合わせる「言語」という特別な機構に携わっていきたいというのが本音です。「言語」はある意味政治のようなもので、それを利用する大多数の人たちのことを考えなければならず、今後はますますエリートがやる分野になっていきそうです。

そういうことでして、おいらが持つ「言語」への意識がここ最近で大きく変化したことを踏まえ、今後の長いスパンでの方向性を確実に捉えていきたいところです。確実にわかっているのは、おいらが勉強不足だってこと。それこそ、言語に関する知識の低レベルさにもほどがあるぞと、自分に言い聞かせたいほどです。まずはこういうことがわかったので、勉強あるのみです。自分で「勉強します」というのは、気持ち悪いのですが、もうそんなこと言っている場合じゃないです。

このように大袈裟にさわいでみたんですが、まずはコーヒーでも飲んで、落ち着きますわ。午後は地元のヤツと遊びいく約束してるし・・・♪←ヒマな学生という精神は捨ててない/(–)/

東京でミーティング

abdev 1 Comment »

今朝もちょっと遅めの起床。起きてからは開発作業のほうを進めています。今日の作業内容はパラメータヒントを複数行に対応させること。

プロジェクトエディタのコード解析部分(コンパイラとは別)をいじるので、まぁ、それなりには大変なんですが、なんとかできあがってきました。次回のバージョンアップには適応できそうです。

夕方からは未踏仲間で約束していた東京でのミーティング。意見交換や作業的に突っ込んだ内容なんかを話しながら、飲んできます。

ホリエモン、がんばれ!

abdev ホリエモン、がんばれ! はコメントを受け付けていません

今朝はめんどくさがりやのおいらも選挙に行ってまいりました。

やはり、着目するところは郵政民営化。法案が強引であった点を除けば、郵政校舎を民営化するのは多数のメリットを生むものだということは、ご承知のとおりだと思います。おいらもそんな意見をもつ国民の1人。クローズになりがちな国営事業は、必要性がないのであれば民営化していくべきだと思います。

まぁ、今時のガキの1人でもあるので、政治について詳しい知識は持ち合わせておりませんが、今回の選挙騒動をキッカケに、関心を深めていきたいところであります。

法律知識が豊富なカトーさんと現代社会の政治のあり方について、明け方までしゃべったばかりだったので、今日の選挙戦はいい意味で楽しませてもらっています。社会情勢が変われば、政治も変わるってことですな。

高齢化社会、少子化問題、学力低下、借金大国まっしぐらと、日本の未来は総合的に細々としていく要素が満載です。どれも、すぐに回復する兆しがないってことは、バカなおいらだってわかります。団塊世代やその下にいる社会人の方々は今まで生きてきた経験をもとにチャレンジ精神を持たれるというよりは、逆に保守的な立場で見られる方が多いことだと思います(もちろん、チャレンジ精神旺盛の方々が沢山いることとは思います…)。しかし、おいら達ガキんちょは、未来の社会にはチャレンジしていくしか選択肢がないんですよ。保守的立場はそう何十年も維持できませんっ/(–)/

このまま安定した職につき、家庭を持ち、なるがままに過ごしたのであれば、不安定要素が重なり合って増税の中で切り詰めて生活を強いられたり、皆が心配している年金がほとんどもらえない状況になってしまったり…。

ようするに、ちょっとやそっと社会が不安定になったときでも自己保身ができるような環境を自分自身で模索していかねばならないんですね。これは言い換えると、自分と最低限の身の回りさえ確保されるのであれば、その他はお構いなしの状態、自己中心的な考えなのかもしれません。こういう考察にまとまってしまうという意味あいも含め、今の若い連中が政治に興味を持ち辛いのか、といった捉え方もできます。

まぁ、何はともあれ、一人一人の個性が反映される社会に、なっていってほしいですな。吹けばとんでしまうような一国民の声明ですが、小泉改革、応援しております!

昼寝と選挙電話

abdev 昼寝と選挙電話 はコメントを受け付けていません

今日は完璧な休日モード。世間の方と同じくして、土曜、日曜に休みをいただけるなんて、めちゃくちゃ嬉しいっす。

朝といえば、まずは遅起きでしょう(^^;;;。起床後はボーッとテレビを見たり、ネットニュースをみたり…なんもしてなかったっす。おっと、そういえば、AB4.10のアップデート作業だけをしたのですが、こちらは内容のほうが前日に出来上がっていたので、ほとんど朝の重荷になる作業はなかったんですね〜

で、昼食の支度をするような機敏さは今日のおいらには当然のことながらありません。さっさと外へ出て、美味しいものを食ってきます。一人で外食、たまの休日くらいは許してくだされ…

そんでもって、家に帰ってからは昼寝です。昼寝は小音量でボブマリィのCDを流しながらのもの。休日ってなんてすばらしいんだヘ(≧∇≦)ノ

・・・・・

で、1時間ほどで目覚めたわけですが、この目覚め方がけしからんっ。どこかの選挙事務所からの「お願いします」電話。ふざけるなっつーのよ、休日モードを満喫する一般市民の貴重な時間を選挙電話なんかで邪魔されてたまるかぃ。おいらのウチにはかなりの回数で勧誘とかの電話があるので、イチイチ対応してられません。

勧誘電話、当初のおいらは「はいはい、すみませんね〜、ウチは興味ないですから〜」といった具合だったんですが、最近はそのような電話だと察知した瞬間に受話器を置くことにしています。まぁ、こちらの有意義な時間を割かれる瞬間なので、バチなんかあたりゃしませんよ。

夜は地元のヤツでも誘って銭湯にでも行ってしまえば、今日は完璧な休日だと意味付けることができそうです。あともう一アクション、がんばるぞ〜って、がんばっちゃダメっすよねf(^^;;;

バイト2連勤を終え

apparel 36 Comments »

明日から、奇跡の8連休が始まります。好きなことして、行きたいとこいきまくるぞぉ〜。

しかし店ではボトムス販売強化の開始準備を整えている段階なので、実はプチ仕事もしなくちゃならんのです。おいらはメンズのボトムス販売リーダーになってしまっているので、最近売れている商材、または秋物とコラボる形で売れそうな商品を他のスタッフに伝えないとならないってことですな。

これはイケメン店長の指示でもあり、休日中のおいらの仕事でもあります。閉店後の販売強化ミーティング、休日中のおいらも出席、しかも司会進行をやらなくちゃいけないんす(涙

まぁ、そういうわけでして、ダラダラと過ごしたいこの8連休、休日らしい日が何日間、堪能できるんでしょうか??

仮想関数の強化

abdev 3 Comments »

今日は朝から知人に指摘された仮想関数に関する機能を実装しているところです。内容は、クラス継承時に仮想関数をオーバーライドしたときのvtableの上書き動作です。

その前に、ABでは仮想関数を保持するクラスをNewしたときのコンパイラ動作が未完成のままになっています。まぁ、仮想関数なんてのは、COMインターフェイスくらいにしか使われないだろうと軽視していたのが悪いのですが、どうやらその他にも色々と便利な機能があるようで…。

とにかく、仮想関数周りのコンパイラ機能をしっかりとさせます。ABの仮想関数は、

Virtual Function 関数名(パラメータ) As 型

という1行のコードからなります。こいつは、仮想関数のプロトタイプ宣言になるので、Function 〜 End Function間の実装を記述することはできません。

プロトタイプ宣言にプラスする形で、実装を記述できる言語仕様へと拡張が必要です。また、Javaのように、メンバ関数がデフォルトで仮想関数になったほうが良い場合もありそうなので、クラス定義の際のオプション指定子を考えてみようかと思います。

AB未来予想図は欲張り

abdev AB未来予想図は欲張り はコメントを受け付けていません

相変わらず、おいらの頭の中は、様々な画期的技術と路線の定まらないAB予想図でごちゃごちゃになってます。

ここ2日間、普段は調べないようなことを色々あさったわけですが、、、

ABの今後にどのような方向性を持たせるのかといった、最もベースとなる部分が揺らいでしまって、困っています。

おいらはユーザーに親しまれる言語システムというものが、チョイスで構成されるものと考えています。中でも、ABはシステム記述言語という位置付けに相当することと思います。システム記述言語とは、汎用性よりも、環境密着型でハイパフォーマンスを引き出すモノのことを指します。

例えば、VisualStudio.NETを例にあげてみると、その中には、C++、VB、C#、J#など、様々な言語が存在し、プログラマーは好き勝手に(環境を考慮しながら)それぞれの言語を選択することと思います。もちろん、システム記述用途で、ネイティブベースで動作する実行コードを生成するにはC++しかないのだと思いますが、昨今のソフトウェア業界が必要とするほとんどのケースはそうではありません。

昨今のソフトウェア業界が必要とするものは、即ち、ソリューションを実現するためのツールです。ネイティブに動くかどうかは議論の的ではなく、問題となるのは、生産性、信頼性、汎用性などです。

そうはいっても、システム記述用途の言語が無くならないことは確かな模様(こいつだけが救いか…)。これは、低レベルでのシステムの問題改善、考察はそれ以外の言語からはアクセスできないからです。例えば、JAVAはJAVA VM上で、C#やJ#などはCLR上で動作しますが、VMそのものに手を突っ込むことはできません。ようは、CPU直読のネイティブコードとは疎遠だってことです。

ここでわからない方のためにメモメモ

  • JAVA VM … JAVA仮想マシン。様々なプラットフォームで用意されており、JAVA VM用のコードを実行できる。
  • CLR … .NET Frameworkが提供する仮想マシン。仕組みはJAVA VMと似通っているようだが、決して同一ではない。C#、J#、VBコンパイラが生成するコードは、このCLRで解読できるネイティブコードである。

なにやら知り尽くしたかのように書いておりますが、ここらへんについてのことはおいらも勉強中なのですf(^^;;;。間違っていたら、ご指摘願います。

で、話を元に戻して、ABはこの荒波の中、どうやって駆けずり上がればいいのかといったことを考えていきましょう。まず押さえておきたいところは、ABはC++同様、システム記述に特化した特長を持ち合わせているという点です。これは、CPUが直読できるネイティブコードを生成できること、ポインタ操作を前提としてることなどが深く関係しています。オブジェクト指向であり、言語仕様そのものを自ら拡張できちゃうような、テンプレート機能(こいつはC++のみ。ABには無いっす)など、システムの低レベル部分を操作できるような仕様さながら、最新の言語システムに近づこうとがんばってはおるようですが…

しかし、ABもC++も、最終的には、完全なCPU直読のネイティブコードを生成するのです。仮想マシンでの動作は考慮されておらんのです。これはC#、J#、VBなどの言語システムと比較する際の決定的な違いです。

  • ハードウェアに依存するコーディングが必要 … C++、ABの出番。
  • ソリューションを実現するため … C#、J#など。SunのJAVAも大活躍。

そうすると、ABもただ単に言語システムの改善を行っていくのではダメなんですね。ソリューション事業でABを選択してもらうためには、ABユーザーが移行し易い形の、JAVA VMまたはCLR用のコンパイラを提供するのが一番大胆な方法だと考えてしまいます。もう、こうなってくると夢の話になってしまいますが、ActiveB#なんてのを新しく作るしかなさそうです…

とにかく、今後数ヶ月で64ビットネイティブコンパイラの開発をすると発表しておりますので、まずはそちらを優先的に進めます。

そっちが一段落したところで、.NETへの対応やJAVAへの対応策を考えていきたいと思います。

言語の成長過程にショック

abdev 言語の成長過程にショック はコメントを受け付けていません

ブースト会議で指摘された様々な要素を調べているわけですが、調べれば調べるほどカルチャーショックを受けます。それは、おいらがとってきた言語システム(AB)の成長工程が、昨今の言語システムのそれとは少し異なっているところから始まります。

おいらはVC++にショックを受けてABを開発しておるんですが、世の中の人間すべてがVC++が有能ではないことを知っています。そういう方達は、JAVAを活用したり、C#にチャレンジしてみたり、はたまたD言語という怪しげな方向へと進路転換をしているのですが…

おいらが今まで目指していた言語システムは、「構造がキレイである」という点を優先的にし、「プログラマーの労力」は二の次にしています。これは、キレイな構造をプログラマーが学べばいいとこじつけだとも解釈できます。

しかし、「キレイな記述」とはなんとも曖昧な表現です。ガベージコレクションの問題を言えば、前後できちんとNew、Deleteされているコードがキレイだと思う方もいるでしょうし、逆に、Newはするけど、Deleteはシステムが面倒見てよ、という描き方がスマートだと思う方もいるでしょう。おいらは今まで、前者の意見だったのですが、どうも様々な文献を読みあさり、多数のプログラマーの意見を聞くと、今後の言語市場をリードしていくのは後者のような印象を受けます。

おいら的には、アセンブラや機械語をいじるだけのコンパイラ製作者も魅力的ですが、未来の言語システムの在り方を考察できるコンパイラ製作者はもっと魅力的なのかもしれません。

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