HNU CE 프로그래밍언어론 (2021년 1학기)
<start> ::= <center>
| <ab><center><ab>
<ab> ::= "a" | "b"
<center> ::= "c" | "d"
<Expr> ::= <Int> | <Name>
| <Expr> "+" <Expr>
<Int> ::= ... ... ...
<Name> ::= ... ... ...
data Expr
= Const Int
| Var Name
| Add Expr Expr
type Name = String
1 + (2 + 3)
1
2
3
+
+
문법분석
parsing
syntax analysis
1
2
3
+
+
프로그래밍언어의 의미를 표현하는 여러가지 방식의 의미론
컴파일러 정의에 적합
인터프리터 정의에 적합
eval σ e
=> v
eval [("x",3),("y",4)] (Var "x" `Add` Var "y")
=> 7