シラバス参照

講義概要/Course Information
2024/04/29 現在

科目基礎情報/General Information
授業科目名
/Course title (Japanese)
プログラム言語基礎論
英文授業科目名
/Course title (English)
Fundamentals of Programming Languages
科目番号
/Code
開講年度
/Academic year
2021年度 開講年次
/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
https://ipl.cs.uec.ac.jp/~iwasaki/lecture/pl2021/index.html (電気通信大学からのみアクセス可)
更新日
/Last update
2021/03/15 12:26:33 更新状況
/Update status
公開中
/now open to public
講義情報/Course Description
主題および
達成目標(2,000文字以内)
/Themes and goals(up to 2,000 letters)
簡単な関数型言語を題材として,プログラミング言語の基礎概念,言語処理系の構成法について学ぶ.授業の到達目標は次の通りである.
(1) プログラミング言語の基本的な概念を理解する.
(2) 講義対象言語処理系の内容を理解し,処理系の簡単な拡張ができるようになる.

Main topics of this lecture are fundamental concepts of programming languages
and structures of programming language systems.
前もって履修
しておくべき科目(1,000文字以内)
/Prerequisites(up to 1,000 letters)
なし.

None.
前もって履修しておくこ
とが望ましい科目(1,000文字以内)
/Recommended prerequisites and preparation(up to 1,000 letters)
プログラミング関係およびオブジェクト指向関係の講義を履修しておくのが望ましい.

Lectures on programming and object-oriented systems.
教科書等(1,000文字以内)
/Course textbooks and materials(up to 1,000 letters)
プリントを配布する.

Handouts are distributed.
授業内容と
その進め方(2,000文字以内)
/Course outline and weekly schedule(up to 2,000 letters)
授業内容

第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
授業時間外の学習
(予習・復習等)(1,000文字以内)
/Preparation and review outside class(up to 1,000 letters)
配布プリントをよく復習すること.特に,授業でとりあげたプログラムは,実際に動かして動作を確認すること.

It is important to review properly.  Especially, it is important to execute the programs presented in the lecture for a deeper understanding
成績評価方法
および評価基準
(最低達成基準を含む)
(1,000文字以内)
/Evaluation and grading
(up to 1,000 letters)
以下を総合して評価する
(1)(オンデマンド方式の場合) 毎回の確認テスト (2)中間レポート(3)最終レポート
最低達成基準は次の通り.
(1) プログラミング言語の基本的な概念を理解する.
(2) 講義対象言語処理系の内容を理解し,処理系の簡単な拡張ができるようになる.

Evaluation is made on the basis of the quiz in every lecture (in case of on-demand lectue) and two reports assigned in the lecture.
オフィスアワー:
授業相談(1,000文字以内)
/Office hours(up to 1,000 letters)
(オンデマンド方式の場合) WebClassの本講義の掲示板を利用するか,電子メールを用いること.

Use the forum system in WebClass (in case of on-demand lectue) or send a message by e-mail.
学生へのメッセージ(1,000文字以内)
/Message for students(up to 1,000 letters)
計算機そのものを研究対象とする人にとっても,計算機を道具として使う人にとっても,プログラミング言語そのものに関する基本的な概念を理解し,プログラミング言語処理系内部における処理内容を知っていることは重要である.復習をしっかり進めていけば難しい内容ではない.

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
キーワード
/Keywords
プログラミング言語,関数型言語,言語処理系

Programming Languages, Functional Programming, and Programming Language Systems.