Jump to content

Empty string

This is a fully translated article. Click here for more information.
From DawoumWiki, the free Mathematics self-learning

형식적 언어 이론(formal language theory)에서, 빈 문자열(empty string), 또는 빈 단어(empty word)는 길이 영의 고유한 문자열(string)입니다.

Formal theory

형식적으로, 문자열은 글자, 자릿수, 또는 공백과 같은 유한, 순서화된 문자(characters)의 수열입니다. 빈 문자열은 수열이 길이 영을 가지는 특수한 경우이므로, 문자열에서 기호가 없습니다. 두 문자열은 만약 그것들이 다른 길이를 가지거나 다른 기호의 수열을 가질 때 오직 다르기 때문에 빈 문자열은 유일한 하나가 있습니다. 형식적 처리에서,[1] 빈 문자열은 ε 또는 때때로 Λ 또는 λ로 표시됩니다.

빈 문자열은 빈 언어 와 혼동되어서는 안되며, 빈 언어는 문자열을 포함하지 않는, 심지어 빈 문자열도 포함하지 않는 형식적 언어(formal language) (즉, 문자열 집합)입니다.

빈 문자열은 여러 속성을 가집니다:

문맥-자유 문법(context-free grammar)에서, 빈 문자열을 생성하기 위한 기호(symbol)를 허용하는 생성 규칙(production rule)은 ε-생성으로 알려져 있고, 그 기호를 "널-가능(nullable)"이라고 말합니다.

Use in programming languages

대부분의 프로그래밍 언어에서, 문자열은 데이터 유형(data type)입니다. 문자열은 전형적으로 구별되는 메모리 위치(memory locations)에 저장됩니다. 이것은 같은 문자열 (예를 들어, 빈 문자열)이 메모리에서 둘 이상의 위치에 저장될 수 있음을 의미합니다.

이런 방법으로 오직 하나의 가능한 빈 문자열이 있는 형식적 이론 정의와 달리, 메모리에 여러 빈 문자열이 있을 수 있습니다. 어쨌든, 문자열 비교 함수는 모든 이들 빈 문자열이 서로 같음을 나타냅니다.

심지어 길이 영의 문자열은 사용되는 형식에 따라 그것을 저장하기 위한 메모리를 요구할 수 있습니다. 대부분의 프로그래밍 언어에서, 빈 문자열은 널 참조(null reference) (또는 널 포인터)와 구별되는데 왜냐하면 널 참조는 임의의 문자열을 가리키지 않고, 심지어 빈 문자열도 가리키지 않기 때문입니다. 빈 문자열은 대부분의 문자열 연산이 작동해야 하는 정당한 문자열입니다. 일부 언어는 빈 문자열, 널 참조, 정수 0, 부동 점 숫자 0, 부울 값 거짓(false), 아스키 문자 NUL, 또는 기타 이러한 값 중 일부 또는 전체를 유사한 방식으로 처리합니다.

빈 문자열은 보통 다른 문자열과 유사하게 표시됩니다. 문자열 종료 문자 (널-종료된 문자열(null-terminated string) 또는 일반 텍스트 줄)을 갖는 구현에서, 빈 문자열은 이 종료하는 문자의 즉시 사용에 의해 표시됩니다.

λ representation Programming languages
"" C, C#, C++, Go, Haskell, Java, JavaScript, Julia, Lua, M, Objective-C (as a C string), OCaml, Perl, PHP, Python, Ruby, Scala, Standard ML, Swift, Tcl, Visual Basic .NET
'' APL, Delphi, JavaScript, Matlab, Pascal, Perl, PHP, Python, Ruby, Smalltalk, SQL
{'\0'} C, C++, Objective-C (as a C string)
std::string() C++
""s C++ (since the 2014 standard)
@"" Objective-C (as a constant NSString object)
[NSString string] Objective-C (as a new NSString object)
q(), qq() Perl
str() Python
%{}
%()
Ruby
string.Empty C#, Visual Basic .NET
String.make 0 '-' OCaml
{} Tcl
[[]] Lua

Examples of empty strings

빈 문자열은 선행하는 영(leading zero)을 포함하지 않는 (임의의 밑수에서) 위치 표기법(positional notation)에서 구문적으로 유효한 영(zero)의 표현입니다. 빈 문자열은 형식적 언어 이론 외부의 표준 시각적 표현을 가지지 않기 때문에, 숫자 영은 전통적으로 대신 하나의 십진 자릿수(decimal digit) 0에 의해 표현됩니다.

널-종료된 문자열(null-terminated string)로 해석되는 영-채워진 메모리 영역은 빈 문자열입니다.

텍스트의 빈 줄은 빈 문자열을 보여줍니다. 이것은 텍스트 파일(text file)에서 종종 발생하는 것처럼 둘의 연속적인 EOL에서 발생할 수 있고, 이것은 때때로 단락(paragraph)을 분리하기 위해, 예를 들어 미디어위키에서 텍스트 처리(text processing)에 사용됩니다.

See also

References

  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 Lecture Notes – Lexicographic