-
Arithmetic Expressions (AE)와 WAE컴공지식/프로그래밍언어론 2024. 9. 11. 15:27
산술 표현식(AE: Arithmetic Expressions)과 WAE (With Arithmetic Expressions)에 대해 설명해보겠다
AE는 가장 기본적인 산술 표현식이다.
덧셈과 뺄셈 같은 간단한 산술 연산을 나타낸다.
AE의 기본 요소는 다음과 같다.
1. 숫자(Num): AE의 가장 기본적인 표현식은 숫자다. 예를 들어 5, 10 같은 값이다. 이를 추상 문법에서는 Num(5), Num(10)과 같이 표현할 수 있다.
2. 덧셈(Add): 두 개의 표현식을 더하는 연산이다. 예를 들어 {+ 5 3}은 5 + 3을 의미한다. 이를 추상 문법으로는 Add(Num(5), Num(3))로 나타낼 수 있다.
3. 뺄셈(Sub): 두 개의 표현식을 빼는 연산이다.
WAE는 with 구문을 도입해서, 변수를 사용하여 값을 저장하고 재사용할 수 있게 확장된 산술 표현식이다.
WAE의 핵심은 with 구문이다.
with는 특정 식별자(변수) 에 값을 할당하고, 그 값을 나중에 사용할 수 있게 만든다.
예를 들어 with {x 10} {+ x x} 는 x에 10을 할당한 후 x + x를 계산하는 거다. 이 경우 결과는 10 + 10이니까 20이 된다.
WAE는 BNF로 문법을 정의할 수 있다.
<Expr> ::= <num>
| {+ <Expr> <Expr>}
| {- <Expr> <Expr>}
| {with <id> <Expr> <Expr>}
| <id><id>는 식별자다.
{with <id> <Expr> <Expr>}는 <id>에 <Expr> 을 할당하고 그 값을 이용해서 두 번째 <Expr> 을 계산한다.
'컴공지식 > 프로그래밍언어론' 카테고리의 다른 글
BNF로 식별자 정의하기 (0) 2024.09.11 Bound and Free Identifiers (바운드/자유 식별자) (0) 2024.09.11 Inference Rules (추론 규칙) (0) 2024.09.11 BNF의 한계 (0) 2024.09.08 왜 대부분의 프로그래밍 언어가 대체(substitution)기능을 지원하는가? (2) 2024.09.08