プログラミング言語論 2023

2023 年度 後期木曜日 2コマ・ 6405 教室
担当: 香川 考司
対象:  大学院・創発科学研究科/工学研究科

創発科学研究科の後期「プログラミング言語論—パラダイムと意味論」(シラバス のホームページです。 受講者はこのページを随時チェックするようにしてください。

現在

紹介スライド

連絡事項

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

配布物など

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

前半使用分

後半使用分

各週の内容

現在

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

過去

(← ここ以前の課題の開閉)

配布プリントに関するアンケート

(スタッフ専用) アンケート確認 (

第 01 週 10/05

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

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

紹介スライド,
1 章 「プログラミング言語の意味とは」,
2 章 「関数型言語 Haskell とは」(〜§ 2.2),
Haskell のダウンロード

課題に対する評価

第 02 週 10/12

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

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

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

課題に対する評価

第 03 週 10/19

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

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

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

課題に対する評価

第 04 週 10/26

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

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

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

課題に対する評価

第 05 週 11/02

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

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

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

課題に対する評価

第 06 週 11/09

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

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

2 章 「関数型言語 Haskell とは」(§ 2.12「リストの内包表記」〜 )、
A 章「Haskell のレイアウトルール」、
3 章「代数的データ型と型クラス」(〜 § 3.2 「型クラスとは」)

課題に対する評価

第 07 週 11/16

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

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

3 章「代数的データ型と型クラス」(§ 3.3 「Haskell の型クラス」〜)

課題に対する評価

11/23 は勤労感謝の日です。

第 08 週 11/30

着席位置

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

3 章「代数的データ型と型クラス」(§ 3.8 「型クラスとサブタイピング」〜)

中間テスト?

オンラインテスト問題 アップロード

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

中間テスト・ペーパーテスト問題中間テスト・解答例

第 09 週 12/07

12/07 は休講とします。補講は 12/14 の 5 校時に実施します。

第 10 週
第 09 週 12/14(Ⅱ 校時)

着席位置 課題 アップロード 配布プリントに関するアンケート

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

4 章「モナド」

課題に対する評価

第 10 週 12/14(Ⅴ 校時)

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

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

5 章「モナドと命令形言語の意味」

課題に対する評価

第 11 週 12/21

12/21 の授業は Zoom でも配信します。URL は DreamCampus を見てください。

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

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

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

問 P.3.1 の答
?- myappend([1,2], [3,4], Z0). 
  これに myappend([H1|X1], Y1, [H1|Z1]) :- myappend(X1, Y1, Z1). 
  H1=1, X1=[2], Y1=[3,4], Z0=[1|Z1] で適用できる 
?- myappend([2], [3,4], Z1). 
  これに myappend([H2|X2], Y2, [H2|Z2]) :- myappend(X2, Y2, Z2). 
  H2=2, X2=[], Y2=[3,4], Z1=[2|Z2] で適用できる  
?- myappend([], [3,4], Z2). 
  これに myappend([], Y3, Y3).  
  Y3=[3,4], Z2=[3,4] で適用できてゴール節が消える 
まとめると Z0 = [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,Z1), myconcat([[3,4,5],[6,7]],Zs1).
  ただし Xs=[1|Z1] 
?- myappend([],Zs1,Z2), myconcat([[3,4,5],[6,7]],Zs1).
  ただし Z1=[2|Z2] 
?- myconcat([[3,4,5],[6,7]],Zs1). ただし Z2=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] 

課題に対する評価

第 12 週 01/11

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

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

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

課題に対する評価

第 13 週 01/18

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

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

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

「プログラミング言語論」第 2 回レポート(2/15 締切)
問題を公開しています。

課題に対する評価

第 14 週 01/25

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

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

L 章「ラムダ計算」

課題に対する評価

第 15 週 02/01

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

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

課題に対する評価

現在

第 16 週 02/08(テスト)

6403 で実施(遠隔では受験できません。)

着席位置 オンラインテスト問題 アップロード

期末テスト・ペーパーテスト問題

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

今後

(← ここ以降の予定の開閉)

リンク


Koji Kagawa