2007-04-01から1ヶ月間の記事一覧

[動向] 秀丸に補完機能

http://www.atmarkit.co.jp/news/200704/26/hidemaru.html どこまでやってくれるんだろう...まさか自然言語まで?

[実験]JavaScriptの神秘

このプログラムの 1-4の出力結果をそれぞれ答えなさい function cl() {} cl.prototype.exe =function() { alert(this.val); } cl.prototype.test=function() { a=new cl(); a.val="a"; a.exe(); // 1 alert(this.val); // 2 var c=a.exe; c(); // 3 (a.exe)(…

[嘘言語] PukiwikiにTonyuのソースをうめて動かす

というバカなことをおもいついた #Run * A.tonyu while(1) { x++; update(); } * B.tonyu while(1) { y++; update(); } ってかくと,Flashになって動くってやつ.ついでに画像をページに添付すると,その画像をFlashにつかえる.なんでこんなことを思いつい…

[活動] 双方向変換に基づくウェブサイト更新機構

というお話を聴いてきた. Yamada 090-123-4567 というXMLから Yamada 090-123-4567 というHTMLを吐いたとする.このYamadaや 090... をWebブラウザでクリックすると編集できて, XMLにも反映される,という仕組み....だけではないはずなんだけど,なん…

[嘘言語] 超強力リフレクション

class Foo { public void init() { > a=new A(); } } Foo.objects.add("b=new B();"); Foo.removeMethod("init"); Foo.objects.add("c=new C();"); ちなみに >は,Fooクラスのstaticなメンバと思って欲しい.こうすると,ソースファイルに文が追加されたり削…

[調査] eclipseのソースを読み解く

Eclipseのコード補完がどうなっているのか見たくなったので http://wiki.eclipse.org/index.php/CVS_Howto から,ソースをおとそうとしたら3Gあるというから,CVSを接続した.なんか肝心の org.eclipse.jdt.internal.compiler.ast.* (構文木クラス)がないな…

モナド入門

関数型言語で入力を扱う方法.Haskellでの書き方を忘れたので,Javascriptで同等のことを書いてみる. function cat() { // 入力をうけつけ,その文字を2つつなげて返す関数. return function(f) { readLine( function (s) { f(s+s); }); } } cat()( functi…

衝撃的なものたち

議論のなかで沸いて出た先行技術たち. groovy マークアップビルダーが衝撃的http://www.atmarkit.co.jp/fjava/rensai3/devworks05/devworks05_2.html gwt Java-to-JavaScriptコンパイラ.衝撃的.http://www.atmarkit.co.jp/fwcr/rensai/googlewebtoolkit01…

自分の言語をEclipseのプラグインにするには

Eclipseのコード補完を実装する方法で議論.なぜ文法的におかしい状態で,「この変数はあの型だ」というのがわかるのか,という話.Java以外の他の言語にもコード補完対応させるのは難しいので,うまくサポートする方法があればいいなぁ,という結論に達した…

Aroeを さまざまな言語に対応させるには

各言語でVMをつくれば簡単,という意見をいただいた.うーん,そういわれればそうだ.じゃあ,ある言語で書いたVMを他の言語に変換するしくみがあればよい?

言語を使ってもらう方法

キラーアプリ(おなじみ) 組み込み用途 言語エンジンを他のソフトに組み込む 機能をそぎおとす 誕生日をいれると星座を返す標準ライブラリ なでしこ(だっけ?)には入っているそうだ.こういうおもしろ機能が人気をよぶこともある?

[活動] プログラミング言語ワークショップ

プログラミング言語作者のワークショップを開催しました。 (http://d.hatena.ne.jp/kujirahand/20070422) なでしこ、葵などの日本語プログラミング言語の作者,酒徳さんに誘われて「プログラミング言語ワークショップ」に参加してきました. ちなみに葵はす…

末尾toString最適化

class Kakko{ final int a; String toString() { return ""; } } Kakko k=new Kakko(); k.a=3; System.out.println(k.toString()); // (これ以降kは出てこない) と書くとSystem.out.println("");というコードが生成される仕組みがあると,ライブラリが軽くな…

Javadoc のご先祖

もう1本読んだ論文.1986年と古いが,プログラミング言語からドキュメントをどうやって抽出するか,という話.Multilingual programming: Coordinating programs, user interfaces, on-line help and documentation, Gary Perlman February 1986 Proceedings…

HTML+Javascript+VB

今日読んだ論文.Webアプリケーションでいろんな言語が混ざった状態のを解析する手法. Robust multilingual parsing using island grammars, Nikita Synytskyy, James R. Cordy, Thomas R. Dean October 2003 Proceedings of the 2003 conference of the Ce…

あれ?

#{ ... } は,「1レベル上(=外側) の言語を参照する」という意味合いと考えられる. ♭{... }は,#{ ... } の中で用いられ,#{ } のすぐ外側の言語を参照する. いっしょじゃん... Statement a = #{generate(#{$b})}; #{generate(#{$c})}; ; out.print (a); …

#{ } と ♭{ }

Ruby でおなじみの #{...} a = "My name is #{name}"; ".. " の中は自然言語,その外側はRubyである,と解釈できるので #{ ... } は,「1レベル上(=外側) の言語を参照する」という意味合いと考えられる.じゃあ,♭{... } があってもいいだろう. ♭{... }は…

[嘘言語] コンボボックスの憂鬱

小学生 中学生 大学生 なんていうコンボボックスを考えてみよう <select name="mibun"> <option name="elem">小学生</option> <option name="juni">中学生</option> <option name="univ">大学生</option> </select> これらの値をもっともエレガントにあらわすには...列挙型だろうか? enum {elem,juni,univ} 列挙型がない言語って意外と多いので困る.さらに困るのは,elem = 小学生 …

[嘘言語] XSLTもどき?

class Person { String name; String mail; } というクラスに対して Javaで書かれた入力フォーム add(new Label("おなまえ")); add(new TextBox(p.name)); add(new Label("メールアドレス")); add(new TextBox(p.addr)); add(new Button("OK")); Javaで書か…

[嘘言語] Google Maps APIが提供しているJavascriptのクラスをPHPからも使えるようにしておきたい

って書くと何のため?とおもわれるだろうが,たとえばこんな想定. マーカーや吹き出しをデータベースにもたせておく それを地図上に出す 普通に載っているサンプルはこんなかんじ Google Map with PHP <Div id="map" style="width:300px; height:300px"><…

register_globalsの悲劇

PHPにおいてregister_globals をoffにしておかないとなんで危険なのか,という理由:http://blog.ohgaki.net/index.php/yohgaki/2005/11/09/phpa_rc_fei_a_oa_oa_fa_sa_le_acsa_oe_afp_2 foo.php?a=3&b=5 みたいなリクエストがそのまま$a や $bに 代入される…

Pythonでゲームを作っている人もいるみたいだ

pygame - http://www.pygame.org/news.htmlちゃんとコルーチンしているかな?[追記] どうも単にupdateというメソッドを呼んでいるだけみたいなので,コルーチンではないようだ.grepでyieldとやってもでてこないし.

今日初めてPythonをさわったので

print "2+3="+(2+3); と入力しても TypeError: cannot concatenate 'str' and 'int' objects となるをなんとかしてください.

PlainChar appears in Python

Tonyuのほかにコルーチンをサポートする言語の代表格として,まずPythonをあげて,Tonyuと同じことをさせてみる. from string import Template temp=Template("($x,$y)"); class PlainChar: def __init__(self, x, y): self.x=x; self.y=y; def draw(self):…

Tonyuはもっとも優れたコルーチンを実装している,か?

コルーチンというのは,スレッドのように並行処理を行う仕組みだが,次の点でちがう 軽量である*1 ユーザが切り替えのタイミングを制御する.(Tonyuではupdate(); 他の言語ではyieldが多い) コルーチンの用途として(http://en.wikipedia.org/wiki/Coroutine)…