답변:
백 슬래시는 다음 문자에 특별한 의미가 있음을 컴파일러 / 통역사에게 알리기 위해 마커 문자로 사용됩니다. 다음 캐릭터가 의미하는 것은 구현에 달려 있습니다. 예를 들어 C 스타일 언어는 \ n을 사용하여 줄 바꿈을 의미하고 \ t를 사용하여 탭을 의미합니다.
"탈출"이라는 단어를 사용한다는 것은 실제로 텍스트를 구문 분석하지 않고 후속 문자가 다르게 처리되는 다른 모드로 일시적으로 탈출하는 것을 의미합니다.
이스케이프 시퀀스는 대역 외 통신 개념과 공통점이 많습니다 .
또한 많은 터미널의 제어 시퀀스를 이끄는 ESC 또는 이전 5 비트 Baudot 코드의 레벨 시프트 표시기와 같이 사람들이 시프트 문자라고 부르는 통신을 설명하는 데 사용되기도합니다.
직렬 포트를 통해 파일 전송을하고 있고 다른 쪽 컴퓨터와 협상을한다고 가정 해 봅시다. "여기, 파일이 온다". 일반적인 경우 모든 문자가 유효한 파일 문자 (ASCII 파일 인 경우) 일 수 있으므로 몇 가지 문제가 있습니다.
컴퓨팅 역사의 다양한 사람들이이 문제를 해결하기 위해 다양한 방법을 구현했습니다.
프로그래밍 언어의 리터럴 문자열의 경우 비슷한 문제입니다. 첫 번째 인용문은 "문자열이 온다-다른 인용문을 얻을 때까지 읽기 시작"이라고 말합니다. 물론 따옴표 문자를 보내는 데 문제가있어서 슬래시 이스케이프 시퀀스를 발명했습니다. 슬래시와 따옴표가 보이면 문자열의 끝이 아닌 리터럴 따옴표입니다. 불행히도 방금 먹기 위해 거미를 삼켰습니다. 이제 문자 그대로 슬래시 따옴표 조합을 보낼 수 없기 때문입니다. 따라서 다른 슬래시로 슬래시를 피할 수 있습니다. 따라서 슬래시 슬래시는 슬래시를 의미하고 슬래시 따옴표는 따옴표를 의미합니다. 따라서 캐리지 리턴, 줄 바꿈, 탭 등과 같이 인쇄 할 수 없거나 인쇄하기 어려운 다른 문자에 슬래시를 사용할 수있었습니다.
파싱 컨텍스트 에서 탈출하여 (악당이 아닌) n
해석하는 n
것이 필요합니다 newline
.
그것에 대한 가장 흥미로운 차이점은 이스케이프 가 구문 분석 컨텍스트를 따옴표 문자 "
(또는 다른 많은 기호) 가하는 방식으로 전환하지 않고 다른 컨텍스트 (또는 다른 기호)가 "
이전 컨텍스트로 돌아갈 것을 요구한다는 것 입니다. 그들은 약간의 기분 전환을 겪지 만 최대한 빨리 도로로 돌아옵니다.
그러나 xml과 json이 출현 한 이래로 더 이상 파서를 작성하지 않는 것처럼 컨텍스트 구문 분석에 대해 더 이상 이야기하는 사람은 없습니다. 일부 문제는 주류가되는 것을 멈추고, 틈새 시장과 같은 이상한 틈새 개념으로 계속 남아 있습니다.