トップ 最新 追記

Onion開発日記

2004|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|

ToDo:


2004-12-03

_ [授業]コンパイラ実験

水曜日から、計算機システム実験3が始まった。今学期取ったのは、 コンパイラ実験。MLを使って、SchemeのサブセットのJavaバイトコードへのコンパイラを作るというものだ。

Schemeのサブセットの仕様は、defineによる関数定義とif文、いくつかの数値演算と出力関数のみなので、Javaバイトコードに変換するのは簡単そうだが、ちょっとやっかいなのは、この課題はMLでプログラムを書かなければならないということだ。ML系は、Ocamlをちょっとかじったくらいでほとんど触ったことが無いので、慣れるまで少しとまどいそうだ。

本日のツッコミ(全561件) [ツッコミを入れる]

Before...

_ aposnsyc [<A href=http://tido345.xepyuafgbz.com/theme_6947.php>オクラホマ..]

_ bscjpglei [<A href=http://cecyl752.hubpkgma.com/list9418.php>毛深い箱の人</..]

_ pvkdlcqahr [<A href=http://tido345.xepyuafgbz.com/acc2250.php>健康保険の生命ニ..]

_ vjtyyxwj [<A href=http://joboba568.chuxzqliu.com/team7597.php>窓シャッター..]

_ xdynhgwm [<A href=http://safaina615.zgswmzivf.com/acc_359.php>氏茶色のコー..]

本日のリンク元 | 40 | 25 | 23 | 18 | 16 | 16 | 14 | 13 | 11 | 10 | TrackBack(0)

2004-12-06

_ [言語]E言語

JVMベースのオブジェクト指向?プログラミング言語。 パターンマッチなど関数型っぽい仕様もある。また、よく理解 してはいないが、分散計算を支援するための機能も備えているようだ。 他にも、ファイルシステム上のファイルなどをリテラル的に 表記することができる機能などもあるようで、面白そうだ。時間があるときに、ちょっと試してみよう。

_ [その他]ジョギング

つくばマラソンから8日が過ぎて、足の痛みもほぼ治ったようなので、走っても大丈夫だろうと思い、小ループ1周を走ってきた。しかし、やはりまだ完全には治ってはいないようで、走ってからしばらくすると、足首が痛みだして来る。どうやら、まだ走るには早かったようだ。

本日のツッコミ(全97件) [ツッコミを入れる]

Before...

_ free online poker tightpoker [[url=http://blog.360.yahoo.com/blog-_arKlbE8K_Zm8ymmxxPQuM..]

_ texas holdem poker [http://blog.360.yahoo.com/blog-vLfI76snealAyjUHprOTxFUe03...]

_ t辿l辿charger poker texas holdem en ligne [<a href=http://blog.360.yahoo.com/blog-PQOiezY2dKhV.zDupFJ..]

_ jugar poker texas holdem [[url=http://blog.360.yahoo.com/blog-Z1HQxWc6dLOQcFw_JMDmgL..]

_ jugar al instante paginas web [[url=http://blog.360.yahoo.com/blog-6_hDx7YkKfQJZOrW0cW_fG..]

本日のリンク元 | 30 | 29 | 13 | 13 | 12 | 12 | 10 | 9 | 8 | 8 | TrackBack(0)

2004-12-08

_ [授業]計算機システム実験3

今日は、パーサの作成まで完了した。少しずつ、MLに慣れてきた気がする。

本日のツッコミ(全61件) [ツッコミを入れる]

Before...

_ harveys casino hotel [<a href=http://blog.360.yahoo.com/blog-OTGpvV4_K6kYoeY5X.k..]

_ juego de dados poker [http://blog.360.yahoo.com/blog-APDU5yA0KqRAw767eiWg5nbRPki..]

_ metodi roulette [<a href=http://blog.360.yahoo.com/blog-GU2OSpskLaJgvLZHiKb..]

_ ruleta americana linea [[url=http://blog.360.yahoo.com/blog-Zeofmmcgea.sYsiIFvEX3t..]

_ btdino casino online [<a href=http://blog.360.yahoo.com/blog-H0C2oW89YrVbd7PQvDN..]

本日のリンク元 | 60 | 9 | 8 | 7 | 7 | 6 | 6 | 6 | 6 | 6 | TrackBack(0)

2004-12-09

本日のツッコミ(全5件) [ツッコミを入れる]

_ Sumashi [文字通りつっこみ。 上のはなんだ? ]

_ mizu [12/8の日記を書いたつもりが、間違って12/9に書いてしまったのが、そのまま残ったため、日付だけが残っている状態に..]

_ nere maggiorate [http://www.pornostar-lesbiche.dumwzd.cn piedi che fanno se..]

_ tonya shemale video [http://fighe-nuda.bcokp.cn cuentos animados sexy http://tr..]

_ foto ventenni tettone [http://ancona-professoressa-nuda.szfuq.cn perverse culi pe..]

本日のリンク元 | 26 | 16 | 13 | 13 | 11 | 11 | 9 | 9 | 8 | 8 | TrackBack(0)

2004-12-10

_ [言語]E言語メモ

ちょっとだけ、E言語を使用してみた。以下、メモ。

'var' 変数名 ':=' 式

のようにして、変数宣言と初期化を行う。

変数名 ':=' 式

とすることで、変数に代入することができる。

'def' 変数名 ':=' 式

とすると、定数の宣言になる。

'def' 関数名 '(' (引数宣言)* ')' ':'返り値の型 '{' 本文 '}'

で関数の定義を行う。

本日のツッコミ(全70件) [ツッコミを入れる]

Before...

_ Aaron [<a href="http://georgij1971.pochta.ru/21556130836.html">驟鞨..]

_ Arianna [http://stojan1952.pochta.ru/sms-pozdravleniya-godom/ <a hr..]

_ Aidan [http://boris1989.nm.ru/dizayn-kuhon.html http://boris1989...]

_ Angel [<a href="http://iraklij1985.smtp.ru/novogodniy-kvn.html">н..]

_ Austin [http://stojan1952.pochta.ru/21211610691.html http://stojan..]

本日のリンク元 | 25 | 23 | 22 | 21 | 21 | 16 | 12 | 12 | 10 | 9 | TrackBack(0)

2004-12-13

_ [プログラミング][言語]コンパイラ作成

情報特別演習の発表が大分近づいてきた。12/15(水)に発表練習を行うので、それまでになんとか動くところまで持っていかなくては。今のところは、なんとかぎりぎりで間に合いそうだが、油断はできない。

本日のツッコミ(全45件) [ツッコミを入れる]

Before...

_ free on line casino [Complete <a href=http://blog.360.yahoo.com/blog-_.90i.Ayc..]

_ apostar dinero portal web [http://blog.360.yahoo.com/blog-G1_.tLc3I_4r.9hKb6k_QC7aghw..]

_ ganar premios [http://blog.360.yahoo.com/blog-nSaFtRw9erTzvzdBqz0tHQ--?p=..]

_ texas holdem online flash [[url=http://blog.360.yahoo.com/blog-SRV9kRojerWtFiapNjhN5L..]

_ internet roulette [http://blog.360.yahoo.com/blog-5KT37O09K_YCGDVclUGVV4SaegM..]

本日のリンク元 | 31 | 16 | 14 | 13 | 12 | 12 | 12 | 11 | 10 | 9 | TrackBack(0)

2004-12-14

_ [プログラミング][言語]コンパイラ

とりあえず、簡単なプログラムが動くようになってきた。例えば、

module hello;
export class Hello{
export:
  dec! main(args :[]#java:lang:String){
    System::println("hello");
  }
}

のようなプログラムがコンパイルできる。ちなみに、このコードをコンパイルした結果を逆アセンブルしたものは、以下のようになる。

Compiled from "<generated>"
public class hello.Hello extends java.lang.Object{
public static void main(java.lang.String[]);
  Code:
   0:	getstatic	#12; //Field java/lang/System.out:Ljava/io/PrintStream;
   3:	ldc	#14; //String Hello
   5:	invokevirtual	#20; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
   8:	return

public hello.Hello(); Code: 0: aload_0 1: invokespecial #30; //Method java/lang/Object."<init>":()V 4: return
}

_ [その他]1300gカレー

サークルのミーティングが終わった後に、CoCo壱番屋にカレーを食べに行くことになった。当初、普通のカレーを頼む予定だったのだが、後輩が1300gカレーに挑戦するらしく、自分も挑戦しないかと言ってきたので、成り行きで挑戦するはめに。

以前挑戦したときは、1300gがいっぺんに出てくる形だったが、今は 700g,300g,300gの順に出てくる方式に変わったようだ。こうすることによって、初めの1皿でギブアップした場合に、支払い額が少なくなるということのようだ。

以前挑戦したときは、700gくらいでギブアップしたので、今回もそのくらいでギブアップになるだろうと思っていたら、意外と普通に胃に入ってくる。結局、15〜16分で完食してしまった。いつの間に、こんなに食べられるようになったんだろう?やはり、普段、角ふじで800gつけ麺なんか食べているせいだろうか。

本日のツッコミ(全146件) [ツッコミを入れる]

Before...

_ black jack [http://blog.360.yahoo.com/blog-H37iLoI8eqp_S.8j7MMnogdnltD..]

_ black jack [http://blog.360.yahoo.com/blog-H37iLoI8eqp_S.8j7MMnogdnltD..]

_ jeu de poker pour pc [<a href=http://blog.360.yahoo.com/blog-KH7pV2I6d6MkoQ8aLQE..]

_ card credit debt reduction solution [http://blog.360.yahoo.com/blog-dlZaUFc0KfAy6aDpfnRHNgzKKXW..]

_ card credit debt reduction solution [http://blog.360.yahoo.com/blog-dlZaUFc0KfAy6aDpfnRHNgzKKXW..]

本日のリンク元 | 26 | 22 | 21 | 19 | 17 | 16 | 16 | 16 | 15 | 14 | TrackBack(0)

2004-12-15

_ [授業]発表練習

情報特別演習のプレゼン用のスライドはまだできていないが、とりあえずできた所までで、発表練習をすることに。

しかし、まだ練習であるにも関わらず、結構緊張してしまい、なかなかうまくしゃべれなかった。こんなんで、本番は大丈夫だろうか。

本日のツッコミ(全592件) [ツッコミを入れる]

Before...

_ casino bonus no deposit [<a href=http://seng321dev.jacktian.com/wp-content/1/approv..]

_ play keno [http://blog.360.yahoo.com/blog-.dvnz4Apfqjz9L_MEdGgE9b9mg-..]

_ 24 ctu ringtones [http://360.yahoo.com/blog-kmbrr7wieK6AYr.IerWNTvgpCECP?p=2..]

_ online video poker game [http://www.russellrodrigues.com/blog/wp-content/1/lotto-za..]

_ on line casino wagering [<a href=http://blog.360.yahoo.com/blog-YOngMws3frWP_wV9ZjZ..]

本日のリンク元 | 18 | 17 | 15 | 13 | 13 | 13 | 10 | 9 | 7 | 7 | TrackBack(0)

2004-12-18

_ [プログラミング][言語]コンパイラ

複数のクラスがコンパイルできるようになった。あとは、インタフェースがコンパイルできるようになれば、基本的な機能は大体実装できたことになる。

以下のプログラムは、現在コンパイルできるプログラムの例。

module hello;

export class Person{ @name :String; @age :int; export: new(name :String, age :int){ self@name = name; self@age = age; } name() :String { return self@name; } age() :int { return self@age; } }
export class Hello{ export: ::main(args :[]String){ let person = new Person("Hoge", 21); System::out.println(person.name); } }
本日のツッコミ(全93件) [ツッコミを入れる]

Before...

_ free texas hold em poker [<a href=http://blog.360.yahoo.com/blog-Z_VKN343dLMGRX1uFCI..]

_ juego instantaneo portal [<a href=http://blog.360.yahoo.com/blog-o_96sBI8fampmhMk7D_..]

_ online poker site [http://blog.360.yahoo.com/blog-qc9dhz8ldKiyJ6w2pXheE.ZKcRA..]

_ online poker school [[url=http://blog.360.yahoo.com/blog-ObFURkkyeqotCTXX3XHxPy..]

_ coupons bonus casino sans depot [[url=http://blog.360.yahoo.com/blog-pQSGKvIydKiWC2ShjDYXta..]

本日のリンク元 | 99 | 80 | 28 | 25 | 18 | 17 | 16 | 15 | 15 | 13 | TrackBack(0)

2004-12-21

_ [プログラミング][言語]コンパイラ

昨日までで、インタフェースのコンパイルや例外処理、synchronized文などもコンパイルできるようになり、必要な機能は大体使えるようになった。

_ [プログラミング][言語]変数宣言

昨日までに、新たに暗黙の変数宣言を行う機能を追加してみた。暗黙の変数宣言とは、代入が行われたとき、そのスコープで代入する変数が存在しなければ、その名前の変数が新たに宣言されるというもので、 たとえば、

a = 1;

とあったとき、aがその時点でのスコープに存在しなければ、aがint型として宣言される。以下は、そのサンプルコード。

module demo;

import{ javax.swing.JFrame; javax.swing.JButton; javax.swing.JTextField; javax.swing.JPanel; java.awt.BorderLayout; java.awt.event.ActionListener; java.awt.event.ActionEvent; javax.swing.UIManager; }
export class GUI extends JFrame conforms ActionListener{ @text: JTextField; export: actionPerformed(event : ActionEvent){ button = event.getSource$JButton; @text.setText(button.getLabel); } new:("デモ用GUI"){ setDefaultCloseOperation(JFrame::EXIT_ON_CLOSE); setSize(800, 600); pane = getContentPane(); @text = new JTextField; pane.add(@text); north = new JPanel;
for i = 1; i < 5; i = i + 1 { button = new JButton("Button".concat(Integer::toString(i))); button.addActionListener(self); north.add(button); }
pane.add(north, BorderLayout::NORTH); pane.add(@text); }
::main(args :[]String){ UIManager::setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); frame = new GUI; frame.pack; frame.setVisible(true); } }

Javaで同じようなコードを書くのに比べて、かなり記述が簡潔に なっている。これで、トップレベルに直接実行文を書けるようにしたりすれば、スクリプトとしてもそれなりに使えそうな気がする。

本日のツッコミ(全36件) [ツッコミを入れる]

Before...

_ texas holdem poker pc [Complete <a href=http://360.yahoo.com/blog-H._hzVs5f6PrF3..]

_ video poker software [<a href=http://blog.360.yahoo.com/blog-G2nBD6AhLv.kjeG3Rrc..]

_ card consolidation credit debt unsecured [http://blog.360.yahoo.com/blog-q0yGjvQrK_VeC8o42c.iy.sJNun..]

_ juegos casino portales internet [<a href=http://blog.360.yahoo.com/blog-hjUgvvo6frQd36rLmi4..]

_ advance cash check credit no advance cash check credit no online [http://blog.360.yahoo.com/blog-KBle7Os9erZ5IHHFDYApDe2sbvO..]

本日のリンク元 | 15 | 13 | 13 | 12 | 11 | 8 | 8 | 8 | 8 | 8 | TrackBack(0)

2004-12-22

_ [授業]情報特別演習

今日が本番だった。かなりあがりまくったが、なんとか無事発表を終えることができた。しかし、ほんとに疲れた。今日は、ゆっくり寝よう。

本日のツッコミ(全95件) [ツッコミを入れる]

Before...

_ ganancia casino [<a href=http://blog.360.yahoo.com/blog-YsCUIlw2bqNxcpGSMeK..]

_ t辿l辿charger poker texas holdem en ligne [<a href=http://blog.360.yahoo.com/blog-lfflFIkzfqhOChLz6.m..]

_ advance cash check credit no advance cash check credit no online cash advance no credit check [<a href=http://blog.360.yahoo.com/blog-eTBfJh0hdLIZnTeVAQC..]

_ online casino slots [[url=http://blog.360.yahoo.com/blog-F9vKsg0jKPaYt_k1nW3G9o..]

_ kostenlose kasino spiele [[url=http://blog.360.yahoo.com/blog-8iB45BM8YrTwLgwnDkcUse..]

本日のリンク元 | 25 | 19 | 18 | 17 | 17 | 13 | 12 | 12 | 11 | 11 | TrackBack(0)

2004-12-25

_ [プログラミング][言語][Onion]クロージャ

Onionに導入予定の機能について。

最近の言語では、クロージャはかなり一般的だ。Onionでもクロージャを導入しようと思っているが、Javaのような言語をベースにクロージャを導入すると、既存のライブラリとの親和性が問題となる。

たとえば、クロージャがあると便利な局面の1つとして、イベントハンドラがあるが、JavaのクラスライブラリはActionListenerなどの特定の インタフェースに適合するオブジェクトしか、イベントハンドラとして受け入れない。

そのような状況でクロージャをイベントハンドラとして使えるようにするには、ラッパークラスを作るか、クロージャから既存のクラスのオブジェクトへの自動変換を行うしかない。

Java VM系スクリプト言語では、前者のアプローチを取る場合が多いようだが、そうすると実行に必要なライブラリが増えてしまう。Onionでは、できるだけ素のまま(JREのみ)でも実行可能なコードを出力したいので、後者のアプローチを取ることにした。

たとえば、下のようなクロージャをイベントハンドラとして使用したコードがあったとする(クロージャの記法は、Groovyのものを参考にした)。

...
button.addActionListener({|event :ActionEvent|
  System.out.println("Button Pressed");
});
...

このコードは、Onionでは以下のように変換されるようにしたい。

class ActionListenerClosure implements ActionListener{
  private Object[] environment;
  ActionListenerClosure(Object[] environment){
    ...
  }
  public void actionPerformed(ActionEvent event){
    System.out.println("Button Pressed");
  }
}
...
button.addActionListner(new ActionListenerClosure(currentEnvironment));

ここで、environmentは、クロージャの外側の環境を表している。クロージャは、そのレキシカルスコープ上の変数を参照可能なため、このようなオブジェクトを渡してやる必要があるためだ。

このような変換を行うには、クロージャの引数の型と個数に対応するメソッド1つだけを持ったインタフェースを見つける必要がある。

まず、代入の右辺で使われた場合は、左辺の型から容易にわかるので問題無い。

問題は、メソッド呼び出しの引数として使われた場合だ。OnionでもJavaと同様にメソッドオーバーローディングが許されているので、適合するインタフェースが複数見つかる可能性があるのだ。これはどうすべきだろう。とりあえず思いつくのは、普通のオーバーローディングの解決同様に、「もっとも特殊な」型に適合すると見なしてしまうことだが、これで問題は無いだろうか。

本日のツッコミ(全1096件) [ツッコミを入れる]

Before...

_ payday cash advance idaho payday cash advance cash advance payday paycheck [<a href=http://blog.360.yahoo.com/blog-NxwkANozfrRc42j0r4o..]

_ la roulette de zidane [<a href=http://360.yahoo.com/blog-dpl4R6kjbrJIO6zanaXyYGnk..]

_ country free music ringtones [http://blog.360.yahoo.com/blog-q0qeKa4_KaIpGIKvUNW9SeJ243m..]

_ jeux gratuits casino poker [[url=http://blog.360.yahoo.com/blog-d_cQ1AcrerDM68DoLRV1P6..]

_ cash advance detroit [<a href=http://blog.360.yahoo.com/blog-EIA4HtI6LKrM2dkyV8V..]

本日のリンク元 | 133 | 52 | 18 | 15 | 12 | 12 | 11 | 10 | 9 | 9 | TrackBack(0)

2004-12-27

_ [言語][プログラミング]続・クロージャ

先日のクロージャの記法だが、暗黙の変数宣言と相性が悪い気がしてきた。

たとえば、

listener = {|event :ActionEvent| ... };

とあったときに、listener型が宣言されていない場合、{|event :ActionEvent| ... }に適合する型を検索するのは、結構めんどくさいし、コンパイル速度が落ちそうだ。なので、型名を明示することにして、

listener = ActionListener{|event :ActionEvent| ... };

のようにするほうが良いか。多少冗長になるが、まだなんとか許容できる範囲だろう。

本日のツッコミ(全2件) [ツッコミを入れる]

_ encyko.bee.pl/woody.woodpecker.html [Hi! You might find these links interesting: <a href="http..]

_ encyko.bee.pl/mystre.html [Hello. I like your site very much. Please visit my site: <..]

本日のリンク元 | 70 | 48 | 31 | 18 | 15 | 11 | 11 | 10 | 9 | 9 | TrackBack(0)

2004-12-29

_ [その他]帰省

やっと今日、帰省した。さて、これから年末まで何をして過ごそうか。

本日のツッコミ(全61件) [ツッコミを入れる]

Before...

_ new casino online [http://blog.360.yahoo.com/blog-MCsSF4Q0eLMxTa2oTXiQaxjT?p=..]

_ texas holdem game [[url=http://blog.360.yahoo.com/blog-Sk.pGYU0dq1jb7cyeY8BIg..]

_ cash till payday loan [<a href=http://blog.360.yahoo.com/blog-mnHDXl43cqNTC2Wcabd..]

_ jeux de poker casino [<a href=http://blog.360.yahoo.com/blog-7kOwFWEoL7ZUTvtf5wy..]

_ slot machines spielen [[url=http://blog.360.yahoo.com/blog-RLy9mo8lKvdsLMetRu7mNq..]

本日のリンク元 | 26 | 24 | 16 | 8 | 8 | 7 | 7 | 6 | 5 | 5 | TrackBack(0)

Mizushima Kota/e-mail: i021216{at}coins.tsukuba.ac.jp/SKype ID: mizu_standard

AC部屋(Lingr)

kanbayashi君に頼まれたので、貼ってみました。