i217 Functional Programming 

Lecturers: OGATA, Kazuhiro (email: ogata at jaist dot ac dot jp) and DO, Canh Minh (email: canhdo at jaist dot ac dot jp)
Term 1-2 (Jun 12 - Jul 31), 2024

Contents:
News
How to tackle
Exam
Assignments
Class schedule (lecture notes)
A programming language Minila (used at 8th, 9th & 10th classes)
Links


News

- Juy 01: Insetad of the link on p.34 of lecture note 5, please use this link (embedded).
- June 11: NO PLAGIARISM. Plagiarism is strongly prohibited. Do not plagiarize any pieces of programs and/or reports written by others, and do no let others plagiarize any pieces of programs and/or reports written by you. If the lecturers find any pieces of  plagiarism in submitted programs and/or reports, they will formally process the plagiarism. The students who have been involved in the plagiarism will never succeed in taking the credits of the course and moreover may be seriously punished.
- June 11: NOTE that CafeOBJ System Version 1.6.1 is used in this course. Please download it from
here and install it on your laptop. Please consult here on how to install CafeOBJ. Please bring your computer with you at each class.
- June 11
: This website was open.


How to tackle

For each class, learn the lecture note in advance, solve the exercises found in the lecture note, clarify what you have not understood and attend the class. At the class, ask the lecturer about what you have not understood to get better understandings of them. After the class, solve the exercises you have not solved to confirm your understandings. Solving the exercises is part of the assignments, and then you are supposed to do so if you want to get the credits of the course. Programs used in the course are not to be given intentionally but required to be typed by each participant, which is part of the exercises. Please read
this in advance.


Exam


11:50-12:30, July 30, Tuesday


Assignment

Part of the exercises found in the lecture notes are the assignment problems. The details, such as the submission deadine, will be described at classes.


Class schedule (lecture notes)

9:00-11:40, June 13, Thursday
1. Sorts, Operators, Terms and Equations (
lecture note 1)
Submission deadline of HW1: Midnight of June 24 (JST)

11:50-12:30, June 18, Tuesday
2. Modules, Order Sorts and Lists of Natural Numbers (
lecture note 2)
Submission deadline of HW2: Midnight of July 1 (JST)

9:00 - 11:40, June 20, Thursday
3. Tern Rewriting (
lecture note 3)
Submission deadline of HW3: Midnigt of July 1 (JST)

13:30-15:10, June 20, Thursday
Tutorial Hour (for lecture note 3)

11:50-12:30, June 25, Tuesday
4. Parametrized Modules (
lecture note 4)
Submission deadline of HW4: Midnigt of July 8 (JST)

9:00 - 11:40, June 27, Thursday
5. Tables (
lecture note 5
Submission deadline of HW5: Midnigt of July 8 (JST)

11:50-12:30, July 2, Tuesday
6. Infinite Lists (
lecture note 6)
Submission deadline of HW6: Midnigt of July 15 (JST)


9:00 - 11:40, July 4, Thursday
7. Multisets (
lecture note 7)
Submission deadline of HW7: Midnigt of July 15 (JST)

11:50-12:30, July 9, Tuesday
8. A Programming Language Processor - Interpreter (
lecture note 8)

9:00 - 11:40, July 11, Thursday
9. A Programming Language Processor - Virtual Machine (
lecture note 9)

13:30-15:10, July 11, Thursday (The 10th class will be held for 13:30-15:10 on July 11)
10. A Programming Language Processor - Compiler (
lecture note 10)
Submission deadline of HW8, 9, and 10: Midnigt of July 23 Aug 26 (JST)

11:50-12:30, July 16, Tuesday
11. Program Verification - Natural Numbers (
lecture note 11)
Submission deadline of HW11: Midnight of July 30 Aug 26 (JST)

9:00 - 11:40, July 18, Thursday
12. Pregram Verification - Lists (
lecture note 12)
Submission deadline of HW12: Midnight of July 30 Aug 26 (JST)

11:50-12:30, July 23, Tuesday
13. Verification of Arithmetic Caclulator Compiler (
lecture note 13)
Submission deadline of HW13: Midnight of Aug 6 Aug 26 (JST)

9:00 - 11:40, July 25, Thursday
14. Proof Assistant (
lecture note 14)
Submission deadline of HW14: Midnight of Aug 6 Aug 26 (JST)

13:30-15:10, July 25, Thursday
Tutorial Hour (for Exam)

11:50-12:30, July 30, Tuesday
Exam


A Programming Language Minila (used at 8th, 9th & 10th classes)

ast.cafe
misc.cafe
interpreter.cafe
vm.cafe
compiler.cafe


Links

CafeOBJ


Jun 11, 2024 by K. Ogata