パスワードを忘れた? アカウント作成

こちらは、kawa-tさんのユーザページですよ。 Idle.slashdot.jpは、あなたの人生において完全な時間の浪費です。見るなよ、見るなよ。

3235208 journal
プログラミング

kawa-tの日記: ドキュメントの作成が楽しくなってきた

日記 by kawa-t

tracを使うことで、情報の整理がかなりしやすくなった。情報を参照しやすいことが、情報を入力することの動機付けになり、全体の情報量が増えることで、参照できる情報も増えて、必要な情報にすぐ当たれるようになってきている。その結果、コーディングの際に必要な情報を参照するのも容易になり、コーディングの効率が上がっている気がする。

また、リンクだけで済ませれば情報の重複を避けやすく、少ない手間で充実したドキュメントが作れる。1つのファイルで完結するドキュメントにするには一手間かける必要があるけど、今のところ、その段階には達していないし、達したとしても、ほとんどコピペだけで1つのファイルにまとめられるだろうから、大した作業にはならないだろう。

現在の自分が必要とし、将来の自分も必要とするであろうドキュメントを維持していく可能性が見えたことで、ドキュメントの作成が楽しくなってきた。

2772292 journal
プログラミング

kawa-tの日記: 衝突指向プログラミング

日記 by kawa-t

プログラミンには、変数や引数と言う概念がなく、四則演算すら用意されていない。そういう制約のあるプログラミング環境ではあるが、プログラミンで電卓を作ろうとする猛者はいるようだ。自分もまだ、触った程度ではあるが、簡単な足し算の方法は見つけた。まずは値をどう表現するかだが、それには画像を使う。画像は何でも良いのだが、とりあえず数字があるのでそれを利用する。

次に演算だが、それには「ブツカッタン」と「キガエルン」を利用する。ブツカッタンは特定のオブジェクトが衝突したときにのみ処理を行い、キガエルンは画像の切り替えを行う。その2つを利用すると、例えば「5」と言うオブジェクトに対し、「3」と言うオブジェクトがぶつかった時、画像を「5」から「8」に変えるような処理を書くことができる。一桁であれば10通りの処理を用意しておけばよい。そのようなオブジェクト「5」を作っておき、それに「3」をぶつけると「8」に変化する。

2764254 journal
日記

kawa-tの日記: Scratchとプログラミンを比較してみる 1

日記 by kawa-t

詳細に比較してみたわけではなく、第一印象。対象は幼稚園児を想定。まず、起動する動作について、Scratchは普通にアプリケーションを起動する操作で、プログラミンは、Webブラウザを起動してからブックマークをクリック、もしくは、リンクのアイコンからの起動。プログラミンの起動は遅いが、Webアプリでは一般的な遅さなので問題にはならない。

次に作成画面だが、Scratchの方が複雑。緑の旗が開始ボタンのようになっているようだが分かりにくいし、タグやアイコン選択での切り替えが多く、探すのが面倒臭い。慣れてしまえば良いのだろうが、文字の読めない幼稚園児にはちょっと厳しそうだ。プログラミンの方が、それとは違って、単純なことしかできない代わりに、分かりやすい。アイコンに名前が付いているが、読むよりもアイコンの形を見た方が良い。このあたりは幼稚園児にはフレンドリーだ。

2756468 comment

コメント: Re:3つのOSが入っていたとして (スコア 3, 参考になる) 68

革新的ではあったんですけど、実身数が16ビットの範囲内でしたし、バックアップやデバイス間のデータ共有が面倒と言う時点で、インターネットから膨大なデータを得られる現状に合わないんですよ。1つのデバイスでちまちま手入力をやっている範囲ではいいんですけどね。何千ものデータから芋蔓式に必要な情報や関連情報が見つけられる。

現状では、BTRONの仮身・実身モデルのようなものはwikiが実現していますが、それでも、コンテンツの作成・編集はBTRONの方が圧倒的に簡単。20年前の代物なのに。

ただ、ああいうものをローカルデバイスでやっている限り、BTRONに未来はないように思います。やはり、wikiのように、クライアントサーバモデルで実現しないと、データの保守が困難。残念ながら、そちらの方向には進化していません。
1704610 journal
日記

kawa-tの日記: ESC

日記 by kawa-t

この冬に感じることは新しい車が速い。こちらのタイヤが寿命というのもあるが、タイヤの差にしては大きすぎる気がする。それで不思議に思っていたのだが、ESCを搭載しているんだな。

1470014 journal
プログラミング

kawa-tの日記: 末尾呼び出しの最適化

日記 by kawa-t

末尾呼び出しと言ってもSchemeの話ではなくて、C/C++の話。特にgccの話なので、sibling callといった方が正確か。

return funcA(a, b);

となっていたとき、この文のある関数とfuncAの型が一致していれば、関数呼び出しを行わず、引数を書き換えて、ジャンプ命令でfuncAの処理が実行されるような最適化。

再帰になっていれば、関数呼び出しがループのように展開されるけど、Schemeじゃないんだから、そういうものは最初からループで書いておけば良い。おいしいのは、より一般的な末尾呼び出しの方。関数呼び出しがジャンプに置き換えられるので、インライン化できないものもインライン化に近いパフォーマンスが期待できる。

コンパイル時には処理を決定できない関数ポインタを介した関数呼び出しについても、最適化されているっぽいけど、コンパイル後のコードで確認していない。

1415349 comment

コメント: 仮想関数は「合法的なダウンキャスト」 (スコア 1) 12

by kawa-t (#2084614) ネタ元: C++で引数の型によるディスパッチ
tarosukeさん、貴重な時間を割いてお付き合い戴いていることに感謝します。

以前に仮想関数で書いて依存関係が複雑になったコードを、自前でキャストするように変更したところ、キャストの危険性があったり、分岐などがあったりするものの、全体としてはコードがコンパクトになり、読みやすくなったこともあり、自前でキャストすることもありだと思っていました。

ただ、仮想関数を「合法的なダウンキャスト」と考えれば、現状のコードからの書き換えが必要なのは、現状で派生クラスになっているものに一対一で対応する、キャスト用のクラスだけです。

今まで、仮想関数をダウンキャストの手段として捉えていなかったので、仮想関数を過小評価していたようです。
typodupeerror

日本発のオープンソースソフトウェアは42件 -- ある官僚

読み込み中...