https://twitter.com/kinaba のログ (twilog の方が便利です。)
今回だと構文木ならぬ構文DAGで表現する言語と二次元的にカードに付箋っぽいのを貼る感じの表現になる言語と、基本テキストなんだけど色で分けて適度に多重化できる感じの言語が思い浮かび却下されました。 | |
@omo2009 あー、時間軸という考え方は面白いですねえ。 | |
ほんとだOperaだとリンクが変だ。なんてこった。 | |
self って変数名を他に変えたら直った…!あれーselfって使っちゃいけないんだっけ… | |
<script>var self=100; alert(self)</script> が 100 じゃなくて window.self を見に行くのか。ううむそうなのか。windowオブジェクトのプロパティは潰せないメソッドは潰せるような動きをする。不勉強だった | |
時間軸と言えば、ブレークポイントで止めたら直前50文くらいの実行トレース(どっちの分岐をどう通ったか)とそれぞれの時点で変数の値がどうだったか全部覚えててGUIで一気に情報提示してくれる富豪的デバッガが欲しい。逆向きに、ステップ実行してる間は全部自動で記憶とっといてくれるのも可 | |
@siritori JavaScriptでした。IEとFirefoxとChromeで確認して油断していたらOperaさんに激しく突っ込まれてしまいました | |
「いつも」でもないか。セプキャンの時は依存関係を矢印で結ぶ言語だった。あれは何故ああしたんだったか | |
@ytomino 具体的にどの言語でそういうことができるのでしょうか?ytさんの日記かどこかで前に拝見したような記憶がなきにしもあらずなのですが、今探してみても見あたらず… | |
@ytomino それだと呼ばれる側の関数から値返せなくないですか。Exceptionのフィールドに破壊的代入するとか、渡されたオブジェクトを無視して中で新しくnewするとかすればいいっちゃいいんですが… | |
普通の例外でも try { ... } catch { ... } の try 部分がブロックスコープ作らない仕様なら、それだけでだいたい自分は満足するような気もしている。 | |
@kmizu "try { var x=1; } catch { x読めない } finally { x読めない } catchが絶対最後まで到達しない場合に限りx読める" くらいのスコープを考えてました。最後が確かに美しくないなあ… | |
@ytomino あとは int|int|int foo(){ ... } みたいに同じ型の出口が複数欲しい場合、MultiExitを言語に入れるなら return[0] やら return[1] で区別すればいいと思うんですけど、既存の例外catch機構を借りるのだと、区別が… | |
@ytomino どれをthrowしても全部1つめのcatchでcatchされちゃう気がします | |
@ytomino f(new MyException1 extends Exception<int>{...}, new MyException2 extends Exception<int>{...}, ...) 的にってことですかね。それでもまだfで再帰すると混ざるような気が | |
実家から離脱。かえる | |
ふむふむそうかインスタンスメンバクラス的に特定のスタックフレームのローカルクラスという型を考えられる言語を考えればいいか。なるほど | |
例外のAPIとしては、再帰があってもytさんの方法で問題ない気がするなあ。「普通の」例外でも混ざるパターンでのみ混ざり得るので元々そういう使い方はされてないと期待できる。マルチコンティニュエーションのAPIとしては混ざる危険が気になる。 |