プログラミング言語論 2025

2025 年度 後期木曜日 2コマ・原則として遠隔(ペーパーテスト実施時は 6405 教室
担当: 香川 考司
対象:  大学院・創発科学研究科

創発科学研究科の第 3 Q「プログラミング言語論Ⅰ」(1 〜 8 週、シラバス)/ 第 4 Q「プログラミング言語論Ⅱ」(9 〜 16 週、シラバス) のホームページです。 受講者はこのページを随時チェックするようにしてください。

現在

紹介スライド

連絡事項

新しいものほど上に表示します。

配布物など

ここにリンクをはっていないファイルや、公開日前のファイルは 公開日までに変更する可能性があるので注意してください。

プログラミング言語論Ⅰ(前半)使用分

プログラミング言語論 Ⅱ(後半)使用分

各週の内容

現在

(管理者用) データの更新(同・管理者用) 管理用インデックスインデックス10月 11月 12月 01月 02月 )、

過去

これより以前はありません。

📁/📂(← ここ以前の課題の開閉)

第 01 週 10/02

「プログラミング言語論Ⅰ/Ⅱ」は原則として、遠隔で実施します。 この Teams のチャネルから、その日の日付の「会議」を授業時間(直前)になったらクリックしてください

紹介スライド,
1 章 「プログラミング言語論の概要」,

Haskell のダウンロード

着席位置 課題 アップロード

(スタッフ専用) 位置確認提出状況チェック表(10月分)

課題に対する評価

第 02 週 10/09

2 章 「関数型言語 Haskell とは」(§ 2.1 〜 § 2.4.1「基本的なデータ型と演算子」)

着席位置 課題 アップロード

(スタッフ専用) 位置確認提出状況チェック表(10月分)

課題に対する評価

第 03 週 10/16

2 章 「関数型言語 Haskell とは」( § 2.4.2 「リスト」 〜

着席位置 課題 アップロード

(スタッフ専用) 位置確認提出状況チェック表(10月分)

課題に対する評価

第 04 週 10/23

2 章 「関数型言語 Haskell とは」(§ 2.5「パターンマッチング」〜 § 2.8「関数の中置記法化」)

着席位置 課題 アップロード

(スタッフ専用) 位置確認提出状況チェック表(10月分)

課題に対する評価

10/30 は月曜振替日です。

第 05 週 11/06

2 章 「関数型言語 Haskell とは」(§ 2.9「部分適用とセクション」〜 § 2.12「リストの内包表記」)

着席位置 課題 アップロード

(スタッフ専用) 位置確認提出状況チェック表(11月分)

課題に対する評価

第 06 週 11/13

2 章 「関数型言語 Haskell とは」(§ 2.12「リストの内包表記」〜 )、
3 章「代数的データ型と型クラス」(〜 § 3.1「代数的データ型の定義」)

着席位置 課題 アップロード

(スタッフ専用) 位置確認提出状況チェック表(11 月分)表(レポート 1)

課題に対する評価

第 07 週 11/20

3 章「代数的データ型と型クラス」(§ 3.2 「型クラスとは」〜)

着席位置 課題アップロード

(スタッフ専用) 位置確認提出状況チェック表(11月分)

課題に対する評価

第 08 週 11/27

3 章「代数的データ型と型クラス」(§ 3.8 「型クラスとサブタイピング」〜)、 A 章「Haskell のレイアウトルール」、

着席位置

(スタッフ専用) 位置確認

第 3 Q 末テスト

オンラインテスト問題 (Online Questions, English vers.)、 アップロード (upload)

(スタッフ専用) 提出状況チェック

「プログラミング言語論Ⅰ」期末テスト解答例

ここからは「プログラミング言語論Ⅱ」

第 09 週 12/04

4 章「モナド」

着席位置 課題 アップロード

(スタッフ専用) 位置確認提出状況チェック表(12月分)

課題に対する評価

第 10 週 12/11

5 章「モナドと命令形言語の意味」、 U 章「ちっちゃな命令型言語 Util」、

着席位置 課題 アップロード

(スタッフ専用) 位置確認提出状況チェック表(12月分)

課題に対する評価

第 11 週 12/18

5 章「モナドと命令形言語の意味」(§ 5.5 〜)、 U 章「ちっちゃな命令型言語 Util」、 P 章「Prolog 超簡易入門」、 Try Prolog,

着席位置 課題 アップロード

(スタッフ専用) 位置確認提出状況チェック表(12月分)

課題に対する評価

第 12 週 01/08

5 章「モナドと命令形言語の意味」(§ 5.8 〜)、 P 章「Prolog 超簡易入門」、 6 章「接続」 (continuation)、 、

着席位置 課題 アップロード

(スタッフ専用) 位置確認提出状況チェック表(01月分)
問 P.3.1 の答
?- myappend([1,2], [3,4], Zs0). 
  これに myappend([H1|Xs1], Ys1, [H1|Zs1])
        :- myappend(Xs1, Ys1, Zs1). 
  H1=1, Xs1=[2], Ys1=[3,4], Zs0=[1|Zs1] で適用できて 
?- myappend([2], [3,4], Zs1). 
  これに myappend([H2|Xs2], Ys2, [H2|Zs2])
        :- myappend(Xs2, Ys2, Zs2). 
  H2=2, Xs2=[], Ys2=[3,4], Zs1=[2|Zs2] で適用できて  
?- myappend([], [3,4], Zs2). 
  これに myappend([], Ys3, Ys3).  
  Ys3=[3,4], Zs2=[3,4] で適用できてゴール節が消える 
まとめると Zs0 = [1|[2|[3,4]]] (= [1,2,3,4]) 
問 P.3.2 の答
?- myconcat([[1, 2], [3, 4, 5], [6, 7]], Xs). 
  これに ② が Xs1=[1,2], Xss1=[[3,4,5],[6,7]], Ys1=Xs
      で適用できて 
?- myappend([1,2],Zs1,Xs), myconcat([[3,4,5],[6,7]],Zs1). 
?- myappend([2],Zs1,Ws1), myconcat([[3,4,5],[6,7]],Zs1).
  ただし Xs=[1|Ws1] 
?- myappend([],Zs1,Ws2), myconcat([[3,4,5],[6,7]],Zs1).
  ただし Ws1=[2|Ws2] 
?- myconcat([[3,4,5],[6,7]],Zs1). ただし Ws2=Zs1 
まとめると Xs=[1|[2|Zs1]] 
?- myconcat([[6,7]],Zs2). ただし Zs1=[3|[4|[5|Zs2]]] 
 
?- myconcat([],Zs3). ただし Zs2=[6|[7|Zs3]] 
    これに対して ① が Zs3=[] で適用できゴール節が消える 
まとめると Xs=[1,2,3,4,5,6,7] 

課題に対する評価

第 13 週 01/22

6 章「接続」 (continuation)、 U 章「ちっちゃな命令型言語 Util」、 S 章「Scheme 超簡易入門」 同・空欄補間済版J 章「JavaScript 超簡易入門」(〜 § J.2)

着席位置 課題 アップロード

(スタッフ専用) 位置確認提出状況チェック表(01月分)

課題に対する評価

第 14 週 01/29

L 章「ラムダ計算」L 章の配布プリントを 12/23 に修正しました。12/23 以前にダウンロードした人は再ダウンロードしてください

01/29 は、オンデマンドで実施します。第 15 週 (02/05) の授業の前までに ラムダ計算のスライド を閲覧してください。

スライドの読み方のポイント

着席位置 課題 アップロード

(スタッフ専用) 位置確認提出状況チェック表(01月分)

課題に対する評価

第 15 週 02/05

J 章「JavaScript 超簡易入門」(§ J.3 〜) 7 章「Continuation-Passing Style (CPS)」、 7 章のプログラム

着席位置 課題 アップロード

また、まだの人は 1/29 の課題 もやってください。(2/10 23:59 まで締め切りを延長しました。)

(スタッフ専用) 位置確認提出状況チェック表(02 月分)表(レポート 2)

「プログラミング言語Ⅱ」レポート(2/19 締切)

課題に対する評価

現在

第 16 週 02/12(テスト)

「プログラミング言語論Ⅱ」の期末テストについて

今年度(2024 年度)は時間の都合で、第 L 章「ラムダ計算」を 十分説明しきれませんでしたので、テストでは、ラムダ計算を出題しません。その代わりに 第 4 章「モナド」から出題します。 (Q 4.4.1 あるいは、問 4.4.2 のような IO モナドに関する問題になる予定です。)

それに伴い、今年度はペーパー試験を実施せず、オンライン試験のみとします。 オンライン試験は遠隔からも受験可能とします。

昨年度の問題は 2024 年度「プログラミング言語論Ⅱ」の期末試験の問題を見てください。

02/12 の期末テストは、遠隔で実施します。必ず Teams の会議に参加してください。

着席位置 オンラインテスト問題 (Online Questions, English vers.) 、 アップロード

(スタッフ専用) 位置確認提出状況チェック

今後

📋/📂(← ここ以降の予定の開閉)

これ以降の予定はありません。🐻🐼

リンク


Koji Kagawa