2008-03-01から1ヶ月間の記事一覧

オレたま 1―オレが地球を救うって!? (ジェッツコミックス)作者: 原田重光,瀬口たかひろ出版社/メーカー: 白泉社発売日: 2007/08/29メディア: コミック購入: 1人 クリック: 63回この商品を含むブログ (26件) を見る久々のヒットノエルと白馬の王子―アリアンロ…

Function オブジェクトのフック

ku> func = fun x { > x puts; > }; > local.func.before = fun x { > "before: " + x; > }; > local.func.after = fun x { > "after: " + x; > }; > ku> func: "Hello world"; > before: Hello world Hello world after: Hello worldってな機能を付けようか…

セキュアなオブジェクト

とりあえず SecureWrapper って名前のクラスを作った。で、色んなアクセス制限を考えると、ちょっとした SandBox オブジェクトが作れそうな気がする。結構有意義かもかも。 とりあえず、eval 関数での global オブジェクト保護に SecureWrapper を使うことを…

セキュアなオブジェクト

KuSecureObject っていうセキュアなオブジェクトを用意しようかなーとか考えていたりする。ある特定のコンテキストからの書き込みとか読み込みを制限できるような。 具体的には、ルートオブジェクトは読み書き自由だけど、exec コンテキスト内からは読み込み…

J/Invoke は

最終的にこんな感じに持っていきたいな。 juse: "java.lang.*" local; System.out println: "Hello world";juse: "java.awt.*" local; juse: "java.awt.event.*" local; window = jnew: Frame "kuzha window"; window setSize: 320 240; wls = jnew: WindowL…

Hello world

ku> jclass: "java.lang.System", out, println: "Hello world"; > Hello worldよし、動いたヽ(≧∀≦)ノ

Java のセキュリティに関する定石

アプレットとかの、ファイル読み書きがセキュリティポリシーにて制限されているとき SecurityException が飛んでくるとは思うんだけど、そういう例外を処理するためのセオリーとかパターンとかってあるのかな……。 やったことないから難しいね。

J/Invoke、大方実装完了

java.lang.System.out.println() の呼び出し ku> juse: "java.lang" local; > System.out println: "Hello world"; > Hello world java.awt.Frame を使ってみる ku> juse: "java.awt" local; > juse: "java.awt.event" local; > window = jnew: Frame "Sampl…

ふと気付いたんだけど……

synchronized(this) { if (this.entry != null) return; this.entry = new HashMap<String, List<String>>(); } このコードって、new HashMap が行われるのって常に1回だけってのは保障されるのかなぁ……。</string,>

Jython のメソッド解決手順

Jython は Java とは型機構が異なるので、Java のメソッドを Jython から呼び出す際のメソッド選択をどうしているのかは前々から気になるところだった。 どのメソッドを呼び出せばいいかを決めてるのはこの2つのクラス。 http://jython.svn.sourceforge.net…

テレビ局の一番の資産ってなんだろうな

って考えて 「その局が過去に放映した番組すべて」 だという考えに行き着いた。要はその局の歴史ですな。人に歴史あり、テレビ局もまた然り。 それらアーカイブで採算取れるかどうかは別として考えると、過去に放映した番組が資産であることに反論する人って…

if 文と3項演算子の違い

ちょっと実例を出して比較してみようと思う。 if(hoge)var = 1;はvar = (hoge?1:var);に置き換えられる。微妙に速くなると思うけど、実際どうなのかは分からない。 坂口和彦 on Twitter: "if(hoge)var = 1;はvar = (hoge?1:var);に置き換えられる。微妙に速…

今後の修正予定

関数定義 現在の文法 void FunctionLiteral():{}{ ("\\" | "fun") FunctionArguments() ( "(" Expression() ")" | "{" StatementList() "}" ) } 新文法 void FunctionLiteral():{}{ "fun" FunctionArguments() ( "->" PrimitiveExpression() | "{" Statement…

今日の変更点

メソッドミッシングに使う forward スロットを、特殊スロットへと格上げ 関数定義を ^ から \ に変更 \x y (x + y) みたいな感じに キーワード引数を | から # に変更 foo# a = 123; みたいな感じに 未評価参照 &var を削除 今後は local.var で代用 余った …

musico で capsule の 「Super Scooter Happy」 を単品購入

スロットへの代入に関して

obj = {}; obj.foo.bar = "abc";こういうプログラムは、現行の kuzha では foo が void なので VoidOperationException を吐き出してきます。これを、bar スロットへ代入した時点で foo を自動生成するようにするかどうかの思案中。結構手間がかかるんだけど…

"??" 演算子の名前がわかんない

C#

わかんないヽ(≧∀≦)ノ

オブジェクトのダンプをできるようにした。

ku> neko01 = "tama"; > neko02 = "koma"; > ku> local pp; > #object: e39a3e { neko01 = "tama"; neko02 = "koma"; }んー。やっぱり集合リテラルは要らないかなぁ。

local 特殊変数を作った

ku> test = ^{ name = "tama"; return local; }; > ku> test.name puts; > tama関数とかのローカルコンテキストをそのまま持ち出せます。

for の文法をごにょる

ku> for i = 9 to 0 step 2 do > i puts; > end > 9 7 5 3 1Delphi 風味。こうすると step も自然と書けます。 「 for i in 0..9 do 〜 end 」 とどっちが良いかなぁ。

アドホックな対処法

ku> for i in 0..9 do > i puts; > end > 0 1 2 3 4 5 6 7 8 9とりあえず for 文では、in の後に 「式 ".." 式」 を書けるようにして対処してみた。

文法の修正

before func = fun x y do return x + y; end; obj = { a = b; c = d; }; list = [ a b c ]; map = %[ a -> b; c -> d; ]; # line comment // line comment after func = fun x y { return x + y; }; obj = { a = b; c = d; } list = $[ a b c ]; map = %[ a…

リスト表記の続き

list = L{ a b c }; map = M{ a -> b; c -> d; }; set = S{ a b c }; obj = { a = b; c = d; };も良いかなぁ。SML で分かりやすいかもしれないし。

範囲 for 文の思案

for i = 0 to 9 do i puts; endにしちゃおうか。Delphi みたいだし。

文法を修正したら困ったことに

for i in $[0..9] do i puts; end…… $ がウザい。どうしようかなぁ。 解決策 expr .. expr とか expr ... とかの範囲演算子を導入 文法がリストリテラルとスライス演算子に競合するので無理 for in の後だけ expr .. expr と expr ... を許容する 文法がやや…

java-ja 第7回に行ってきました

java-ja 楽しかった。けど java とは全然関係ない経営関係の話で興味が引かれたり。あと escafe**** を使う対象が気になったかも。escafe**** で作った業務フローをどういう風に活かすのかのデモが見たかったかも。 懇親会では、主賓の id:habuakihiro さん…

経営云々

うーん。java-ja に行って頭が経営のことで埋まるなんて予想だにしなかった。 とりあえず自分の実体験*1から言いますと、 価格を下げることでしか他店との差別化ができないならば、付加価値を上げることでしか win-win 関係を築くことができない とか。難し…

リストとマップとオブジェクト

昨日露呈した問題は、リストリテラルの表記を変更して解決しそうな予感。 今までは list = [ a b c ]; // List map = %[ a -> b; c -> d; ]; // Map obj = { a = b; c = d; }; // Objectだったところを、文法を変更して list = { a b c }; // List map = %{ …

ちょっと目を離した隙に

DLR

CodePlex Archive が上がってキテタ─wwヘ√レvv〜(゚∀゚)─wwヘ√レvv〜─ !!

ビット演算子も文法的に問題だ

現在の kuzha にはビット演算子が無い、という話。ここで単純に "&" "|" "^" を導入しちゃうと、それぞれ以下とバッティングするというブービートラップ。 &foo; // 変数 foo を無評価参照 foo| abc = 123; // 関数 foo をキーワード引数付きで呼び出し ^x (…