プログラミング言語意味論 第1回レポート


  1. main 関数を持つプログラム)

    プリント第 4 章 p.6 問 4.4.2(の 3 つの小問のうち 2 つ以上)

    • 入力文字列をごと大文字と小文字に変換して出力する。 例えば、Hello,↵ World↵hello,↵HELLO,↵world↵WORLD↵ になる。 (は改行を表す。)

    • 入力文字列中の数字(‘0’ 〜 ‘9’)の出現回数をカウントして出力する。

    • 入力文字列中の ‘@’ が出現する最初の10行だけを出力する。

    参考にするプログラム: Head.hs

  2. (CPS への変換)

    プリント第 7 章 p.9 問 7.3.1

    次の関数を「ボタンをクリックしたら、一つの線分を表示する」 というバージョンに書き換えよ。

    Sierpinski.htmlSierpinski.js

    ヒント: forward, sierpinski, zig, zag を CPS に変換する必要がある。turnLeft, turnRight については、 (この問題では) CPS にする必要はない。

    参考にするプログラム: Hanoi0.html, Hanoi0.js, Hanoi.html, Hanoi.js,
    Fib0.html, Fib0.js Fib.html, Fib.js

チャレンジ問題(ボーナス問題)

以下の問題は、非必須のチャレンジ問題です。

  1. (Prolog)

    Prolog 言語をプリントで自習し、 プリント中のサンプルプログラムを元にして、 日本史や世界史、あるいは物語の中の有名な家系を Prolog プログラムにし、 実行例を作成せよ。

  2. (Scheme)

    Scheme 言語をプリントで自習し、 サンプルプログラム以外の call/cc の使用例を WWW などで探して、 できれば自分なりのアレンジを加えよ。

  3. (Haskell)

    Haskell による画像作成ライブラリを用いて、 2, 3 のオリジナル作品を作成せよ。


解答上の注意ほか

できるだけ短く簡潔におさめて下さい。

提出〆切は、2月 23日(月)の 18:00 です。 提出場所は、香川のレターボックス(1 号館 7F 学科事務前)です。 (オンラインの提出はありません。)

B4/M2 など上記の締切までに提出するのが難しい人は、事前にメールで連絡を下さい。ただし、 事務への成績の提出締切が 2/27 ですので、それ以降の提出の場合は、成績訂正というかたちになります。 (成績表に反映されるのが遅れます。) その場合でも、2/23 及び 2/27 の時点でできたところまで、 部分提出してもらうことが望ましいです。


プログラミング言語特論のホームページ
Koji Kagawa