“문자열”의 어원


58

따라서 일련의 사물은 일련의 사물이므로 문자 / 바이트 / 등의 시퀀스입니다. 문자열이라고도합니다. 그러나 누가 먼저 그들을 끈이라고 했습니까? 그리고 언제? 그리고 어떤 맥락에서 그것이 붙어 있었습니까? 나는 항상 이것에 대해 궁금했습니다.



1
@Mark 죄송합니다, 그것이 컨벤션이라는 것을 몰랐습니다. 맞는 말이다.
Alb

1
@Alb 문제 없습니다. 귀하와 다른 사람들이 참조 할 수 있도록 (이 질문은 중복으로 표시되었습니다), 스택 오버플로에 존재하는 질문은이 질문의 상태에 영향을 미치지 않지만 네트워크에서 다른 질문을 언급하고 메모하는 것이 확실히 도움이됩니다 대답하는 데 도움이 될 수 있습니다.

1
Alb, user4051의 훌륭한 답변으로 stackoverflow 질문을 참조하는 주석을 제거 하고이 질문으로 다시 연결하는 것이 좋습니다.
Tyler Collier

1
폐회 투표를하면서이 질문을 푯말로 유지해야한다고 생각합니다. 이 질문에 대한 답변은 Programmers.SE 또는 스택 오버플로에 대한 다른 유사한 질문에 대한 답변보다 훨씬 철저하고 완전합니다. 이것은 객관적으로 대답 할 수있는 흥미로운 질문이기도합니다.

답변:


47

휴고의 1963 년 참조 전에 실제 인용을 얻을 수 있습니까? 예. 존 맥카시 (John McCarthy)는 1960 년 4 월부터 상징적 표현의 재귀 함수와 기계, Part I의 계산 에서 "문자열"이라는 단어를 사용했습니다 .

원자 기호의 경우 대문자 라틴 문자와 숫자로 된 문자열을 사용해야합니다.

그러나이 질문에 더 유용합니다. 데이터 유형으로 문자열에 대한 참조 :

허용되는 모든 문자열은 L- 표현식입니다.

좋은 예가 아닙니다. McCarthy는 "문자열 (string of characters)"이라고 말함으로써 오늘날 전문 감각 프로그래머가 "문자열"을 사용하지 않습니다. Java 프로그래머에게 "문자열"이라고 쉽게 말할 수 있으며 "문자"부분이 암시 적이라는 것을 알게 될 것입니다. McCarthy의 사용은이 기능을 보여주지 않습니다. 1950 년대로 돌아가 맥카시가 안전하게 플레이했는지 또는 그 용어가 실제로 존재하지 않았는지 확인하도록합시다. LISP는 수학 미적분학을 기반으로하기 때문에 아마 여기서 많은 도움이되지 않을 것이므로 McCarthy의 문자열 함수는 아이디어를 문자열 처리에 처음 적용했을 수도 있습니다.

1960 년대의 중요한 문자열 처리 시스템은 1964의 SNOBOL (문자열 조작 언어) 이었습니다. 이것은 McCarthy의 논문을 인용하지만 COMIT과 ​​SCL에 대해서도 논의합니다. 그들이 SCL에 대해 인용 한 작업은 출판되지 않았습니다 : 불행한 막 다른 골목.

COMIT는 추적하기가 더 쉽습니다. 컴퓨터 프로그래밍 기술 (Volume 1, 3 판, p.461)은 VH Yngve가 1963 CACM 기사를 작성했음을 알려줍니다. 그러나 "문자열" 의 가장 빠른 사용을 찾고 있으므로 이전 출판물에 대한 저자 검색을 할 것입니다.

내가 찾을 수있는 첫 번째는 1958 년 7 월의 기계 번역을위한 프로그래밍 언어입니다 . 여기에는 "string"이라는 단어가 한 번만 사용됩니다.

구두점 또는 공백 사이의 연속 된 각 문자는 사전에서 조회됩니다.

다시 말하지만,이 사용은 McCarthy와 비슷합니다. 이것은 현재의 의미에서 "문자열"이 사용되고 있다는 증거가 아닙니다. 논문을 자세히 살펴보면 데이터 구조가 카드의 "라인"임을 알 수 있습니다 (더 긴 "라인"을 계속할 수 있음).

자, 우리는 COMIT의 역사에서 앞으로 나아가 우리가 무엇을 얻을 수 있는지 볼 것입니다. 첫 번째 유용한 참고 자료는 1959 년 6 월 회의에서 진행된 기계 번역을위한 COMIT 시스템입니다 .

D SIN (F)를 COS (F) D (F)로 바꾸려면 F는 제한이없고 임의의 순서로 구성 요소 일 수 있습니다.이 문자열을 나타 내기 위해 $ 표기법을 사용합니다.

이것은 오늘날 우리가 사용하는 방식과 더 유사 해 보입니다 : "문자열"은 단독으로 존재하며 보너스에는 인식 할 수있는 특수 기호가 있습니다 : 달러 기호는 여전히 문자열 변수를 나타내는 일부 기본 기호에서 사용됩니다.

이 때부터 "string"이라는 단어 는 ACM '58 Proceedings에서 Perlis와 Smith 의 기호 문자열을 처리하기위한 명령 언어로 여러 번 나타나며 , 한 번은 Share 709 시스템 : Boehm 의 기호 프로그래밍의 기계 구현 및 강철.

1960 년대 초 ACM 디지털 라이브러리에서 '문자열'을 검색하면 "ALGOL의 문자열 처리", "새 언어의 문자열 조작"및 "영숫자 정보의 목록 유형 저장 기술"과 같은 제목을 포함한 62 개의 결과가 생성됩니다. 그때까지 그 아이디어는 확고 해졌다.

나는 컴퓨터 과학 전문 용어 의미에서 "문자열"이 1960 년경 몇 년 동안 일반화 된 문자 목록으로 일반화되었다고 주장 할 것이다. 그 전에, Yngwe와 McCarthy와 같은 저자는 "문자열"을 말할 수 있었으며 이해했지만 오늘날 사용되는 의미에서 "문자열"을 기본 단어로 사용할 수는 없습니다.

속기는 아마도 Perlis와 Smith 논문에 의해 컴퓨팅 주류에 소개되었을 것입니다. 널리 인용 된 것은 아니지만 1960 년 4 월 Joseph W. Smith의 ALGOL 에 대한 구문 및 의미 론적 향상 은 McCarthy의 LISP에 대한 설명과 동일한 CACM 문제입니다. 그 논문에서 :

이 논문의 목적은 ALGOL에 대한 일련의 구문 및 의미 론적 증강을 제안하는 것이다. 제안 된 확장 기능은 해당 언어로 "문자열"조작을 쉽게 설명 할 수 있도록 설계되었습니다. 그것들은 심볼 조작을위한 포괄적 인 언어를 구성하지 않습니다.

나에게 이것은 "문자열"의 증거로, 학술 어휘에서 확인되고 상징적 계산을위한 데이터 유형을 의미하며, 상업적 계산에 사용되는 도구에 중요하게 소개된다.

또한 Jean Sammet (1972)의 Programming Languages ​​: History and Future 는 COMIT과 ​​SNOBOL이 문자열 조작의 조상 이었음을 시사합니다. 따라서 이전 예제가 없을 것이라고 확신합니다.


2
와. 거기에 위대한 고고학.
sclv

4
이것은 기차가 웨딩 드레스의 기차처럼 사용되었던 "자동차의 기차"를 운송 수단으로 "기차"로 바꾼 과정을 상기시킵니다. "문자열"에서 "문자열"로의 전환이 핵심입니다
Kate Gregory

2
OED는 이미이 작업을 수행했습니다. 문자열에 대한 항목 (페이 월, 그러나 영국 도서관 회원은 액세스 할 수 있음)에는 "1954 Jrnl. Assoc. 정확히 현대적인 사용법으로 보입니다.
AakashM

1
@AakashM은 그 참고에 감사하며 1954 년 결과는 1950 년대에 찾은 다른 결과와 일치합니다. "문자열"이라는 단어는 그 의미에서의 의미가 설명 될 때 "문자열"의미에서만 사용됩니다 . 저자가 설명없이 "문자열"을 사용할 수있는 것은 1960 년 경이 되어서야 질문에 사용 된보다 구체적인 의미를 가진 전문 용어 가되었습니다 .

1
@AakashM 1954 년 수학 등 의 OED 클래스 . 1932 Symbolic Logic 책 의 첫 번째 예제와 함께 일련의 기호 또는 언어 요소가 명확한 순서 로 표시됩니다 . 그들은 컴퓨팅에 대한 별도의 항목이 있습니다. 레코드 또는 데이터의 선형 시퀀스 , 나는 첫 번째 1956 예를 내 대답에 추가했습니다 .
휴고

14

완전한 대답은 아니지만 "줄에 배열 된 많은 개체"를 의미하기 위해 문자열을 사용하는 것은 이미 1400 년대 후반에있었습니다. 출처

이것은 본질적으로 동일한 사용법입니다.


5

컴퓨팅 내가 찾을 수있는 가장 빠른 참조 월부터입니다 1963METEOR : 문자열 변환을위한 LISP 통역 MIT의 AI 연구소에서 다니엘 G 밥 로우에 의해.

옥스포드 영어 사전은 A로부터 이전 계산 예가 1956 의 문제 컴퓨팅 기계 협회의 저널 :

완전히 정렬 된 순서를 얻을 때까지 제어 필드 문자열을 왕복하기위한 영역이 따로 설정됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.