yasuy****@javao*****
yasuy****@javao*****
2005年 8月 1日 (月) 15:42:10 JST
えんどうです。 日時 2005-08-27 (土) 10:00am(JST)〜 場所 東京新宿四谷区民ホール/ロフトプラスワン で開催の、 Lightweight Language Day and Night での発表者を改めて募集します。 お問い合わせ: yasuy****@javao***** 多くの言語のユーザーに、Gauche/Schemeの良さをアピールする良い機会です。 どうかふるってご応募ください。 [発表者へのお知らせ] 発表者は入場券が不要です。 すでに買われてしまった方には払い戻しがあります。 また、遠方の方には交通費が出ます。 昨年実績では京都から参加の方支給されました。 * 募集セッション [昼の部] - Language Update: 各言語のこの1年の新しいトピックを紹介 - 君ならどう書く: 規定部門:漢数字電卓/自由部門:デラックス電卓 [夜の部] - ダメ自慢: 各言語の暗黒面を語る * 趣旨など ** Language Update この1年のGaucheまたはScheme一般の新しいトピックを紹介します。 (去年紹介した内容は不要) 去年は私が発表したのですが、 毎年同じ人間が発表すると傾向が固定されてしまうと思うので、 できれば今年は別の方に発表していただけると良いと思っています。 もちろん資料等の素材やプレゼンテーション内容については 全面的に協力します。 ** 君ならどう書く 募集要項を以下に引用します。 -------------------------------ここから------------------------------- * 君ならどう書く ** お題:電卓プログラム 2種類の電卓プログラムを書いてください. ・規定演技: プログラムコードの観賞が目的です. ・自由演技: プログラム動作の観賞が目的です. *** 規定演技編 「漢数字電卓」:四則演算式を文字列として入力し,結果を文字列として出力する 意図: (1)簡単な字句解析 (2)簡単な構文解析 このようなプログラムを書くとしたら,どのようなコードになるかを 観賞したいというのが出題の意図です.規定演技とはいえLLの優劣を 競うのではなく,それぞれのLLらしいコードが観賞できると楽しいで しょう. 仕様について: 通常の半角英数字で表現された四則演算式なら,eval 一発で答えが 出るという LL も多いかもしれません.eval を使えば,上の(2)は 省けるでしょう.でも,それを敢えて自前でプログラミングしてみる のも面白いのではないかと思います. 以下は出題者が想定した仕様ですが,すべて完璧に満すプログラムでな くてもよいと考えています.むしろ,LL毎に,仕様のどの部分が得意で どこが不得意かを簡単に説明していただくのが良いと考えています. - Bignum は不得意なので,32bit の範囲だけ実装 - パーザは書きにくいが,eval があるので,そちらを使った. なんていうのもOKです. 入力に関連する仕様: - 入力は文字列 - 空白は含まない - エンコーディングはEUC-JP. - 文字はすべて2バイト文字 数の表現に関する仕様: - 数の表現は以下の漢数字を使用 一(B0EC),二,三,四,五,六,七,八,九, 十(BDBD),百,千,万,億,兆,京,垓,禾予, 穣,溝,澗,正,載,極, 恒河沙,阿僧祇,那由多,不可思議,無量大数 - 位取りの〇(零)は使用しない - 大字(壱,弐,參など)は使用しない. - 万から極(10^48)までは万進(10^4) 10^48 - 10^44 は 九千九百九十九載 である. - 恒河沙(10^56)から無量大数(10^88)までは万万進(10^8) 10^56 - 10^48 は 九千九百九十九万九千九百九十九極 である. - 千,百 の直前には一は使用しない - 四則演算子は +(A1DC),−(A1DD),×,÷を使用 - 単項の−(マイナス)演算子は使用しない. - 入力する式にあらわれる数値はすべて正の整数 - 入力される数字には小数は使用しない 四則演算式に関する仕様: - 四則演算子は中置記法 四百三十二×三千五百六十七 - 四則演算子は左結合性(left-associativity)がある 千一÷十三÷十一÷七 は ((千一÷十三)÷十一)÷七 と同じ - 四則演算子の優先順位は +と−が同じ優先順位 ×と÷が同じ優先順位 ×の方が+より優先順位が高い - 括弧()の中の計算が優先 数値の内部表現仕様: - 計算途中など数値の内部表現はどのようになっていても構いません. 出力仕様: - 入力に準拠 - 漢数字で表現された整数で出力 - 計算結果が小数になる場合は小数部分は切り捨て. - 計算結果で小数部分部分の切り捨てがあった場合には数字の最後に「余」 の文字を追加 - 計算結果の絶対値が1未満の場合に限り,〇(A1BB)を使う. - 負の数になったときには先頭に「負」の文字を追加. エラー処理: - 不正文字の入力 - 範囲外入力 - オーバーフロー - 0 での割り算 *** 自由演技編 できあがった電卓の観賞が目的です.どのような電卓でもかまいません. 各LLの得意技(不得意技)を存分に発揮してください. - 機能に凝るもよし - ユーザインタフェースに凝るもよし たとえば, - 無限桁電卓 - 音声入力電卓 - 手書き入力電卓 - Postscript電卓 - チューリング機械電卓 - 4004エミュレーター - 石頭計算機エミュレーター(こびとさんが石ころを運搬する) - 化学式電卓 - DNA電卓 などなど... ** プログラムコードの公開 書いていただいたプログラムコードは LLDN 2005 のサイトで公開します. 公開できないコードは含めないで下さい. -------------------------------ここまで------------------------------- ** ダメ自慢 各言語の暗黒面を語るセッションです。 Schemeの暗黒面といえばマクロでしょうか...? だた概念を述べても多言語のプログラマに伝わりにくいので、 できれば各暗黒面それぞれにサンプルプログラムがあると 良いのではないかと思っています。 > 昨年のLLの時点ではGaucheは0.8.1でしたっけ。 > 内部的には0.8.4でかなり変わるんですが、ユーザにとっては(速くなる以外は) > あまり変わらないかもしれません。 > 周辺の話題は、バインディングが増えたり簡単なWindow Managerが出てきたり > ちょこちょこあるんですが、派手なものは無いかなあ。 少し書いてみました。 * Gauche Language Update - Gaucheリリース -- Gauche-0.8.6 --- 拡張ライブラリのビルド方法変更 --- DBIの統合 -- Gauche-0.8.5 --- MinGWでのビルドサポート -- Gauche-0.8.4 --- 高速化(コンパイラ/VMを書き直した) ---- デモ(glxgearsとgears.scmの比較) -- Gauche-0.8.2 --- ソースコードのエンコーディング指定 - Gauche拡張ライブラリ -- Anarchy (Gaucheで書かれたWindow manager) -- Gauche-Firebird (Firebird RDBMSインターフェース) -- Gauche-gl-0.4 --- NVIDIA Cgサポート --- プログラマブルシェーダー等のサポート - Kahuaリリース -- Kahua-0.3 RSS、簡易HTTPDサポート - Scheme界のトピック -- R6RSの動向 -- SRFIの動向 > Scheme全体の動向といえば、R6RSの進展と最近SRFIがどかどか出てきたこと、 > あたりでしょうか。 このへんの動向は comp.lang.lisp あたりを調べれば良いでしょうか...? -- ENDO Yasuyuki <yasuy****@javao*****> http://www.javaopen.org/~yasuyuki/ http://www.javaopen.org/jfriends/