การเขียนโปรแกรมทำงานอย่างไรเมื่อโปรแกรมเมอร์ใช้ punchcards?


11

ฉันเห็นสิ่งนี้: เรียนรู้การเขียนโปรแกรมบนบัตรชกมวย

และฉันได้เห็นสิ่งนี้แล้ว: http://en.wikipedia.org/wiki/Computer_programming_in_the_punched_card_era

แต่พวกเขาปล่อยให้เป็นที่ต้องการ

ทุกคนสามารถอธิบายให้ฉันรู้ได้อย่างไรว่าโปรแกรมเมอร์โปรแกรมเมื่อพวกเขาใช้บัตรคำศัพท์? โดยเฉพาะอย่างยิ่งระบบของคอมพิวเตอร์อินพุตที่ใช้ในการรับคำสั่งจากการ์ดที่ถูกเจาะ

ฉันไม่รู้มากเกี่ยวกับคอมพิวเตอร์ย้อนยุคดังนั้นระบบอินพุตใด ๆ ที่คุณคุ้นเคยก็น่าจะดี คำตอบทั่วไปเพิ่มเติมก็ชื่นชมเช่นกัน

คำตอบ:


16

ในคำที่ไม่ดี

อย่างน้อยในเครื่องที่ฉันเคยใช้หรือได้ยินคุณไม่ได้ป้อนการ์ดทีละครั้ง มีเครื่องอ่านบัตรอัตโนมัติที่สามารถป้อนและอ่านการ์ดนับร้อยต่อนาที (อาจประมาณ 1,000 ต่อนาที แต่ฉันไม่แน่ใจเกี่ยวกับรายละเอียดที่แน่นอน)

ในกรณีทั่วไปคุณเขียนโค้ดด้วยมือแล้วกดลงบนการ์ด บัตรแต่ละใบมีรหัสหนึ่งบรรทัด (สูงสุด 80 คอลัมน์) คุณนำไพ่สำรับที่จะดำเนินการ คุณสามารถนำเด็คของคุณกลับมาพร้อมกับผลการพิมพ์ทั้งนี้ขึ้นอยู่กับงานในมือที่ใดก็ได้ตั้งแต่หนึ่งชั่วโมงจนถึงหนึ่งวัน

ฉันควรจะเพิ่ม: เนื่องจากเด็คการ์ดของคุณทำงานเป็นงานคุณไม่เพียงแค่ส่งรหัสสำหรับโปรแกรม - คุณต้องเขียนอะไรบางอย่างที่คล้ายกับไฟล์แบตช์ / เชลล์สคริปต์ที่มีทิศทางในการรวบรวมและดำเนินการของคุณ รหัส. IBM JCL (ตัวอย่างหนึ่ง) ยังคงได้รับอิทธิพลอย่างมากจากต้นกำเนิด Hollerith-card

อีกจุดเล็ก ๆ น้อย ๆ : ในระบบส่วนใหญ่ฉันจำได้ว่าปกติแล้วคุณจะรวมหมายเลขบรรทัดในการ์ดเจาะแต่ละอัน เห็นได้ชัดว่าคุณหลีกเลี่ยงการทิ้งดาดฟ้าถ้าคุณทำได้ แต่เมื่อ (ไม่ถ้า) หนึ่งถูกทิ้งมันไม่ได้เกือบโศกนาฏกรรมหลายจินตนาการ จุดที่น่าสนใจ: อย่างน้อยผู้เรียงลำดับการ์ดที่ฉันเห็นใช้การเรียงตัวแบบ Radix - พวกเขาแยกไพ่ออกเป็น 10 ถังขยะตามตัวเลขหนึ่งหลักของหมายเลขบรรทัดจากนั้น "ผสาน" เข้าด้วยกัน ตามลำดับถังขยะ) จากนั้นทำซ้ำหลาย ๆ ครั้งตามที่คุณมีตัวเลขอยู่ในหมายเลขบรรทัด

การ์ด Hollerith นั้นมีอิทธิพลอย่างมาก - 80 คอลัมน์ในขณะที่ขีด จำกัด ยังมีชีวิตอยู่จนถึงระดับที่เกือบจะรบกวน อย่างน้อยในเฟรมข้อมูลควบคุมหลักสิ่งต่าง ๆ เช่นระบบไฟล์ก็ได้รับอิทธิพลอย่างมากเช่นกัน หลังจากที่การ์ด Hollerith ส่วนใหญ่หายไปส่วนที่เหลือของพวกเขาจะปรากฏในระบบปฏิบัติการ - ตัวอย่างเช่นไฟล์ข้อความมักถูกจัดเก็บเป็นชุดของระเบียน 80 ตัวอักษรโดยไม่คำนึงถึงจำนวนตัวอักษร / จำนวนบรรทัดที่มีอยู่จริง ฉันยังจำความประหลาดใจของฉันได้ที่ "ความล้าหลัง" ของระบบเช่น Unix ที่คุณต้องอ่านบรรทัดก่อนหน้าทั้งหมดเพื่อค้นหาบรรทัด N ของไฟล์ข้อความแทนที่จะเป็นเพียงการค้นหาโดยตรง


ฉันคิดว่าสิ่งที่คุณอธิบายเป็นวิธีที่ทันสมัยกว่าในการทำสิ่งต่าง ๆ เครื่องคัดเเยกและคัดแยกบัตร? คุณแม่ของฉันจะต้องฆ่าเพื่อสิ่งนั้น ... : - D
littleadv

@littleadv: การ์ดและตัวป้อน Hollerith ลงวันที่ก่อนคอมพิวเตอร์ ฉันไม่ค่อยแน่ใจเกี่ยวกับ sorter แต่ฉันค่อนข้างแน่ใจว่าพวกเขาทำเช่นกัน
Jerry Coffin

1
เราเคยเขียนภาษาโคบอลและอาร์พีจีไอของเราลงบนกระดาษด้วยมือแล้วต่อยบัตรด้วยตัวเอง มีการใช้ตัวอักษร 4 ตัวที่เหมาะสมบนการ์ดสำหรับ "หมายเลขบรรทัด" ของโปรแกรม ใช่ฉันทิ้งการ์ดไว้ก่อนหน้านี้เรามีเครื่องคัดเเยกการ์ดในห้องเดียวกับที่กดปุ่ม จำไว้ว่าภาษาโคบอลและ RPGIII เป็นภาษาที่มีการจัดรูปแบบที่เข้มงวดมาก รหัสของคุณจะต้องทำงานในบางคำสั่ง จากนั้นถาดจะถูกนำมาใช้เพื่อเรียกใช้และผู้ปฏิบัติงานทำงานให้คุณพิมพ์ออกมาพร้อมกับถาดบัตรของคุณ หวังว่าคุณจะไม่มีข้อผิดพลาด
MB34

4
เรามีห้องที่มีเครื่องทำกุญแจ 029 สองเครื่องแต่ไม่มีเครื่องคัดแยก ดังนั้นแม้ว่าบัตรถูกเลขที่เราใช้ในการวาดเส้นทแยงข้ามท็อปส์ซูเช่นนี้ หากคุณวางกล่องรถยนต์พวกเขามักจะลงเอยอยู่บนพื้นในหลาย ๆ กลุ่มซึ่งคุณสามารถรวมตัวกันได้ค่อนข้างดีโดยเริ่มจากบรรทัดเหล่านี้แล้วจบงานด้วยการยืนยันหมายเลขบัตรตามลำดับ
tcrosley

2
โปรแกรมไม่เพียง แต่ถูกเจาะบนการ์ดข้อมูลอินพุตและข้อมูลเอาต์พุตถูกเจาะบนการ์ด การ์ดเป็นรูปแบบหลักของการจัดเก็บในช่วงปลายยุค 70 และต้นยุค 80 พื้นที่ดิสก์แพงเกินไปที่จะใช้สำหรับสิ่งอื่นที่ไม่ใช่คอมไพเลอร์และตัวโหลด
Gilbert Le Blanc

6

คุณใช้ punch card เป็นตัวแก้ไข

  • แทรก == ต่อยบัตรใหม่
  • ย้าย == หยิบการ์ดและย้ายไปยังตำแหน่งที่ถูกต้อง
  • ลบ == นำการ์ดออกแล้วโยนทิ้งในถังขยะ
  • คัดลอก - การเจาะการ์ดที่ดีกว่ามีฟังก์ชั่นการคัดลอกซึ่งสามารถคัดลอกคอลัมน์บัตรอื่นทีละคอลัมน์
  • Repace a character - ใช้ฟังก์ชั่น copy แต่พิมพ์ตัวอักษรแทนเมื่อคุณไปถึงตัวอักษรที่คุณต้องการแทนที่
  • ลบตัวอักษร - ใช้ฟังก์ชั่นการคัดลอก แต่ถือการ์ดที่คัดลอกไว้เพื่อหยุดการย้ายและพื้นที่ว่างสำหรับตัวละครแต่ละตัวที่คุณต้องการ "ลบ"
  • แทรกตัวอักษร - ใช้ฟังก์ชั่นการคัดลอก แต่ถือบัตรเดิมที่ไม่สามารถเคลื่อนที่ได้ในขณะที่พิมพ์ข้อความใหม่

สำหรับการ์ดส่วนใหญ่นั้น "ไม่เปลี่ยนรูป" แต่คุณสามารถลบตัวละครได้โดยการแตะที่รูด้วยเทปเหนียวทึบแสงบาง ๆ

คุณอ่านในโปรแกรมของคุณล้อมรอบด้วย JCL ที่เหมาะสมและรอให้เครื่องพิมพ์พ่นผลลัพธ์ออกมา (อาจเป็นชั่วโมง!)


4

ช้ามาก.

แม่ของฉันเป็นโปรแกรมเมอร์ดังนั้นฉันจึงมีการ์ดเหล่านี้มากมายที่บ้านในขณะที่โตขึ้น สิ่งที่พวกเขาจะทำคือเข้ารหัสโปรแกรมบนการ์ดแล้วป้อนการ์ดเข้าไปในเครื่องอ่านการ์ดทีละหนึ่ง (คล้ายกับวิธีการทำงานของเครื่องลงคะแนนตอนนี้) หากคุณทำการ์ดหล่น - คุณจะมีปัญหามากเพราะคุณมีเวลาเครื่อง X ที่จัดสรรให้คุณเท่านั้นและคุณต้องจัดเรียงการ์ดให้ถูกต้องและเริ่มให้อาหารเครื่องใหม่อีกครั้งแล้วลองทำใหม่ ตรงเวลาก่อนที่โปรแกรมเมอร์คนต่อไปจะพาคุณออกไป โปรแกรมเล็กน้อย (ในมาตรฐานปัจจุบันของเรา) อาจต้องใช้การ์ดดังกล่าวหลายร้อยใบถ้าไม่นับพันใบและเวลาที่ใช้ในการโหลดและเรียกใช้

น่าเบื่อมาก ๆ


บนมืออื่น ๆ ที่อาจจะมีปรสิตมากน้อยในอุตสาหกรรม :)
haylem

ขึ้นอยู่กับว่าคุณให้คำจำกัดความ "parasite" .... :)
littleadv

น่าเสียดายที่ฉันไม่ได้หมายถึง "บั๊ก" ที่โด่งดังมาก่อน แต่กลุ่มคนที่กระโดดขึ้นไปบนวงไอที
haylem

โอ้ความคิดถึง ... โลกนี้ช่างเป็นสถานที่ที่ดีกว่าในสมัยก่อน! แต่จริงๆแล้วมันเป็นเพราะเรามักจะลืมสิ่งที่ไม่ดี มีฝูงชนมากมายกระโดดขึ้นไปบนรถบรรทุกทุกชนิดที่เคยเป็นมาและจะเป็นตลอดไป
littleadv

Shhhh นั่นคือวันที่ นั่นคือทั้งหมดที่ (ที่จริงผมไม่ทราบว่าผมไม่ได้มี.)
haylem

1

ในบางวิธี "ไม่แตกต่าง" ในบางวิธี "แตกต่างกันมาก"

พวกเขาเขียนซอร์สโค้ดโดยปกติลงบนกระดาษ นี่คือพิมพ์อีกครั้งลงบนบัตรเจาะ (รหัสที่มาหนึ่งบรรทัดต่อบัตรมักจะมีหมายเลขบรรทัดดังนั้นคุณสามารถแก้ไขรหัสที่มาของคุณได้อย่างง่ายดายเมื่อมันสิ้นสุดลงในลำดับที่ไม่ถูกต้อง)

จากนั้นโปรแกรมจะนำหน้าด้วยการ์ดที่มีคำแนะนำเกี่ยวกับวิธีการรวบรวมโปรแกรมและต่อท้ายด้วยคำแนะนำสำหรับวิธีการเรียกใช้และไฟล์ข้อมูลใดที่จะใช้ (หรือเทปเพื่อติดตั้ง ฯลฯ )

สิ่งนี้จะถูกส่งไปยังผู้ปฏิบัติงานซึ่งจะโหลดการ์ดลงในเครื่องอ่านความเร็วสูงรันงานและส่งคืนผลลัพธ์เมื่อพิมพ์ออกมา

ด้วยการแก้ไข / คอมไพล์ / ผลลัพธ์แบบทั่วไปโดยเรียงตามลำดับคำสั่งของ "พรุ่งนี้" ผู้คนมักจะมีความหวาดระแวงในการตรวจสอบรหัสของพวกเขามากขึ้นเพื่อหาข้อผิดพลาดทางไวยากรณ์

ด้วยความเป็นไปได้ของการดีบักแบบโต้ตอบวิธีเดียวที่จะติดตามการดำเนินการจะเป็นบรรทัดการดีบักที่พิมพ์ระหว่างการดำเนินการ

ในบางสถานที่รหัสจะอยู่ในเทปพันบัตรมากกว่าบนบัตรเจาะ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.