빈 문자열

Empty string

형식 언어 이론에서 빈 문자열, 즉 빈 단어는 길이 0의 고유한 문자열이다.

형식론

형식적으로 문자열은 문자, 숫자 또는 공백과 같은 유한한 순서 문자열을 말한다.빈 문자열은 시퀀스의 길이가 0인 특수 케이스여서 문자열에는 기호가 없다.두 문자열은 길이가 다르거나 기호의 순서가 다른 경우에만 다르기 때문에 빈 문자열은 하나만 있다.형식적인 치료에서 빈 문자열은 ε으로 표시되거나 때로는 λ 또는 λ으로 표시된다.[1]

빈 문자열은 빈 문자열조차 포함하지 않는 정식 언어인 ∅(즉,문자열 집합)과 혼동해서는 안 된다.

빈 문자열에는 다음과 같은 여러 속성이 있다.

  • ε = 0.그것의 끈 길이는 0이다.
  • ε = s = s ε s = s.빈 문자열은 연결 작업의 ID 요소다.모든 현악의 집합은 and과 ε에 관하여 자유로운 단노이드를 형성한다.
  • εR = ε. 빈 문자열을 되돌리면 빈 문자열이 생성된다.
  • 빈 문자열은 사전순으로 다른 문자열보다 앞에 있는데, 이는 모든 문자열 중 가장 짧기 때문이다.[2]

문맥이 없는 문법에서는 기호가 빈 문자열을 만들 수 있도록 하는 생산규칙을 ε 생산이라고 하며, 기호는 "nullable"이라고 한다.

프로그래밍 언어에 사용

대부분의 프로그래밍 언어에서 문자열은 데이터 유형이다.문자열은 일반적으로 별개의 메모리 위치에 저장된다.이것은 같은 문자열(예: 빈 문자열)을 메모리의 두 곳 이상에 저장할 수 있다는 것을 의미한다.

이렇게 하면, 기억 속에 여러 개의 빈 문자열들이 있을 수 있는데, 그것은 오직 하나의 빈 문자열만이 있을 수 있는 형식 이론의 정의와 대조된다.그러나 문자열 비교 함수는 이 모든 빈 문자열들이 서로 동일하다는 것을 나타낼 것이다.

길이 0의 끈도 사용하는 형식에 따라 메모리가 필요할 수 있다.대부분의 프로그래밍 언어에서 빈 문자열은 null 참조(또는 null 포인터)와 구별된다. null 참조는 빈 문자열조차 가리키지 않기 때문이다.빈 문자열은 대부분의 문자열 연산이 작동해야 하는 합법적인 문자열이다.일부 언어는 빈 문자열, null 참조, 정수 0, 부동 소수점 번호 0, 부울 값 false, ASCII 문자 NUL 또는 기타 그러한 값의 일부 또는 전부를 유사한 방식으로 취급한다.

빈 문자열은 보통 다른 문자열과 비슷하게 표현된다.문자열 종료 문자(null-terminated 문자열 또는 일반 텍스트 줄)를 사용하는 구현에서 빈 문자열은 이 종료 문자를 즉시 사용하여 표시된다.

λ 대표성 프로그래밍 언어
"" C, C#, C++, Go, Haskell, Java, JavaScript, Julia, Lua, M, OCaml, Perl, PHP, Python, Ruby, Scala, Standard ML, Swift, Tcl, Visual Basic.네트
'' APL, Delphi, JavaScript, Matlab, Pascal, Perl, PHP, Python, Ruby, Smalltalk, SQL
{'\0'} C, C++, 목표-C(C 문자열)
std::string() C++
""s C++(2014년 표준 이후)
@"" 목표-C(상수로서)NSString목적어)
[NSString string] 목표-C(새로운 것으로)NSString목적어)
q(), qq()
str() 파이톤
%{}
%()
루비
string.Empty C#, Visual Basic.네트
String.make 0 '-' OCAML
{} Tcl
[[]] 루아

빈 문자열의 예

문자열은 (모든 베이스에서) 위치 표기법에서 0을 구문적으로 유효하게 표현한 것으로 선행 0을 포함하지 않는다.빈 문자열은 형식 언어 이론 이외의 표준 시각적 표현을 가지고 있지 않기 때문에, 숫자 0은 전통적으로 소수점 숫자 0으로 대신 표현된다.

0으로 채워진 메모리 영역은, null-terminated 문자열로 해석되어, 빈 문자열이다.

텍스트의 빈 행은 빈 문자열을 보여준다.이는 텍스트 파일에서 흔히 발생하는 것과 같이 연속적인 두 의 EOL에서 발생할 수 있으며, 이는 텍스트 처리에서 때로는 미디어위키에서와 같이 단락을 구분하는 데 사용된다.

참고 항목

참조

  1. ^ Corcoran, John; Frank, William; Maloney, Michael (1974). "String theory". Journal of Symbolic Logic. 39 (4): 625–637. doi:10.2307/2272846. JSTOR 2272846.
  2. ^ CSE1002 강의 노트 – 사전 편집