-
BNF의 한계컴공지식/프로그래밍언어론 2024. 9. 8. 15:17
Linux에서는 공백을 허용하지 않는다.
예를 들어 다음과 같은 파일 이름이 있다고 해보자
filename with spaces and quotes 12.3.txt
우리가 BNF에 공백 문자("\"")를 정의해 놓아도 Linux는 이것을 6개의 식별자(identifier)로 본다.
근데 만약 escape 처리를 해놓으면 안전하게 공백을 처리할 수 있게 된다.
예를 들어 다음과 같이 말이다.
filename\ with\ spaces\ and\ quotes\ 12.3.txt
또한 BNF는 중복 처리적으로 한계가 있다.
예를 들어 다음과 같은 코드가 있다고 해보자
public public int x;
BNF 문법적으로 틀렸다고 하지는 않지만 실제로는 컴파일 오류가 난다..
BNF로는 이 중복 오류를 체크할 방법이 없다는 게 한계다.
'컴공지식 > 프로그래밍언어론' 카테고리의 다른 글
Arithmetic Expressions (AE)와 WAE (0) 2024.09.11 Inference Rules (추론 규칙) (0) 2024.09.11 왜 대부분의 프로그래밍 언어가 대체(substitution)기능을 지원하는가? (2) 2024.09.08 BNF로 산술 표현식 정의하기 (0) 2024.09.08 Ammonite란? (1) 2024.09.07