シラバス参照

講義概要/Course Information
2020/04/28 現在

科目基礎情報/General Information
授業科目名
/Course title (Japanese)
プログラム言語基礎論
英文授業科目名
/Course title (English)
Fundamentals of Programming Languages
科目番号
/Code
開講年度
/Academic year
2020年度 開講年次
/Year offered
全学年
開講学期
/Semester(s) offered
前学期 開講コース・課程
/Faculty offering the course
博士前期課程
授業の方法
/Teaching method
講義 単位数
/Credits
2
科目区分
/Category
大学院専門教育科目 - 専門科目Ⅰ
開講学科・専攻
/Cluster/Department
情報・ネットワーク工学専攻
担当教員名
/Lecturer(s)
岩崎 英哉
居室
/Office
西9-517
公開E-Mail
/e-mail
iwasaki __AT__ cs.uec.ac.jp (__AT__-> @)
授業関連Webページ
/Course website
なし
更新日
/Last updated
2020/03/25 12:38:16 更新状況
/Update status
公開中
/now open to public
講義情報/Course Description
主題および
達成目標
/Topic and goals
簡単な関数型言語を題材として,プログラミング言語の基礎概念,言語処理系の構成法について学ぶ.授業の到達目標は次の通りである.
(1) プログラミング言語の基本的な概念を理解する.
(2) 講義対象言語処理系の内容を理解し,処理系の簡単な拡張ができるようになる.

Main topics of this lecture are fundamental concepts of programming languages
and structures of programming language systems.
前もって履修
しておくべき科目
/Prerequisites
なし.

None.
前もって履修しておくこ
とが望ましい科目
/Recommended prerequisites and preparation
プログラミング関係およびオブジェクト指向関係の講義を履修しておくのが望ましい.

Lectures on programming and object-oriented systems.
教科書等
/Course textbooks and materials
プリントを配布する.

Handouts are distributed.
授業内容と
その進め方
/Course outline and weekly schedule
第1回:プログラミング言語,関数型言語と手続き型言語
第2回:関数型言語Haskellによるプログラミングの基本
第3回:変数と関数
第4回:式の評価と環境
第5回:評価戦略と遅延評価, 変数のスコープ
第6回:リスト
第7回:高階関数
第8回:代数データ型
第9回:簡単な関数型言語の構文とデータ構造
第10回:簡単な関数型言語のインタプリタ − 値呼び静的スコープの場合
第11回:簡単な関数型言語のインタプリタ − 値呼び動的スコープの場合
第12回:簡単な関数型言語のインタプリタ − 名前呼び静的スコープの場合
第13回:継続
第14回:継続渡し形式のインタプリタ
第15回:まとめ

1. Programming languages: functional languages and procedural languages.
2. Basics of programming in functional language Haskell.
3. Variables and functions.
4. Evaluation and environments.
5. Lazy evaluation and scope of variables.
6. Lists.
7. Higher-order functions.
8. Algebraic datatypes.
9. A tiny functional language.
10. Interpreter of a tiny functional languages: call by value and static scope.
11. Interpreter of a tiny functional languages: call by value and dynamic scope.
12. Interpreter of a tiny functional languages: call by name and static scope.
13. Continuations.
14. Continuation passing interpreter of a tiny functional language.
15. Summary.
実務経験を活かした
授業内容
(実務経験内容も含む)
/Course content utilizing practical experience
授業時間外の学習
(予習・復習等)
/Preparation and review outside class
配布プリントをよく復習すること

It is important to review properly.
成績評価方法
および評価基準
(最低達成基準を含む)
/Evaluation and grading
以下を総合して評価する
(1)小レポート(重み 1/2)(2)最終レポート(重み 1/2)
最低達成基準は次の通り.
(1) プログラミング言語の基本的な概念を理解する.
(2) 講義対象言語処理系の内容を理解し,処理系の簡単な拡張ができるようになる.

Evaluation is made on the basis of two reports assigned in the lecture.
オフィスアワー:
授業相談
/Office hours
電子メールで訪問日時を予約すること.

Make an appointment by e-mail.
学生へのメッセージ
/Message for students
計算機そのものを研究対象とする人にとっても,計算機を道具として使う人にとっても,プログラミング言語そのものに関する基本的な概念を理解し,プログラミング言語処理系内部における処理内容を知っていることは重要である.復習をしっかり進めていけば難しい内容ではない.

It is quite important for both those who specialize in computer systems and those
who use computers as tools to understand fundamental structure and interpretation
of computer programs.  This lecture is not difficult for those who review properly.
その他
/Others
なし

None
キーワード
/Keyword(s)
プログラミング言語,関数型言語,言語処理系

Programming Languages, Functional Programming, and Programming Language Systems.