| Prev»
Oct
08

こーいうの、あったら面白いかなーと思った

» 続きも読む

Aug
15

篠笛すごい。
鳥肌たった


ニコ動で1つのネタがブワッっと広がってくのを見ると
文化の発展と著作権とかについて色々考えんでもないが
めんどくさいから書かない。


とりあえず、笛でも聴くとよろしい



Aug
05

ニコ動で見つけた、ファンタジーっぽい風景


地球ヤバイ


» 続きも読む

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 がある。
スクリーンショット

» 続きも読む

| Prev»