-
문법(Syntax)에 대하여컴공지식/프로그래밍언어론 2024. 9. 7. 01:16
문법에는 두 가지 타입이 있는데 구체적인(concrete) 문법과 추상적인(abstract) 문법이 있다.
Concrete Syntax(구체적인 문법)은 코드가 실제로 어떻게 쓰이는지에 대한 거다.
예를 들어 숫자 '3'과 '4'를 더할 때 여러 가지 표기법이 있다.
Infix (중위 표기법) : 3 + 4 로 우리가 가장 익숙한 표기법이다.
Postfix (후위 표기법) : 3 4 + 로 피연산자가 먼저 나오고 연산자가 나중에 나온다. 계산기 같은 데에서 쓰인다.
Prefix (전위 표기법) : + 3 4 로 연산자가 먼저 나오고 피연산자가 그 뒤에 온다.
Parenthesized prefix (괄호로 묶인 전위 표기법) : {+ 3 4} 로 전위 표기법에 괄호를 추가한 형태다.
내가 듣는 수업에서는 전위 표기법을 사용한다고 한다.. 이 점 기억해야겠다..
Abstract Syntax (추상적인 문법)은 코드가 어떤 구조로 표현되는지 보여주는 거다.
구체적인 표기와는 달리, 추상 문법은 코드의 본질적인 의미를 다루는 구조적인 표현이다.
여기서는 '3'과 '4'를 더하는 연산이 Add라는 연산자로 표현되고, 그 밑에 피연산자들인 Num 3과 Num 4가 있다.
즉, 추상 문법은 연산의 구조를 보여주는 거다.
'컴공지식 > 프로그래밍언어론' 카테고리의 다른 글
BNF (Backus-Naur Form)를 이용한 산술 표현에 대한 문법 (1) 2024.09.07 Semantics (의미론)에 대하여 (0) 2024.09.07 프로그래밍 언어의 구성 (0) 2024.09.07 OOP(객체 지향 프로그래밍)에서의 병렬 처리와 멀티스레딩 (0) 2024.09.02 프로그래밍 패러다임 (0) 2024.09.02