Skip to content

Commit

Permalink
Add recent courses
Browse files Browse the repository at this point in the history
  • Loading branch information
henrylee97 committed Sep 8, 2023
1 parent 789b9e9 commit 4d2f687
Show file tree
Hide file tree
Showing 50 changed files with 167 additions and 16 deletions.
15 changes: 0 additions & 15 deletions archetypes/courses.md

This file was deleted.

10 changes: 9 additions & 1 deletion content/courses/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,12 @@ menu = 'main'
weight = 60
+++

# Courses
## 2023 Spring

- [COSE 312: Compilers](https://github.com/kupl-courses/COSE312-2023spring)
- [AAA 616: Program Analysis](https://github.com/kupl-courses/AAA528-2023spring)

## 2022 Fall

- [COSE 212: Programming Languages]({{< relref "cose212/2022/_index.md" >}})
- [AAA 616: Program Analysis]({{< relref "aaa616/2022/_index.md" >}})
31 changes: 31 additions & 0 deletions content/courses/aaa616/2022/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
+++
draft = false
title = 'AAA616-22F'
+++

# Program Analysis, 2022 Fall

## Course Information

- Instructor: [Hakjoo Oh]({{< ref "/members/hakjoo-oh.md" >}})
- [Syllabus](./syllabus.pdf)

## Slides

- [Lecture 0: Program Analysis Overview](./slides/lecture0-overview.pdf)
- [Lecture 1: Preliminaries](./slides/lec1.pdf)
- [Lecture 2: Operational Semantics](./slides/lec2.pdf)
- [Lecture 3: Denotational Semantics](./slides/lec3.pdf)
- [Lecture 4: Introduction to Static Analysis](./slides/lec4.pdf)
- [Lecture 5: Abstract Interpretation Framework](./slides/lec5.pdf)
- [Lecture 6: Abstract Interpretation Example (1)](./slides/lec6.pdf)
- [Lecture 7: Abstract Interpretation Example (2)](./slides/lec7.pdf)
- [Lecture 8: Pointer Analysis](./slides/lec8.pdf)
- [Lecture 9: Control-Flow Analysis](./slides/lec9.pdf)
- [Lecture 10: Data-Flow Analysis](./slides/lec10.pdf)

## Homework

- [HW1: Interval Analysis](./homeworks/hw1.pdf)
- [HW2: Interval/Pointer Analysis](./homeworks/hw2.pdf)
- [HW3: Control-Flow Analysis](./homeworks/hw3.pdf)
Binary file added content/courses/aaa616/2022/homeworks/hw1.pdf
Binary file not shown.
Binary file added content/courses/aaa616/2022/homeworks/hw2.pdf
Binary file not shown.
Binary file added content/courses/aaa616/2022/homeworks/hw3.pdf
Binary file not shown.
Binary file added content/courses/aaa616/2022/slides/lec1.pdf
Binary file not shown.
Binary file added content/courses/aaa616/2022/slides/lec10.pdf
Binary file not shown.
Binary file added content/courses/aaa616/2022/slides/lec2.pdf
Binary file not shown.
Binary file added content/courses/aaa616/2022/slides/lec3.pdf
Binary file not shown.
Binary file added content/courses/aaa616/2022/slides/lec4.pdf
Binary file not shown.
Binary file added content/courses/aaa616/2022/slides/lec5.pdf
Binary file not shown.
Binary file added content/courses/aaa616/2022/slides/lec6.pdf
Binary file not shown.
Binary file added content/courses/aaa616/2022/slides/lec7.pdf
Binary file not shown.
Binary file added content/courses/aaa616/2022/slides/lec8.pdf
Binary file not shown.
Binary file added content/courses/aaa616/2022/slides/lec9.pdf
Binary file not shown.
Binary file not shown.
Binary file added content/courses/aaa616/2022/syllabus.pdf
Binary file not shown.
49 changes: 49 additions & 0 deletions content/courses/cose212/2022/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
+++
draft = false
title = 'COSE212-22F'
+++

# Programming Languages, 2022 Fall

## Course Information

- Instructor: [Hakjoo Oh]({{< ref "/members/hakjoo-oh.md" >}})
- TAs: Minseok Jeon, Seokhyun Lee
- Lecture: 09:00-11:45 on Tuesdays and Thursdays (8 weeks)
- [Syllabus](./syllabus.pdf)

## References

- [프로그래밍 언어의 원리](./pl-book.pdf)
- [Essentials of Programming Languages](http://www.amazon.com/gp/product/0262062798?ie=UTF8&tag=ucmbread-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=0262062798)
- [Notes on Programming Languages (in Korean)](./pl-book-draft.pdf)

## Slides

- Course Overview: [lec0.pdf](./slides/lec0.pdf)
- (Part 1) Preliminaries
- Inductive Definitions: [lec1.pdf](./slides/lec1.pdf), [lec2.pdf](./slides/lec2.pdf)
- Functional Programming: [lec3.pdf](./slides/lec3.pdf), [lec4.pdf](./slides/lec4.pdf)
- (Part 2) Basic Concepts
- Expressions: [lec5.pdf](./slides/lec5.pdf), [code](./slides/let.ml)
- Procedures: [lec6.pdf](./slides/lec6.pdf)
- Lexical scoping: [lec7.pdf](./slides/lec7.pdf)
- States: [lec8.pdf](./slides/lec8.pdf)
- Records, Pointers, and garbage collection: [lec9.pdf](./slides/lec9.pdf)
- (Part 3) Advanced Concepts
- Introduction to program analysis: [lec10a.pdf](./slides/lec10a.pdf)
- Static Type System: [lec10.pdf](./slides/lec10.pdf), [lec11.pdf](./slides/lec11.pdf), [lec12.pdf](./slides/lec12.pdf)
- Automatic Type Inference: [lec13.pdf](./slides/lec13.pdf), [lec14.pdf](./slides/lec14.pdf), [lec15.pdf](./slides/lec15.pdf)
- Polymorphic Type System: [lec16.pdf](./slides/lec16.pdf)
- Lambda Calculus: [lec17.pdf](./slides/lec17.pdf)
- Course Review: [lec18.pdf](./slides/lec18.pdf)

## Homework

- **[TryML: System for programming assignments](https://tryml.korea.ac.kr/)**
- **[How to use TryML](./homeworks//howtohw.pdf)**
- Homework 1 (Functional Programming 1) [hw1.pdf](./homeworks/hw1.pdf)
- Homework 2 (Functional Programming 2) [hw2.pdf](./homeworks/hw2.pdf)
- Homework 3 (Interpreter for Functional Language) [hw3.pdf](./homeworks/hw3.pdf)
- Homework 4 (Interpreter for Imperative Language) [hw4.pdf](./homeworks/hw4.pdf)
- Homework 5 (Static Type System) [hw5.pdf](./homeworks/hw5.pdf)
Binary file not shown.
Binary file added content/courses/cose212/2022/homeworks/hw1.pdf
Binary file not shown.
Binary file added content/courses/cose212/2022/homeworks/hw2.pdf
Binary file not shown.
Binary file added content/courses/cose212/2022/homeworks/hw3.pdf
Binary file not shown.
Binary file added content/courses/cose212/2022/homeworks/hw4.pdf
Binary file not shown.
Binary file added content/courses/cose212/2022/homeworks/hw5.pdf
Binary file not shown.
Binary file added content/courses/cose212/2022/pl-book-draft.pdf
Binary file not shown.
Binary file added content/courses/cose212/2022/pl-book.pdf
Binary file not shown.
Binary file added content/courses/cose212/2022/slides/lec0.pdf
Binary file not shown.
Binary file added content/courses/cose212/2022/slides/lec1.pdf
Binary file not shown.
Binary file added content/courses/cose212/2022/slides/lec10.pdf
Binary file not shown.
Binary file added content/courses/cose212/2022/slides/lec10a.pdf
Binary file not shown.
Binary file added content/courses/cose212/2022/slides/lec11.pdf
Binary file not shown.
Binary file added content/courses/cose212/2022/slides/lec12.pdf
Binary file not shown.
Binary file added content/courses/cose212/2022/slides/lec13.pdf
Binary file not shown.
Binary file added content/courses/cose212/2022/slides/lec14.pdf
Binary file not shown.
Binary file added content/courses/cose212/2022/slides/lec15.pdf
Binary file not shown.
Binary file added content/courses/cose212/2022/slides/lec16.pdf
Binary file not shown.
Binary file added content/courses/cose212/2022/slides/lec17.pdf
Binary file not shown.
Binary file added content/courses/cose212/2022/slides/lec18.pdf
Binary file not shown.
Binary file added content/courses/cose212/2022/slides/lec2.pdf
Binary file not shown.
Binary file added content/courses/cose212/2022/slides/lec3.pdf
Binary file not shown.
Binary file added content/courses/cose212/2022/slides/lec4.pdf
Binary file not shown.
Binary file added content/courses/cose212/2022/slides/lec5.pdf
Binary file not shown.
Binary file added content/courses/cose212/2022/slides/lec6.pdf
Binary file not shown.
Binary file added content/courses/cose212/2022/slides/lec7.pdf
Binary file not shown.
Binary file added content/courses/cose212/2022/slides/lec8.pdf
Binary file not shown.
Binary file added content/courses/cose212/2022/slides/lec9.pdf
Binary file not shown.
77 changes: 77 additions & 0 deletions content/courses/cose212/2022/slides/let.ml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
(*
1. store this file as a file (e.g. "let.ml")
2. type "ocaml let.ml" in the shell command line
*)

type pgm = exp
and exp =
| CONST of int
| VAR of string
| ADD of exp * exp
| SUB of exp * exp
| ISZERO of exp
| IF of exp * exp * exp
| LET of string * exp * exp
| READ

(*
let x = 1 in
let y = let x = 2
in x + x
in x + y
*)
let pgm1 =
LET ("x", CONST 1,
LET ("y", LET ("x", CONST 2,
ADD (VAR "x", VAR "x")),
(ADD (VAR "x", VAR "y"))))

type value = Int of int | Bool of bool

module Env = struct
type t = (string * value) list
let empty = []
let rec lookup x e =
match e with
| [] -> raise (Failure ("Env: Not found: " ^ x))
| (y,v)::tl ->
if y = x then v else lookup x tl
let update x v e = (x,v)::e
end

let rec eval : Env.t -> exp -> value
=fun env exp ->
match exp with
| CONST n -> Int n
| VAR x -> Env.lookup x env
| ADD (e1, e2) -> binop env e1 e2 (+)
| SUB (e1, e2) -> binop env e1 e2 (-)
| READ -> Int (read_int ())
| ISZERO e ->
(match eval env e with
| Int 0 -> Bool true
| Int _ -> Bool false
| _ -> raise (Failure "type error"))
| IF (e1,e2,e3) ->
(match eval env e1 with
| Bool true -> eval env e2
| Bool false -> eval env e3
| _ -> raise (Failure "type error"))
| LET (x,e1,e2) ->
let v1 = eval env e1 in
let v = eval (Env.update x v1 env) e2 in
v

and binop env e1 e2 op =
let v1 = eval env e1 in
let v2 = eval env e2 in
match v1, v2 with
| Int n1, Int n2 -> Int (op n1 n2)
| _ -> raise (Failure ("type error"))

let print_value v =
print_endline (match v with
| Int n -> string_of_int n
| Bool b -> string_of_bool b)

let _ = print_value (eval Env.empty pgm1)
Binary file added content/courses/cose212/2022/syllabus.pdf
Binary file not shown.
1 change: 1 addition & 0 deletions layouts/partials/hook/link.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@
href="{{ .dest | safeURL }}"
{{ with .title }} title="{{ . }}"{{ end }}
{{ if or (strings.HasPrefix .dest "http") (strings.HasSuffix .dest ".pdf") }} target="_blank" rel="noopener" {{ end }}
{{ if strings.HasSuffix .dest ".ml" }} download {{ end }}
>{{ .text | safeHTML }}</a>

0 comments on commit 4d2f687

Please sign in to comment.