目に見えないソースコード 96
ストーリー by Oliver
od(1)で読む 部門より
od(1)で読む 部門より
dseg 曰く、 "本家の話題より。オドロキの新言語が登場した。その名も「Whitespace」というこの言語、空白(0x20)、改行、タブなどの空白要素にスタック操作などの意味が割り当てられており、Whitespace用に書かれたソースコードは文字通り「真っ白」。対話型の"Hello World"的なプログラムが公開されているので、論より証拠という事でご覧あれ。LinuxやMacOSX用のバイナリ、PerlやRubyで書かれたインタープリタがダウンロードページから入手できる。
Sydney Morning Heraldの記事では、「ソースコードから意味を読み取れないので、セキュリティホールも見つけられない」為、セキュリティ面での活用も期待できる旨紹介されているが、4/1付けの記事という事もあり何処までがジョークなのか…。言語マニアのあなた、真っ白なキャンバス(エディタ)に真っ白なソースコードで何か表現してみるのはいかがでしょう? (チュートリアルもあります)"
ベーマガ (スコア:3, おもしろおかしい)
ベーマガに投稿できたとしたら、どのように掲載されるのでしょうか。
Re:ベーマガ (スコア:1, おもしろおかしい)
Iほんたらn (スコア:2, おもしろおかしい)
# 右から左に向かって書くアラビア語版とかも開発されるんかな?
--- ほしみ
Re:Iほんたらn (スコア:2, おもしろおかしい)
だけを使用した姉妹品「RingWorld」を希望。
Re:Iほんたらn (スコア:2, おもしろおかしい)
みんつ
Re: Iほんたらn (スコア:1)
実用性を追求するなんて不粋なだけかもしれませんが (笑)。
Re: Iほんたらn (スコア:2, おもしろおかしい)
わたしとしては、むしろ全角空白とカナ空白を「コメントの開始」、「コメントの終了」に割り当てることを提案したいくらいです。これなら、どこまでがプログラムコードで、どこからが注釈なのか一目ではわからないので、いよいよプログラムの可読性(と同時に、セキュリティホールを衝かれる可能性)が低下するのではないかと。
--- ほしみ
Re: Iほんたらn (スコア:1)
類似例)ROM空き領域に埋め込まれた謎のメッセージ、イントロン
何が面白いって空白なのが面白いのね (スコア:2, 参考になる)
http://www.system-azure.co.jp/dance/azure0013.html 参考
わたしもInterface誌で知ったのですが。
今回のを見てしまった後では、「はい、そうですか」レベルのものですが、
Interface誌でOok!を見たときに、これを空白でやってみよう、
なんて思わなかったなぁ・・・。
デバッグ (スコア:1)
Re:デバッグ (スコア:1, 興味深い)
サンプルを解析してみりゃ分かりますが、作者は Whitespace 用コンパイラ(アセンブラと呼ぶべき?)を作ってプログラムを書いたようですね。
ラベル名の部分を
y/\x20\x09/01/;
s/(\d{8})/chr(oct("0b$1"))/ge;
とかすればわかります。
#ネタにマジレスっぽいのでAC
Re:デバッグ (スコア:1)
ツール等を入れたらいいんでしょうけど、(個人的には)何かが違うような・・・・・・・・
とりあえず (スコア:1)
ソースが読めない (スコア:1)
Re:ソースが読めない (スコア:2, 参考になる)
M-x picture-mode
C-c C-c (picture-mode から抜ける.)
とやるとそれまで書いていたコードが失われます。
すぐにundoしてください。
(実際、テキストの行末の不要な空白を削除するのに便利です。)
love && peace && free_software
t-nissie
Re:ソースが読めない (スコア:1, 参考になる)
M-x whitespace-modeとしてください。
ソースを 1G!Gexpand できません... (スコア:1)
# ^V すりゃいいだろ、という意見はご勘弁を。
Re:ソースを 1G!Gexpand できません... (スコア:1)
先生、うちではBlackspaceです! (スコア:1, おもしろおかしい)
うちでは (スコア:1)
というか、それら3種類は区別表示できないと不便じゃありません?
# rm -rf ./.
Re:うちでは (スコア:1)
簡単に (スコア:1)
Re:簡単に (スコア:1)
とかいうとなんとなく論文になりそうな(うそ).
ところで処理系はHaskellで書かれているようですが,セルフコンパイラを作る計画はないんでしょうかね?
Re:簡単に (スコア:1)
そういえば別にスペースとタブと改行を使わなくても、ソースを書く段階では「スペース=s」「タブ=t」とでもして目に見える文字で書いて、それをawkかなんかで変換してしまえばいいんですね。逆にWhitespaceソースを目に見える文字に変換してしまえばセキュリティホールがどうのというハナシは意味をなさないのでは。
#それを言っちゃぁおしめぇよ。
【時間蠅】
Re:簡単に (スコア:2, すばらしい洞察)
rot がない (;;)
単に可視 (スコア:1)
Say0hello000200010010002110000120001100
10121100001020001101100211000011200011
01100211000010020001101111...
コアダンプでも読んでた方がマシだな…(^^;
みんつ
Re:単に可視 (スコア:1)
数字とかもちゃんとエンコードされて。
Re:単に可視 (スコア:1)
みんつ
Re:簡単に (スコア:1)
hello(・∀・)(・ε・)(・ω・):-)とかだったらイヤだなあ。
Re:簡単に (スコア:1)
uuenface/uudeface ってのがあった記憶が…(^^;
みんつ
Re:簡単に (スコア:1)
鯖鮪鯛鰯鰤・・・・・とかの漢字がずらずら並んだテキストファイルになるんですが。
Re:簡単に (スコア:1)
♪潔くカッコよく生きてゆこう
Re:簡単に (スコア:1)
回転寿司で、即興プログラミング勝負とか出来るかな?
もしくは、寿司で命令を与えてロボットを動かす寿司コンとか……
#バッファオーバーフローに注意
本当かい♪本当かい♪
機械語…? (スコア:1)
最初は、命令デコードの効率を無視した、仮想マシンの機械語かなと
思いました。
でもチュートリアル見ると、命令解析はなんか状態機械っぽいですね。
#バイナリエディタで20h,0ch,とかソースコードを入力すると
#懐かしのダンプリスト入力時代に還れます、みたいな。
Re:機械語…? (スコア:1)
研究の結果、1命令まで減らせる事がわかった、というのを読んだ記憶があるのですが、どなたか憶えてませんか?
その究極の命令がどうしても思い出せないのです。たしか
「2つのオペランドのNANDを0と比較した結果で分岐する」
か何かだと思ったのですが。
このwhitespaceという言語を見てそのことを思い出しました。面白いですね。
# もっとも、機械語命令と違って高級(?)言語の場合は2種の文字があれば
# 十分というのが簡単に分かってしまうのが難点といえば難点ですが。
あぁ、「ン」が消えてるんですよ。「ビーフン・カレー」ね。
シェファーの棒記号? (スコア:2, 参考になる)
-- pyon
Re:シェファーの棒記号? (スコア:1)
シェファーの棒記号 [waseda.ac.jp]でいいのだと思いますが、
命令セットとなると、ほかの工夫が必要な気がします。
# 命令語が一つなら命令語を見なくてもいいんだろうか?
「責難は成事にあらず」 小野不由美 『華胥の幽夢 十二国記』より (p.280)
Re:シェファーの棒記号? (スコア:1)
プリミティブになりうるアドレッシングとして、なんらかのコンティションジャンプが追加されるとできそうな気がするけど、どうなんでしょうね。
の
Re:シェファーの棒記号? (スコア:1)
> 追加されるとできそうな気がするけど、どうなんでしょうね。
そうなんですよ。その命令は最後にジャンプを実行するはずなんですよ。
# ジャンプしたくないときは次の命令にジャンプ
皆さんに聞いてもまだ分かりませんか…
うぅん、まだ思い出せない&ググっても見つからないんですよ。
押入れのダンボールの中のI/O別冊のどこかにかいてあるはずなんですが。
あぁ、「ン」が消えてるんですよ。「ビーフン・カレー」ね。
パッチ (スコア:1, おもしろおかしい)
/.本家よりパッチ [slashdot.org]が出ているので直ちに当ててください
プログラムじゃないけどさ (スコア:1, 参考になる)
1文字1行で出力してくれるので、それをエディタで開いて普通に文を入れてBBSとかに書き込んだりしてました。
見た感じ8桁のインデントにしか見えないんだが、そこに隠しメッセージが入ってる。
#昔話なのでAC
セキュリティーっていってもね (スコア:1)
ソースコードから意味を読み取れないコードなんてごまんとあるが、
そういうのにかぎってセキュリティーがぼろぼろなんだよね。
#いちいちソース読むクラッカーって少ないんじゃ?
流行ってますね (スコア:1, おもしろおかしい)
Re:昔は (スコア:2, 参考になる)
こっちは割と読みやすいんではないかと。
副次的効果として、コーディングスタイルが割と一定するというのもあるかも。
Re:昔は (スコア:1)
プリンターで普通に印字して区別できないのが、
文法的な意味を持つのはおかしいような気がします。
たとえばPythonでインテンドだけの行と空行は、
文法的に意味が違いますよね。
Re:昔は (スコア:1)
ここはそういう「正論」を書く文脈じゃないですよね。
Re:ステガノグラフ (スコア:1)
あたしは行末のタブとスペースでプレインテキストを階層構造化する 構造化エディタ [so-net.ne.jp] を思い出しました。
便利なので時々使ってるのです。
Re:ステガノグラフ (スコア:1)
vi や VIM なら、:set list したら見えますけど。
改行もタブも見えますけど。
Re:これってネタじゃなかったんですね? (スコア:2, 参考になる)
( ゚Д゚)y─┛~~
Re:これってネタじゃなかったんですね? (スコア:1)