Programing

'문자열'의 정의 뒤에 숨겨진 역사

lottogame 2020. 11. 12. 07:42
반응형

'문자열'의 정의 뒤에 숨겨진 역사


나는 최근까지 생각해 본 적이 없지만 왜 우리가 strings라고 부르는지 모르겠습니다 strings. 저는 .NET 프로그래머이지만 문자열의 개념이 거의 모든 프로그래밍 언어에 존재한다고 믿습니다.

프로그래밍 외에는 string단어 나 문자를 설명하는 데 사용되는 단어를 들어 본 적이 없다고 생각 합니다. 'Define : string'이라는 빠른 Google은 문자, 단어 또는 프로그래밍과 관련된 자연의 개념과 관련이없는 많은 정의를 생성합니다.

내 추측으로는, 예전에는 문자열이 특정 길이의 문자 배열 일 뿐이며 종종 끝에 구분 문자가 있다는 것입니다. 그러나 '문자 배열'에서 string.

누군가 우리가 문자열이라고 부르는 이유에 대한 통찰력을 제공 할 수 있습니까 strings?


에서 참조 :

1971 년 OED (p. 3097)는 1898 년 1 월 11 일 Milwaukee Sentinel의 출처에서 1891 Century Dictionary (섹션 3, p. 1)를 인용하여 이것이 합성 자의 용어라는 효과를 나타냅니다. 프린터는 생성 한 텍스트를 긴 문자로 붙여 넣습니다. (아마도 그들은 단어가 아니라 발로 지불되었습니다!) 인용문은 합성자가 시간당 1500 (문자?) 이상을 만드는 것이 드문 일이 아니라고 말합니다.


내 가정은 항상 프로그래밍 용어가 다음과 같은 "문자열"이라는 단어의 정의 (Merriam-Webster에서 온)에서 비롯된 것입니다.

(1) : 일련의 것들이 또는 마치 한 줄에 배열 된 것처럼 <자동차 문자열> <이름 문자열>

(2) : 유사한 항목의 시퀀스 (비트, 문자 또는 단어)

프로그래밍에서 문자열은 단순히 순서가 지정된 문자 시퀀스이므로이를 "문자열"(또는 단순히 "문자열")이라고 부르는 것이 가장 가능성이 높은 출처 인 것처럼 보입니다.


ACM 서지 검색을 통해 문자열이라는 단어는 1960 년대 컴퓨터 과학에서 그 의미를 얻은 것 같습니다. 처음에 문자열은 일반적인 종류의 시퀀스 또는 목록입니다. 예를 들어 1958 년부터 기호 문자열을 처리하는 명령 언어입니다 .

이 기사에서는 1964 년에 "문자열"을 명시 적으로 언급합니다.

안타깝게도 요금소 뒤에있는 전체 텍스트에 액세스 할 수 없습니다.


나는 "문자열"이 프로그래밍 언어에 채택되기 오래 전부터 수학자들이 사용하고 있다고 생각했습니다. 튜링 기계는 현에서 효과적으로 작동합니다. Turing은이 용어를 사용하지 않았을 수 있지만 수십 년 전부터 자동 교과서의 모든 곳에서 사용되었습니다.

내가 찾을 수있는 가장 초기의 참조는 AMS 게시판의 논리 학자 Emil Post가 작성한 1944 년 Google 책의 "재귀 적으로 열거 가능한 양의 정수 집합과 그 결정 문제"기사의 일부였습니다. 다행히 AMS는 전체 기사의 온라인 아카이브를 무료로 다운로드 할 수 있습니다. 링크 : http://www.ams.org/journals/bull/1944-50-05/S0002-9904-1944-08111-1/S0002-9904-1944-08111-1.pdf

나는 그가 컴퓨터 과학에서 사용되는 관습적인 의미에서 "끈"을 사용하고 있다는 것은 의심의 여지가 없다고 생각한다. P. 286 "작업 목적을 위해 우리는 문자 b를 소개하고 11b1bb1과 같은 1과 b의"문자열 "을 고려합니다."b1bP와 같은 문자열에 대한 작업은 P1bb1을 생성합니다. "우리는 정상적인 작업이라고합니다. 연산은 b1b로 시작하는 문자열에만 적용되며, 파생 된 문자열은 먼저 초기 b1b를 제거한 다음 끝에 1bb1을 추가하여 주어진 문자열에서 얻습니다. 따라서 b1bb는 b1bb1이됩니다. "


원래는 일련의 데이터 값을 의미 했기 때문 이라고 생각string 합니다. "나는 이들을 함께 묶을 것입니다"등. 이러한 값은 문자 일 필요가 없었습니다. 이 일반적인 개념에 대한 매우 일반적인 용도 중 하나는 문자 시퀀스였으며, 이것이 단어의 일반적인 의미를 대신했습니다.


내가 컴퓨팅에서 찾을 수있는 가장 빠른 참조는 1963 년 3 월의 METEOR : A LISP Interpreter for String Transformations by Daniel G. Bobrow at MIT 's AI Labs입니다.

그러나 정의 15d. 옥스포드 영어 사전 입니다 :

컴퓨팅 레코드 또는 데이터의 선형 시퀀스입니다.

... 그리고 1956 년 전산 기계 협회 저널의 첫 인용문 :

영역은 완전히 정렬 된 시퀀스를 얻을 때까지 제어 필드의 문자열을 앞뒤로 이동하기 위해 따로 설정됩니다.

이 사용은 정의 15c에서 자연스럽게 이어집니다. :

수학. , etc. 명확한 순서로 된 일련의 기호 또는 언어 요소.

... 그리고 Clarence Irving Lewis와 Cooper Harold LangfordSymbolic Logic (1932) 에서 처음 사용되었습니다 .

명제는 부수적 인 경우를 제외하고는 일련의 마크 나 일련의 소리가 아닙니다.

이것은 차례로 한 줄의 사물에 대한 훨씬 이전의 많은 다른 정의에서 이어집니다.


이 단어는 원래 요소의 특정 순서가 중요하지 않은 값 집합 (예 : 임의의 측정 샘플 집합)과 순서도 보존 될 때 의미 만 보존 될 수있는 값 집합을 구분하는 데 사용되었습니다. . 원래 문자열은 모든 종류의 값의 집합 일 수 있지만, 메인 프레임 이후 시대에는 문자열이 가장 일반적인 종류이므로 값이 문자라는 사실이 "기본값"이되었습니다.


자바 스크립트 역사에 대한 이야기에서 Douglas Crockford는 "아무도 모릅니다"라고 말하고 몇 가지 대안을 제시합니다. http://www.youtube.com/watch?v=RO1Wnu-xKoY#t=2989

컴퓨터 역사상 처음으로 일련의 문자를 "문자열"로 언급 한 보고서를 찾았습니다. pdf의 4 페이지 오른쪽 상단에 47 번이있는 것 같습니다.

http://web.eecs.umich.edu/~bchandra/courses/papers/Naure_Algol60.pdf


문자열은 일련의 개별 개체 (일반적으로 char)입니다.

그 점을 감안할 때 "진주 끈"과 관련된 은유와 관련이 있을지 모른다는 추측을 할 것입니다. 문자열의 각 비드는 단일 문자입니다.


실제로 char 유형 요소의 배열이기 때문에 문자열이라고합니다.

즉,이 배열을 통해 "함께 묶여"(또는 함께 묶여져있는) "문자열"로 바뀝니다.

참고URL : https://stackoverflow.com/questions/880195/the-history-behind-the-definition-of-a-string

반응형