펀치 카드 시대의 컴퓨터 프로그래밍
Computer programming in the punched card era![]() |

컴퓨터 프로그래밍 언어의 발명으로부터 1970년대 중반까지, 대부분의 컴퓨터 프로그래머들은 프로그램을 한 줄씩 만들고 편집하고 펀치 카드에 저장했습니다.
펀치 카드
펀치 카드는 데이터를 인코딩하는 유연한 쓰기 1회 매체입니다.대부분은 80자입니다.카드의 그룹 또는 "데크"는 프로그램과 데이터 컬렉션을 형성합니다.이 용어는 종종 펀치 카드와 교환하여 사용되며, 사용되지 않는 카드는 "펀치 카드"이지만, 한 번 카드에 구멍을 뚫어 정보를 인코딩하면 "펀치 카드"가 됩니다.간단하게 하기 위해서, 이 문서에서는, 어느쪽인가를 나타내는 「펀치 카드」라고 하는 용어를 사용합니다.
종종 프로그래머들은 "슬래시 제로"와 같은 로컬 규칙을 사용하여 숫자 0과 문자 O, 숫자 1과 문자 I, 숫자 8과 문자 B, 숫자 2를 구별하는 데 주의를 기울이며 코딩 시트라고 불리는 특수 형식에 프로그램을 처음 썼다.그런 다음 키 펀치 운영자들이 IBM 026(나중에 IBM 029)과 같은 키 펀치 기계를 사용하여 이러한 형식을 취했습니다.종종 다른 키 펀치 작업자가 이 덱을 가져다가 코딩 시트에서 다시 펀치하지만, 원래 펀치에 오류가 없는지 확인하는 IBM 059와 같은 "검증기"를 사용합니다.
일반적으로 입력 오류로 인해 카드 전체를 재펀치해야 했습니다.프로그램의 편집은, 카드를 재구성해, 변경된 라인을 삭제 또는 교환하는 것으로 용이하게 되었습니다.프로그램은, 덱을 복제하거나 자기 테이프에 쓰는 것으로 백업되었습니다.
소규모 조직에서는 프로그래머가 직접 펀치를 할 수 있으며, 어떤 경우에도 키 펀치에 액세스하여 덱을 약간 변경할 수 있습니다.
작업 환경
아래 설명에서는 모든 IBM 숍('샵'은 프로그래밍 사이트의 프로그래머 용어)에 대해 설명합니다.단, 다른 브랜드의 메인프레임(또는 미니컴퓨터)을 사용하는 상점에서는 비용이나 가용성에 따라 NCR, ICL, Hewlett-Packard(HP 제어) 등 제조사의 기기가 다를 수 있습니다.ve NCR, ICL, HP 또는 Control Data 컴퓨터, 프린터 등이지만 IBM 029 키 펀치가 있습니다.IBM의 거대한 규모와 산업 풋프린트 때문에 다른 공급업체에서 많은 규약을 채택한 경우가 많았습니다. 따라서 아래의 예는 IBM 이외의 상점에서도 대부분의 업체와 상당히 유사합니다.
일반적인 기업 또는 대학의 컴퓨터 설치에는 액세스 제한과 냉방이 가능한 대형 컴퓨터실(현재의 서버실과 유사)과 작업 제출을 위한 작은 인접실이 있습니다.근처에는 프로그래머가 사용할 수 있는 키펀치 기계가 가득한 방이 있을 것이다.IBM 407 Accounting Machine은 새로 작성되거나 편집된 프로그램을 교정용으로 나열(팬 접이식 용지에 인쇄)할 수 있도록 설정할 수 있습니다.IBM 519는 백업을 위해 프로그램 덱을 재생성하거나 73-80열에 일련 번호를 입력하기 위해 제공될 수 있습니다.
"닫힌 가게"[a]로 알려진 이러한 메인프레임 설치에서 프로그래머들은 종종 프로그램에서 읽을 데이터 카드 뒤에 이어지는 프로그램 덱을 컴퓨터실의 카운터 뒤에서 일하는 사람에게 제출했습니다.피크 타임에는, 데크를 제출하기 위해서 줄을 서서 기다리는 것이 일반적이었습니다.이 문제를 해결하기 위해 컴퓨터실 밖에 카드 리더를 재설치(또는 최초 설치)하여 프로그래머가 "셀프 서비스" 작업을 제출할 수 있도록 할 수 있습니다.
많은 컴퓨터 설치에서는 반대쪽 모서리가 잘린 카드(때로는 모서리가 잘리지 않은 카드도 있음)를 "작업 분리기"로 사용했기 때문에 작업자는 여러 작업 덱을 동시에 카드 리더에 쌓을 수 있었고 작업 덱을 스태커에서 분리할 때 덱을 수동으로 빠르게 분리할 수 있었습니다.이러한 카드(예: 새로운 작업을 시작하기 위한 JCL "JOB" 카드)는 많은 경우 미리 [1]대량으로 삽입되어 있었습니다.이것은 메인 컴퓨터가 카드를 직접 읽는 것이 아니라 IBM 1401과 같은 작은 컴퓨터가 오프라인으로 준비한 자기 테이프에서 이미지를 읽을 때 특히 유용했다.카드를 읽은 후, 컴퓨터 오퍼레이터는 카드 덱을 돌려보냅니다.일반적으로 프로그래머의 마지막 이니셜에 따라 알파벳 순으로 라벨이 붙은 수납장 구멍 세트 중 하나에 넣습니다.프로그램은 배치 모드 프로세싱으로 실행되었기 때문에 인쇄 또는 펀치된 출력이 생성되어 동일한 선반 구멍에 삽입되기까지 상당한 시간이 걸릴 수 있습니다. 그러나 사용이 적은 시스템에서는 변경을 가하여 프로그램을 1시간 이내에 다시 실행할 수 있었습니다.
전담 프로그래머는 몇 가지 턴어라운드를 빠르게 하기 위해 자정이 훨씬 넘도록 깨어있을 수 있습니다.이 고가의 기기의 사용은 종종 사용자의 계정에 청구되었다.메인프레임 컴퓨터에는 수백만 달러의 비용이 들 수 있으며 사용량은 작업당 몇 초 만에 측정되었습니다.
IBM 1000, 1620 및 1130과 같은 소형 컴퓨터와 PDP-11과 같은 미니컴퓨터는 가격이 저렴했고 프로그래머들이 일정 기간 동안 컴퓨터를 독점적으로 사용하는 "오픈 숍"으로 종종 운영되었습니다.키 펀치는 보통 신속한 수정을 위해 근처에 배치되어 있었습니다.이러한 소형 머신의 대부분은 천공 테이프로 동작하고 있었습니다.
식별 및 순서
FORTRAN, COBOL 및 다양한 IBM 어셈블러 언어를 포함한 많은 초기 프로그래밍 언어들은 카드의 처음 72개 열만 사용했는데, 이는 IBM 704/709/7090/7094 시리즈(특히 부동 소수점 산술 하드웨어를 갖춘 최초의 대량 생산 컴퓨터인 IBM 704)에 사용된 IBM 711 카드 판독기로 거슬러 올라갑니다.d 80개의 열 중 72개만 한 번에 읽습니다.
73~80열은 컴파일러에 의해 무시되어 카드덱을 떨어뜨렸을 경우 카드 정렬기를 사용하여 올바른 순서로 복원할 수 있도록 식별 또는 시퀀스 번호로 사용할 수 있습니다.프로그래밍 언어에 따라서는 디버깅 출력문을 빠르게 활성화하고 "컴아웃"할 수 있습니다.카드 80열에 코멘트 문자(예를 들어 Fortran의 'C')가 삽입된 카드를 사용하면 카드를 엔드 포 엔드로 돌리면 선두 열에 'C'가 들어가 카드의 C가 거꾸로 변환됩니다.물리 카드를 덱에 배치한 채로 코멘트에 추가합니다.
(적절한 카드 순서를 유지하기 위해 일반적으로 사용되는 다른 방법은 데크에 있는 모든 카드의 상단 모서리에 하나 이상의 대각선 줄무늬를 그리는 것입니다.)
이후 펀치 카드 데이터가 자기 테이프 파일로 변환됨에 따라 시퀀스 번호는 종종 시간 시퀀스와 관련될 수 있는 인덱스 값으로 배열의 열로 사용되었습니다. 예를 들어, 카드의 데이터가 수위 기록 장치 등의 측정 장치의 주기적 출력과 관련이 있는 자연 과학에서 그러합니다.수문학에서는 강과 하천, 기상학에서는 온도.카드 덱으로 가득 찬 볼트 전체를 훨씬 작은 9트랙 테이프 랙으로 줄일 수 있습니다.
「 」를 참조해 주세요.
각주
레퍼런스
- ^ da Cruz, Frank (December 2019). "IBM Punch Cards". Columbia University Computing History. Columbia University.
- : 펀치카드 사용을 중심으로 발달한 프로그래밍 문화에 대한 기사. Fisk는 주변사람들로부터 "공예를 배웠다"는 경험을 바탕으로 한다Fisk, Dale (2005). "Programming With Punched Cards: A Programmer's Memories of Learning the Craft in 1973" (PDF). Retrieved 2008-11-11..
- da Cruz, Frank (July 2001). "The Columbia University Self Service Input/Output Area". Columbia University Computing History.
- Organick, E. I. (1966). A Fortran IV Primer. Addison-Wesley.
외부 링크
- "IBM Punched Card Data Processing Principles (1961)". computercollector.com.