授業科目名 : プログラミング言語

科目コード 90170
配当学年 2年
開講年度・開講期 平成30年度・後期
曜時限 月曜・2時限
講義室 総合研究7号館情報1
単位数 2
履修者制限
授業形態 講義
使用言語 日本語
担当教員    所属・職名・氏名 情報学研究科・教授・五十嵐淳

授業の概要・目的

プログラミング言語が提供する様々な抽象化機構や実行時システムについて,種々のプログラミング言語を比較しながらコンピュータサイエンスの立場から論じる.

成績評価の方法・観点及び達成度

数回のレポート課題と期末試験の成績を総合して評価する.

到達目標

プログラミング言語が提供する抽象化機構・実行時システムの各種概念について理解する.

授業計画と内容

項目 回数 内容説明
講義概要 1
オブジェクトによる抽象化 2 オブジェクトによる再帰的データ構造の表現、メソッドによるデータ構造の操作の実現について講述する。(キーワード: クラス、インターフェース、メソッド、ビジターパターン、永続的データ構造、短命データ構造)
関数による抽象化 4 関数型プログラミングについて概観したのち、代数的データ型による再帰的データ構造の表現、関数によるデータ構造操作の実現について講述する。(キーワード: 関数、代数的データ型、型推論、再帰と繰り返し)
情報隠蔽と型による抽象化 2 実装の詳細を隠す技術として、アクセス修飾子や、モジュールを使った抽象データ型について講述する。
続・型による抽象化 2 多相的データ型や、高階関数を使った抽象化について講述する。
低水準言語 3 Cなどのより低水準な言語でのデータ構造の実現例を通じて、メモリの抽象化について講述する。
学習到達度の確認 1

教科書

参考書等

John C. Mitchell. Concepts in Programming Languages. Cambridge University Press. 2003.
Daniel P. Friedman, Mitchell Wand. Essentials of Programming Languages (3rd ed.). The MIT Press. 2008.
他適宜講義中に紹介する

履修要件

「プログラミング入門」(第1学年前期配当,91240)と「アルゴリズムとデータ構造入門」(第1学年後期配当,91150)の受講を前提とする.

授業外学習(予習・復習)等

受講者は講義の復習を行うとともに、複数回のレポート作成が求められる。

授業URL

http://www.fos.kuis.kyoto-u.ac.jp/~igarashi/class/pl

その他(オフィスアワー等)

・当該年度の授業回数などに応じて一部省略,追加がありうる.