シラバス参照 |
講義概要/Course Information |
科目基礎情報/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 |
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. |