프로그래머가 펀치 카드를 사용할 때 프로그래밍은 어떻게 작동 했습니까?


11

나는 이것을 보았다 : 펀치 카드에 프로그래밍하는 법

그리고 나는 이것을 보았다 : http://en.wikipedia.org/wiki/Computer_programming_in_the_punched_card_era

그러나 그들은 많은 것을 원합니다.

프로그래머가 펀치 카드를 사용할 때 어떻게 프로그래밍했는지 설명 할 수 있습니까? 특히, 입력 컴퓨터 시스템은 천공 카드 자체에서 명령을 도출하는 데 사용됩니다.

나는 레트로 컴퓨터에 대해 많이 알지 못하므로 익숙한 입력 시스템 중 하나가 좋습니다. 더 일반적인 답변도 감사합니다.

답변:


16

한마디로, 가난합니다.

적어도 내가 사용하거나 들어 본 어떤 기계에서도 한 번에 한 장씩 카드를 공급 하지 않았습니다 . 분당 수백 장의 카드를 공급하고 읽는 자동화 된 카드 리더가있었습니다 (아마도 약 1000 / 분이지만 정확한 사양은 확실하지 않습니다).

일반적인 경우 코드를 직접 작성하고 카드에 펀칭했습니다. 각 카드에는 한 줄의 코드 (최대 80 열)가 있습니다. 당신은 카드 데크를 처형했습니다. 백 로그에 따라 1 시간 정도 또는 하루 정도가 지나면 데크가 결과와 함께 다시 출력됩니다.

아마도 추가해야 할 것입니다 : 카드 데크가 작업으로 실행되었으므로 프로그램 자체의 코드를 제출하지 않았을 것입니다. 배치 파일 / 셸 스크립트와 비슷한 것을 작성하고 컴파일 및 실행 지침 암호. IBM JCL (예를 들어)은 Hollerith 카드 출처의 영향을 많이받습니다.

또 다른 사소한 점 : 내가 기억하는 대부분의 시스템에서 일반적으로 각 펀치 카드에 줄 번호를 포함했습니다. 당신이 할 수 있다면 갑판을 떨어 뜨리는 것을 피할 수 있었지만, 만약 떨어 뜨렸을 때, 많은 사람들이 상상했던 비극은 아니 었습니다. 흥미로운 측면 포인트 : 적어도 내가 본 카드 분류기는 기수 정렬을 사용했습니다. 줄 번호의 한 자리를 기준으로 카드를 10 개의 빈으로 분리 한 다음 함께 "병합"합니다 (모든 카드를 단일 bin in order) 다음 줄 번호에 숫자가있는 횟수만큼 반복하십시오.

Hollerith 카드는 매우 영향력이 있습니다. 한계는 여전히 거의 혼란스러운 정도까지 80 열입니다. 적어도 Control Data 메인 프레임에서는 파일 시스템과 같은 것들에 많은 영향을 미쳤습니다. Hollerith 카드가 대부분 사라진 후에 OS에서 카드의 잔해가 표시되었습니다. 예를 들어, 텍스트 파일은 한 줄에 실제로 포함 된 문자의 수가 몇 개인 지에 상관없이 일련의 80 자 레코드로 저장되었습니다. 텍스트 파일의 N 행을 찾기 위해 앞의 모든 행을 읽어야 하는 대신 Unix와 같은 시스템의 "뒤로"에 대한 놀람을 여전히 기억할 수 있습니다.


나는 당신이 묘사하는 것이 훨씬 현대적인 방식으로 일한다고 생각합니다. 카드 분류기 및 피더? 맙소사, 우리 엄마가
그걸

@littleadv : Hollerith 카드 및 피더는 컴퓨터 보다 먼저 사용 됩니다. 나는 분류기에 대해 덜 확신하지만 그것들도 그렇게 확신합니다.
Jerry Coffin

1
우리는 COBOL과 RPGIII를 손으로 종이에 쓰고 카드를 직접 펀칭했습니다. 카드의 오른쪽 네 글자는 프로그램의 "행 번호"에 사용되었습니다. 예, 카드 트레이를 떨어 뜨 렸는데, 키 펀치와 같은 방에 카드 분류 기가있었습니다. COBOL과 RPGIII는 매우 엄격하게 형식화 된 언어였습니다. 코드는 특정 순서대로 실행되어야했습니다. 그런 다음 카드 트레이를 실행하고 작업자가 작업을 실행하여 카드 트레이와 함께 출력물을 제공합니다. 잘만되면, 당신은 실수가 없었습니다.
MB34

4
우리는 두 개의 029 키펀치 머신 이있는 방이 있었지만 분류기는 없었습니다. 따라서 카드 번호가 매겨졌지만, 우리는 이와 같이 상단에 대각선을 그리곤 했습니다 . 차 한 상자를 떨어 뜨린 경우 일반적으로 여러 그룹의 바닥에 닿게되는데,이 줄을 기준으로 함께 잘 정리 한 다음 카드 번호가 올바른지 확인하여 작업을 마칠 수 있습니다.
tcrosley 2016 년

2
프로그램은 카드에 펀칭되었을뿐 아니라 입력 데이터와 출력 데이터도 카드에 펀칭되었습니다. 카드는 70 년대 후반과 80 년대 초의 주요 저장 형태였습니다. 디스크 공간이 너무 비싸서 컴파일러와 로더 이외의 다른 용도로는 사용할 수 없었습니다.
Gilbert Le Blanc

6

카드 펀치를 편집기로 사용했습니다.

  • 삽입 == 새 카드 펀치.
  • Move == 카드를 들고 올바른 지점으로 옮깁니다.
  • 삭제 == 카드를 꺼내서 휴지통에 버립니다.
  • 복사-더 나은 카드 펀치에는 다른 카드를 열별로 복사 할 수있는 복사 기능이 있습니다.
  • 문자 반복-복사 기능을 사용하지만 교체해야하는 문자에 도달하면 대체 문자를 입력하십시오.
  • 문자 삭제-복사 기능을 사용하지만 복사 된 카드를 잡고 이동을 중지하고 "삭제"하려는 각 문자에 대한 공간을 두십시오.
  • 문자 삽입-복사 기능을 사용하지만 새 텍스트를 입력하는 동안 원래 카드를 움직이지 마십시오.

대부분의 경우 카드는 "불변"이지만 얇은 불투명 접착 테이프로 구멍을 두드려서 문자를 제거 할 수 있습니다.

적절한 JCL로 둘러싸인 프로그램을 읽고 프린터가 결과를 추출 할 때까지 기다리십시오. (시간이 될 수 있습니다!)


4

매우 느리게.

어머니는 그런 프로그래머 였으므로 자라면서 집에이 카드가 많이있었습니다. 그들이하는 일은 카드에서 프로그램을 인코딩 한 다음 카드를 카드 리더에 하나씩 공급하는 것입니다 (현재 투표기가 작동하는 방식과 유사 함). 카드를 떨어 뜨린 경우 X 머신 시간 만 할당되어 있고 올바른 순서로 정렬하고 머신을 다시 공급하고 다시 시도해야하기 때문에 많은 문제가 발생합니다. 다음 프로그래머가 당신을 쫓아 내기 전에 정시에. 사소한 (현재의 표준에서는) 수천 개의 카드와 같은 카드와로드 및 실행에 몇 시간의 기계 시간이 필요할 수 있습니다.

매우 지루합니다.


반면에, 업계에서 아마도 기생충이 훨씬 적었을 것입니다 :)
haylem 5

"기생충"을 어떻게 정의 하느냐에 달려있다 .... :)
littleadv

불행히도 나는 당시부터 유명한 "버그"를 의미하지 않았지만 이제는 IT 악대에 뛰어 들었던 사람들의 무리입니다.
haylem

오 향수 .. 세상은 옛날에 더 좋은 곳이었습니다! 그러나 실제로, 그것은 우리가 나쁜 것들을 잊는 경향이 있기 때문입니다. 모든 종류의 악 대차를 타고 점프하는 사람들의 무리가 항상 있었고 앞으로도 계속 될 것입니다.
littleadv

. 옛날이 좋았지. 그게 다야. (실제로, 나는 거기에 없었습니다.)
haylem

1

어떤면에서는 "너무 다르지 않다", 어떤면에서는 "매우 다르다".

그들은 보통 종이에 소스 코드를 썼습니다. 그런 다음 펀치 카드 (일반적으로 줄 번호가있는 카드 당 한 줄의 소스 코드)로 다시 입력되어 잘못된 순서로 종료 될 때 쉽게 소스 코드를 수정할 수 있습니다.

그런 다음 프로그램에는 프로그램을 컴파일하는 방법에 대한 지침이있는 카드와 프로그램 실행 방법 및 사용할 데이터 파일 (또는 마운트 할 테이프 등)에 대한 지침이 접두어로 붙였습니다.

그 다음에 속도 판독기에 카드를 넣고 작업을 실행하고 결과를 인쇄물에 반환하는 운영자에게 제출합니다.

전형적인 편집 / 컴파일 / 결과주기가 "내일"순으로되면서 사람들은 구문 오류에 대해 코드를 점검하는 편집증적인 경향이있었습니다.

대화식 디버깅의 가능성이 없으므로 실행을 추적하는 유일한 방법은 실행 중에 인쇄 된 디버그 줄입니다.

어떤 장소에서는 코드가 펀치 카드가 아닌 펀치 테이프에 있습니다.

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