코드 들여 쓰기의 기원


31

누가 코드 들여 쓰기를 도입했는지, 언제 어디서 도입했는지 알아 내고 싶습니다.

코드 이해에는 매우 중요하지만 보편적 인 것은 아닙니다. 대부분의 포트란 코드와 기본 코드는 들여 쓰기가되지 않았으며 코볼에서도 마찬가지입니다.

나는 줄 바꿈 된 연속 텍스트로 작성된 오래된 Lisp 코드조차 보았을 것입니다. 구문 분석을 위해 머리에 대괄호를 세어 이해해야합니다.

그렇다면 이러한 큰 발전은 어디에서 왔습니까? 나는 그 기원에 대한 언급을 본 적이 없다.

원래의 사용 예 외에도 들여 쓰기에 대한 독창적 인 토론을 찾고 있습니다.


단일 원점이 있는지 확실하지 않습니다. 또한 초기 코드의 경우 공백 자체가 차지하는 공간이 문제였습니다.
Jack Aidley

1
실제로 FORTRAN 들여 쓰기되었습니다. 종류. C댓글을 달면 첫 번째 문자 로 예약됩니다 .
Jonathan Landrum

들여 쓰기가 코드의 의미 적 의미를 변경하는 데 사용되는 경우를 제외하고 (즉, 들여 쓰기를 변경하면 루프 또는 ifla F #의 일부로 들여 쓰기) 들여 쓰기는 실제로 언어 기능이 아니며 IDE 기능입니다 ( 선행 공백을 무시하기 위해 컴파일러의 비트). @ Jack 's right-원래 프로그램은 카드에 구멍을 뚫었 고 들여 쓰기는 문자 그대로 스토리지에 존재하지 않았습니다 (아마도 지금은 없어야 함). Columnar RPG는 들여 쓰기를 사용하지 않으며 (어쨌든 한 줄에 ~ 20 자만 사용할 수 있음) IDE는 코드를 "부드럽게"들여 쓸 수 있습니다.
Clockwork-Muse

6
이 밤새 생각하면 의미있는 들여 쓰기가 아마도 프로그래밍 보다 우선 합니다. 컴퓨터 프로그램을 작성하기 전에 명령어 목록에서 들여 쓰기가 사용 된 것 같습니다. 예를 찾으려고합니다.
Jack Aidley

@ Clockwork-Muse 들여 쓰기는 약 20 년 전까지 ( "A 영역", "B 영역" ) COBOL의 언어 기능이었습니다 .
로스 패터슨 12

답변:


21

들여 쓰기 된 코드의 출처는 아마도 ALGOL 에서 찾을 수 있습니다 :

ALGOL은 코드 블록과 이를 구분하기위한 beginend쌍을 도입 했으며 어휘 범위를 사용하여 중첩 함수 정의를 구현 한 최초의 언어이기도합니다.


리스프의 대가가 먼저 오지 않았는지 궁금하지만, 그것은 합리적으로 들립니다. 어느 쪽이든 나는 들여 쓰기 도입에 대한 구체적인 내용을 따른다.
Daniel Mahler

4
@DanielMahler- LISP 1 프로그래밍 매뉴얼을 탐색하고 직접 확인하십시오. 예제 코드 중 일부는 들여 쓰기되어 있지만 우연히 발생할 수 있습니다. 예제 코드의 대부분은 왼쪽으로 플러시됩니다.
David Hammen

@DavidHammen 최악의 타자기 중 하나 였을 것입니다.
Panzercrisis

6
인용 된 텍스트가 실제로 들여 쓰기 의 사용 / 존재를 지원한다고 생각하지 않습니다 . 그것은 섹션 코드를 지원합니다. Java는 괄호 ( {})를 사용하여 블록을 구분하고 중첩 함수를 정의 할 수 있지만 실제로 코드가 들여 쓰기되는지 여부는 알 수 없습니다.
Clockwork-Muse

12

들여 쓰기 된 코드는 LISP와 ALGOL에 존재하지만 유비쿼터스가 아니기 때문에 1958 년 이전에 도착해야합니다. 내가 찾을 수있는 가장 빠른 것은 1957 년에 소개 된 COMTRAN 이지만 1960 매뉴얼 만 찾을 수 있습니다 (90 페이지 참조). COMTRAN에는 ALGOL 이후 대부분의 언어의 블록 구조가 없기 때문에이 들여 쓰기는 현대 개념과 다릅니다.하지만 여전히 계산해야한다고 생각합니다.

나는 이것이 실제로 첫 번째 예는 아니라고 생각하지만 더 일찍 찾을 수는 없습니다.

업데이트

의미있는 들여 쓰기는 아마도 프로그래밍보다 우선합니다. 컴퓨터 프로그램을 작성하기 전에 명령어 목록에서 들여 쓰기가 사용 된 것 같습니다. 불행히도 나는 이것에 대한 좋은 예를 찾을 수 없습니다.


-1

Ross Patterson의 의견에 대한 확장-COBOL 컴파일러 (또는 오픈 시스템 시스템 경력에서 사용한 적어도 IBM의 컴파일러)는 들여 쓰기 (그가 언급 한 "A"및 "B"영역)를 시행했습니다. 이러한 영역에 있어야하는 요소가 정확하게 배치되지 않으면 코드가 컴파일되지 않습니다. 그러나 특별한 들여 쓰기가 필요하지 않은 경우-들여 쓰기 스타일이 다른 개발자의 코드를 수정할 때 종종 문제가 발생했습니다. 에티켓은 동료 사이의 평화를 유지하는 기존 패턴을 따르는 것이 좋습니다. 또한, 동일한 소스의 다른 스타일은 외관상 거의 테트리스와 같이보기에 악화 될 것입니다.

COBOL과 들여 쓰기에 대해 생각한 지 몇 년이 지났습니다. 질문을하고 과거로 약간의 여행을 해주셔서 감사합니다!

마티

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