概要

プログラミング言語の基本概念を系統的に学習する。内容は、言語の計算メカニズム、方法論、適用分野などである。取り上げるプログラム言語は、手続き型、関数型、論理型、オブジェクト指向型などである。

学習・教育目標

プログラミング言語の違いを知る。各種プログラミング言語において用いられている基本概念を知る。各種プログラミング言語の適応対象を知る。

授業計画

講義内容
第 1 週 プログラミング言語とは: プログラミング言語の目的、構文と意味、変換、種類、プログラムのライフサイクル、プログラミング環境 、処理系の構成要素。
第 2〜3 週 基礎: 変数、式、手続き、関数、型、副作用、スコープ、環境、末尾再帰、eval、ゴミ集め、ラムダ計算、関数型言語。
第 4〜5 週 様々な言語1:論理型言語、節、ゴール、ユニフィケーション、探索、単一代入、Prolog 、バックトラック。
第 6〜8 週 モジュラリティと抽象化:モジュール、抽象データ型、オブジェクト指向、オブジェクト、メッセージ、クラス、インスタンス、インタフェースと実装、継承、デザインパターン。
第 9〜10 週 様々な言語2:スクリプト言語、用途、シェル、awk、Perl、Ruby 。発展的な話題、授業のまとめ。

教材・参考書等

教材
講義時に配布、または、本授業のweb pageを通じて配布する。
参考書
Concepts in Programming Languages, John C. Mitchell, Cambridge University Press, 2003.

成績評価

演習点および試験点の合計とする。

授業外の学習内容・方法

予習
対応する講義を、予習・復習を含めて受講する。昨年度の講義資料・課題を参照する。参考資料(シラバスに記載)を読む。
復習
課題レポートに不備があれば、それを自ら補う。参考資料に掲載されている課題を解く。例題や課題を応用したプログラムを作る。

予備知識・前提条件

コンピュータリテラシ、コンピュータリテラシ実習、 プログラミングI、プログラミング実習I、プログラミングII、プログラミング実習II、 コンピュータシステムとOS、 データ構造とアルゴリズム、データ構造とアルゴリズム実習、Webプログラミング。

講義のホームページ

http://www.iplab.cs.tsukuba.ac.jp/~shizuki/l/2013-2014/lang/

教員連絡先・オフィスアワー

志築文太郎:shizuki(a)cs.tsukuba.ac.jp
教員一覧ページ を参照。)