プログラミング言語設計論   Programming Language Design

文字サイズ 

担当教員
増原 英彦 
使用教室
金5-6(W832)  
単位数
講義:2  演習:0  実験:0
講義コード
75109
シラバス更新日
2015年9月25日
講義資料更新日
2016年1月10日
アクセス指標
学期
後期

講義概要

This course introduces linguistic features and mechanisms in programming languages, covering fundamentals ones to advanced and domain specific ones.

本講義はプログラミング言語の諸機能に関して、その基本および先進的な性質を解説する。

講義の目的

Modern programming languages offer various advanced linguistic features and mechanisms for productivity and safety. This course aim at understanding those features with respect to their historical background as well as benefits and drawbacks, which is useful to the users of the languages (i.e., programmers) as well as the designers of the languages.

近年のプログラミング言語には、様々な先進的な機能があり、プログラムの生産性や安全性に貢献している。そのような言語機能が作られた背景や、言語機能の持つ性質を理解することは、プログラミング言語を利用する(即ちプログラミングを行う)立場からも、プログラミング言語を作成する立場からも重要なものである。本講義は、そのような言語機能の背景と性質を理解することを目的とする。

講義計画

Each lecture starts with a short exam to understand the problems to be discussed.

1. Modularization, Parnas' principle, information hiding
2. Abstract data type, Liskov's substitution principle, interface and implementation
3. Object-oriented programming 1 (class, instance, encapsulation, inheritance)
4. Object-oriented programming 2 (delegation, multi-methods)
5. Reusability (library, framework, design patterns)
6. Multiple inheritance, traits
7. Aspect-oriented programming, crosscutting concerns, dependency injection
8. Feature-oriented programming, context-oriented programming
9. Type safety 1 (algebraic data types, subtypes, type inference)
10. Type safety 2 (polymorphic types, generic types, the expression problem, module types)
11. Metaprogramming, templates, macros
12. Metaobject protocols

各回の講義に先立って簡単なテストを行う。

1. モジュール化・Parnas原理・情報隠蔽
2. 抽象データ型・Liskov置換原則・インタフェースと実現
3. オブジェクト指向1 (クラス・インスタンス・カプセル化・継承)
4. オブジェクト指向2 (委譲・マルチメソッド)
5. 再利用性 (ライブラリとフレームワーク・デザインパターン)
6. 多重継承・traits
7. アスペクト指向・横断的関心事・Dependency injection
8. フィーチャ指向・文脈指向
9. 型安全性1 (代数データ型・部分型・型推論)
10. 型安全性2 (多層性・総称型・The Expression Problem・モジュール型)
11. メタプログラミング・テンプレート・マクロ
12. メタオブジェクトプロトコル

教科書・参考書等

None.
The slides will be distributed through OCW. (N.B. The slides are not self explanatory textbooks; they are intended to assist aural lectures.)

特になし。
講義で使用したスライドはOCWを通じて提供する。(ただしスライドは講義説明を補完するためのものであり、教科書として用いられることを意図していない。)

関連科目・履修の条件等

Basic knowledge on programming.

プログラミング言語についての基本的な知識を有すること。

成績評価

Report by the end of the term.

レポートによる。

担当教員の一言

The language for the aural lectures is Japanese. The lecture slide language is English for non-native Japanese speakers.

このページのトップへ