| Next»
Aug
02
男がカフェで働いていると、いかにも紳士といった趣きをした初老の男性がやって来た
紳士の立ち振る舞いに興味を持った男は、この紳士と話せば自分も同じようになれるのではないかと思い
どうにか彼と話すきっかけは無いかと探した、ふと、店の外を眺めると三人の女性が歩いてくるのが見えた

「Perfumeをご存知ですか? 今人気の音楽ユニットですよ」

紳士は顔を上げたが、無言のままだった


「左を歩いているのが、のっちです」

紳士は黙ったまま、コーヒーを口にした


「真ん中が、かしゆかです」

紳士は「アイドル的だね」と言い、またコーヒーを口にした


「右を歩いているのが、あーちゃんです」

「素晴らしい、あんな可愛らしい子は見た事が無い。人気も分かるというものだ」
紳士はそう言うと軽く微笑んだ


男は紳士と言葉を交わせた事を嬉しく思いながらも、疑問に思った


「のっちは好みではないのですか?」

» 続きも読む

Apr
05

ぼけーっとTV見てたら、ゆるーくトークする感じの新番組が始まった。
メイン司会がPerfumeだった。


テクノポップで見た目が残念な三人組ってイメージしか無かったけど
のっちかわいいな(゜Д゜)


もうすぐCDが出るらしい。
聞いた事のある2曲(ポリリズムと「恋の運命は~」)が入ってるようなので
買ってみてもいいかな?



これが良かったら前のアルバムも買おう


てなエントリを書いてたら

» 続きも読む

Mar
12
階乗を計算する、簡単なプログラムを作ってみた。

» 続きも読む

Feb
11
フロー制御は
if (if-else)
while
do-while
for と、C/C++ と同じ物が用意されている。
条件式は int type を返さなければならず、 0 が偽でそれ以外が真だ。
Limbo の case (switchでは無い)は少し変わっている。

» 続きも読む

Feb
05
Limbo は case sensitive だけど、識別子にUnicode文字が使える。
試しに、 helloworld.b をふざけた具合に書き直してみた。

init(ctxt : ref Draw->Context, args : list of string)
{
# 日本語で書いてみる。
システム : Sys;
システム = load Sys Sys->PATH;
システム->print("こんにちは 世界 !");
}

Windows上で動いているInfernoには、何の苦も無く日本語が打てた。
acme で Font /fonts/pelm/unicode.9.fonts を ボタン2クリック (以降 click(2) ) してやれば、フォントもちゃんと表示してくれる。
このコード、エラーも無くコンパイルでき、エラーも無く実行できた。

» 続きも読む

Feb
05
Limboの実行の基本単位、またはプログラムはモジュールである。
モジュール・インタフェース定義では、そのモジュールのtype(型)を定義する。
先の例では HelloWorld だ。
モジュール・インタフェース定義では、この type のみを定義していて、
その中身は別の話である。 つまりはインタフェースの定義と実装は別という話。
モジュールの type と 実装(または値)を関連付けるには、 load 命令を使用する。
このload 命令は、ランタイムに評価される。
先のHelloWorldは、多分実行時にDis VM が インタフェースとその実装を関連付けたんだろう。

» 続きも読む

Feb
05
今までは sys->print として使っていたが、毎回 sys->print とタイプするのは面倒だ。
import を使用すれば、他のモジュールからメンバをインポート出来る。
module_member : import module_variable;

helloworld.b を書き直すと

» 続きも読む

Feb
04

いよいよコードを書いてみよう。
とは言っても、先ずは HelloWorld


limbo には .b (ソースファイル) .dis (コンパイル済みバイトコード)の他に
.m (モジュール定義) があるらしい。
C のヘッダファイルみたいな感じかな? Pascal 流の declare にも近い気がする。



# helloworld.m
Helloworld : module
{
init : fn(ctxt: ref Draw->Context, args : list of string);
};


# helloworld.b
implement Helloworld;
include "sys.m";
include "draw.m";
include "helloworld.m";
init(ctxt : ref Draw->Context, args : list of string)
{
sys : Sys;
sys = load Sys Sys->PATH;
sys->print("Hello World !");
}

» 続きも読む

Feb
02
emu.exe への引数 -g で解像度指定出来る事が判明。
install.pdf に書いてあった、というか一通りのチュートリアルが書いてある。
起動して色々アプリも起動してみた。
charon (三途の川の渡し人だっけ?) という名の web browser がある。
スクリーンショット

» 続きも読む

Feb
01
Inferno Programming With Limbo の内容を、1から順にやってみよう のコーナー
※必ずしも書いてある通り/順 でやってるわけじゃないけど
まずは、Section 1 introduction
とりあえず、インストールしよう。
WindowsXPにインストールする。
vitanuovaから Inferno 4th Edition をダウンロード。
CD Image の方が楽だろう。
install ディレクトリに setup.exe があるのでポチっと実行
Inferno Root (インストールディレクトリ)を聞かれる。
僕は F:\Inferno と答えておいた。
インストールしてる間に、Infernoとは何ぞやと整理してみる。
・Plan 9から派生したOSで、その概念はPlan 9と共通する部分が多い
 リソースがファイルとして表されてたり、プロセス毎にネームスペースがあったり。
・単なるVMではない。
 「Windowsで動く? Javaと同じくVM?」 と思いがちだが、InfernoはOSである。
 ただし、VMも持っている。 Dis VM という名前のVMがそれだ。
 NativeのInfernoは、ハードウェアの上でInferno Kernel, Device Driver なんかが動き、
 その上で Dis VM が動いている。
 一方で、WindowsやUnixの上で動作する Inferno emu(こっちはエミュなのだ)では
 Host OSの上に、InfernoのDevice Driver等が載り、その上でDis VMが動いている。
 VMというと、高コストな物を想像してしまいがちだが、Dis VMは一番最後に環境を整える物 くらいに考えて良いのかもしれない。
と、書いているうちにインストールが終わった。

» 続きも読む

| Next»