Tại sao thẻ đục lỗ được sử dụng để lập trình


8

Tôi đang làm một bài luận nghiên cứu về lịch sử của các ngôn ngữ lập trình, và tôi đã tự hỏi, tại sao các lập trình viên lại viết chương trình của họ trên thẻ đục lỗ? Không phải màn hình máy tính và bàn phím đã tồn tại bởi các lập trình viên đã sử dụng chúng sao?

Tôi biết họ lần đầu tiên được phát minh ra việc sử dụng máy dệt Jacquard và để kiểm soát thiết kế mong muốn, nhưng khi mọi người lập trình, tại sao họ lại quyết định viết chương trình của họ trên thẻ phản đối việc viết nó trên thiết bị đầu cuối?

Có phải vì máy tính rất đắt tiền, không có nhiều người truy cập vào chúng, dẫn đến việc mọi người viết chương trình trên thẻ đục lỗ, nộp cho công ty hoặc ai đó hoặc tổ chức nào đó có một người để điều hành chúng và cho họ biết kết quả?


đáng tin cậy hơn bất kỳ máy quét nào có thể được.
ratchet freak

Câu trả lời:


24

Bạn có thể không có một bức tranh rất tốt về công nghệ điện toán trước năm 1974.

Chia sẻ thời gian, nhiều người dùng, các hệ thống được phát minh vào cuối những năm 50, nhưng chúng tương đối hiếm trong suốt thập niên 60. Hầu hết các máy tính chạy ở chế độ hàng loạt, chạy một chương trình cùng một lúc, không có phương tiện để tương tác với người dùng ngoài đầu đọc thẻ, máy in dòng và có thể là một loại teletype riêng cho nhà điều hành bảng điều khiển. Thiết bị đầu cuối bạn nói gì? Cho đến cuối thập niên 60, các thiết bị đầu cuối điện tử có màn hình video là những thiết bị kỳ lạ, đắt tiền chỉ giới hạn ở các cơ sở nghiên cứu và các công việc chuyên môn như kiểm soát không lưu và quốc phòng . Những máy tính đã hỗ trợ các phiên tương tác thường sử dụng teletypes. Tham gia một chương trình trên teletype cũng khó chịu như đấm vào thẻ

Hãy để tôi mở rộng một chút về vấn đề xử lý hàng loạt vì nó quá xa lạ với cách mà hầu hết mọi người sử dụng máy tính bây giờ. Nó chắc chắn đã có thể ngay cả trong những năm 50 để viết một chương trình chỉnh sửa tương tác có thể làm việc với một teletype. Tuy nhiên, do xử lý hàng loạt, chương trình chỉnh sửa sẽ hoàn toàn độc quyền máy tính trong toàn bộ thời gian bạn ngồi ở teletype chỉnh sửa chương trình của bạn. Vì vài trăm đến vài ngàn người khác sẽ đợi đến lượt họ để chạy chương trình của họ, bạn sẽ là một người rất không được ưa chuộng. Bạn cũng sẽ bị tính phí vài đô la một phút trong khi trình soạn thảo của bạn đang chạy. Sẽ hiệu quả hơn nhiều khi viết chương trình của bạn trong tầm tay, trao bản thảo cuối cùng cho một nhà điều hành cú đấm chính, và để họ phiên âm chương trình của bạn lên thẻ đục lỗ hoặc băng giấy. Điều đó tránh lãng phí mili giây quý giá của CPU đang chờ bạn nhập 'GOSUB'.

Ổ đĩa cứng cũng được phát minh vào cuối những năm 50, nhưng chúng có dung lượng nhỏ (khoảng 1mb), hiếm và đắt tiền, không phải thứ bạn cho người dùng truy cập thông thường. Rõ ràng người dùng đã cần một số loại lưu trữ dài hạn. Các lựa chọn là băng giấy, thẻ đục lỗ và băng từ. Băng từ là mới và đắt tiền. Băng giấy được sử dụng bởi một số hệ thống, nhưng thẻ đục lỗ là một công nghệ đã được sử dụng trong các máy kinh doanh không phải máy tính như máy tính bảng và máy phân loại từ năm 1928 , vì vậy rất nhiều doanh nghiệp đã đầu tư lớn vào máy móc và lưu trữ thẻ đục lỗ.


5
ngay cả trong những năm 1990, tôi đã dành 5 phút thời gian cho máy tính cho toàn bộ học kỳ tại trường đại học cho nhiệm vụ lập trình của mình. May mắn thay, trình chỉnh sửa màn hình được sử dụng bên cạnh không có thời gian CPU khi nhập mã Pascal, hoặc nó sẽ không đủ để tồn tại trong những tháng đó. Mọi người đã viết chương trình của họ trên giấy, kiểm tra chéo và sửa lỗi cho chính họ và những người khác bằng cách sử dụng sách hướng dẫn lập trình giấy, sau đó chương trình được chấp nhận bởi trợ lý giảng dạy, và chỉ sau đó, nó được gõ một cách cẩn thận, mỗi ký tự được kiểm tra bằng giấy gốc để đảm bảo không có lỗi chính tả để đánh lừa trình biên dịch.
jwenting

2
Tôi nhớ một nhiệm vụ Ada vào cuối những năm 1980: vào cuối mỗi phiên, thời gian CPU mà tôi đã sử dụng được biểu thị bằng $.
mouviciel

14

Thẻ đục lỗ không chỉ phục vụ như một phương tiện đầu vào / đầu ra, mà còn là một thiết bị lưu trữ dài hạn. Bạn có thể chạy một chương trình nhiều lần bằng cách tải lại bộ bài cho chương trình đó. Không có ổ đĩa cứng, không có ổ đĩa mềm, không có băng từ.


14

[W] hy các lập trình viên có bao giờ viết chương trình của họ trên thẻ đục lỗ không? Không phải màn hình máy tính và bàn phím đã tồn tại bởi các lập trình viên đã sử dụng chúng sao?

Chúng tôi sử dụng bất cứ cơ chế i / o nào mà máy tính của chúng tôi có. Trong những năm 1960, băng giấy là phổ biến. Vào những năm 1970 (khi tôi bắt đầu lập trình), băng giấy đã được thay thế bằng thẻ đục lỗ.

Vâng, có những cỗ máy có teletypes, và những thứ đáng kinh ngạc gọi là VDU. Nhưng họ chưa ở trong dòng chính. Cả hai công nghệ này được sử dụng phổ biến hơn bởi các nhà khai thác máy tính (máy tính lớn); hiếm khi cho chúng ta.

Ở đỉnh cao của kỷ nguyên thẻ đục lỗ, máy phổ biến nhất là IBM029

Xem cs.uwaterloo.ca / 40th/Chronology/1967.shtml

Trong hình ảnh đó, các sinh viên đang tự đánh vào mã của mình. Các lập trình viên chuyên nghiệp thường viết mã của họ bằng tay trên các bảng mã , được định dạng theo ngôn ngữ bạn đang mã hóa.

Xem en.wikipedia.org/wiki/Fortran

Chúng tôi sẽ gửi các bảng mã của chúng tôi đến trung tâm dữ liệu, nơi các nhà khai thác sẽ đục lỗ chúng (với tốc độ nhanh) và sau đó chuyển thẻ cho nhà điều hành xác minh. Cô ấy (90% nhân viên trung tâm dữ liệu là phụ nữ; chỉ người quản lý của họ là nam) sẽ nhập lại mã của bạn, với máy đục lỗ được đặt ở chế độ xác minh. Máy sẽ phát ra nếu những gì cô ấy gõ khác với những gì trên thẻ. Bằng cách làm điều đó hai lần, họ đã đạt được tốc độđộ chính xác .

Khi bạn lấy lại thẻ của mình, điều đầu tiên bạn sẽ làm là vẽ một đường chéo trên đỉnh của toàn bộ cỗ bài. Khốn kiếp nếu bạn đánh rơi thẻ trước khi làm điều đó! Với đường rút ra, bạn có cơ hội chiến đấu để lấy lại thẻ theo thứ tự sau khi thả chúng.

Rất nhiều chỉnh sửa chương trình bao gồm chèn các thẻ mới, mà chúng ta thường sẽ tự đấm mình và di chuyển các thẻ hiện có đến một nơi khác trong bộ bài. Rõ ràng, đường chéo bạn vẽ ban đầu bây giờ sẽ ít hữu ích hơn, vì vậy sau một vài lần chỉnh sửa, bạn sẽ vẽ một đường khác. Khi các thẻ nhận được quá nhiều dòng hoặc bắt đầu tạo ra lỗi đọc trên đầu đọc thẻ (đầu đọc nhanh nhất hoạt động với tốc độ 1200 thẻ mỗi phút và cao hơn, do đó, thẻ bị đập mạnh mỗi lần chúng được đọc), bạn sẽ gửi lại bộ bài của mình đến trung tâm dữ liệu để được nhân đôi.

Chỉnh sửa nhỏ có thể được thực hiện bằng cách sử dụng một cú đấm tay.

nhập mô tả hình ảnh ở đây

Với kinh nghiệm, bạn sẽ học được mã Hollerith cho mỗi nhân vật và có thể đấm nhanh như sử dụng bàn phím.

Nếu không có ai đang theo dõi khi bạn mắc lỗi, bạn có thể lấp đầy lỗ sai bằng một "chad" đã bị đấm ra khỏi thẻ, cọ xát nó với hình thu nhỏ của bạn để các cạnh của nó được nối với phần còn lại của thẻ. Các bản vá như vậy thường bị lỏng trong quá trình đọc, nhưng chúng thường hoạt động ít nhất một lần. Nếu bản phát hành trong quá trình đọc, nó sẽ gây ra "sự cố" và (các) thẻ sau sẽ bị nghiền nát và vò nát ngoài sự công nhận. Đầu đọc thẻ sẽ bị giật ra khỏi căn chỉnh, yêu cầu Kỹ sư máy tính đến và sửa nó.

Vào cuối những năm 1970, việc tải chương trình của bạn vào băng từ trở nên phổ biến hơn. Băng giữ mã của bạn trong các bản ghi 80 ký tự có độ dài cố định và chúng tôi đã có các chương trình "thủ thư" để thực hiện chỉnh sửa. Khi tôi nhớ lại một người thực sự được gọi là Thủ thư . Bạn sẽ mã hóa bộ bài khác để thực hiện chỉnh sửa hoặc trở nên phổ biến hơn, sử dụng teletype hoặc VDU để chỉnh sửa trực tuyến. Ồ

Cú pháp được sử dụng để điều khiển các trình soạn thảo thủ thư rất giống với cú pháp Edlin của IBM-PC .

Tóm lại, chúng tôi sử dụng những công cụ chúng tôi có sẵn. Công nghệ mới nhất luôn đắt nhất và có thể mất một lúc trước khi mọi người có quyền truy cập vào nó. Đó cũng là một vấn đề về sự thuận tiện và kỹ năng. Tôi đang gõ cái này trên máy tính xách tay của mình, nhưng khi viết email trên điện thoại thông minh của mình, tôi sử dụng đầu vào "swype", trong đó ngón tay của tôi tạo ra một hình zigzag kỳ lạ trên hình ảnh bàn phím và phần mềm phát ra từ tôi dự định.

Chúc may mắn với bài luận của bạn.


9

Sức nặng của lịch sử ...

Hãy quay trở lại máy dệt Jacquard , một máy dệt cơ học được phát minh ra hơn 200 năm trước.

Máy dệt được điều khiển bởi một "chuỗi thẻ", một số thẻ đục lỗ, nối với nhau thành một chuỗi liên tục.

Thẻ dệt thoi Jacquard

Đây là một công nghệ được biết đến và sau đó, Cục điều tra dân số Hoa Kỳ đã sử dụng một máy kiểm đếm - máy Hollerith để kiểm đếm dữ liệu thống kê dân số. Mà được thu thập bằng cách sử dụng thẻ đục lỗ.

Trình lập bảng của Herman Hollerith bao gồm các thành phần vận hành bằng điện đã thu thập và xử lý dữ liệu điều tra dân số bằng cách "đọc" các lỗ trên thẻ đục lỗ giấy

Máy đọc thẻ Hollerith

Những máy kiểm đếm ban đầu này sau đó đã phát triển thành máy tính - nhưng phương thức nhập liệu vẫn giữ nguyên.

Màn hình tồn tại, bàn phím tồn tại (máy đánh chữ), nhưng ý tưởng nối chúng với máy tính? Điều đó đã mất một thời gian.

Ngoài ra, thẻ đục lỗ không chỉ là chương trình đang chạy - chúng còn là dữ liệu thực tế - phương tiện lưu trữ. Không có ổ cứng, không có băng từ.


5

Tôi đã quá già nên tôi đã sử dụng thẻ đục lỗ (và thẻ cảm giác đánh dấu "có thể chỉnh sửa" - bút chì để đánh dấu + cục tẩy để chỉnh sửa!) Tại Uni, và chúng tôi đã gửi bộ bài theo sự phân công của chúng tôi. Không có bàn phím hoặc thiết bị đầu cuối trong tầm nhìn. Và đó không phải từ lâu: thập niên 80.

Bạn nghĩ việc sử dụng thuật ngữ " đánh vào dữ liệu" đến từ đâu (mặc dù, xem bên dưới)? Có một tiêu đề công việc "toán tử bấm phím" - về cơ bản là một người đánh máy ngồi vào máy đục lỗ thẻ và "bấm lỗ" trong mã / dữ liệu.

IBM vẫn gọi chương trình JCL là "bộ bài" và mỗi dòng có tối đa 80 ký tự - tại sao? Vì thẻ đục lỗ tiêu chuẩn có 80 cột và trên các máy tính ban đầu của họ, nhà điều hành sẽ đặt một cỗ bài (một chương trình) vào phễu đầu vào để chạy nó. Hệ điều hành (MVS) đã bị khóa (do lời hứa về khả năng tương thích ngược của IBM) với một giới hạn phần cứng cổ xưa.


Q: Sự khác biệt giữa tay trống và máy trống là gì?

A: Với một máy trống, bạn chỉ có cú đấm thông tin trong một lần.


1
+1 để biết những gì bạn đang nói về. Nếu tôi có thể cho bạn thêm +1 cho trò đùa, tôi sẽ!
John R. Strohm

4

Thời gian máy tính lúc đó cực kỳ đắt đỏ, vì vậy mọi thứ có thể được giảm tải thường là.


Được rồi, điều này có ý nghĩa.

điều này dường như không cung cấp bất cứ điều gì đáng kể qua các điểm được thực hiện và giải thích trong 7 câu trả lời khác
gnat

@gnat nhận thấy câu trả lời này tồn tại trước những câu hỏi khác.
dave

Tôi nhận thấy rằng trước khi bình luận (kiểm tra điều này với các câu trả lời sắp xếp theo cũ nhất). Tôi cũng nhận thấy rằng nó đọc giống như một bình luận (xem Cách trả lời ) ... và nó đi ngược lại với thông báo hiển thị ở trên cùng: "Chúng tôi đang tìm kiếm câu trả lời dài cung cấp một số lời giải thích và bối cảnh. Đừng chỉ đưa ra câu trả lời một dòng; giải thích lý do tại sao câu trả lời của bạn là đúng, lý tưởng là trích dẫn. Câu trả lời không bao gồm giải thích có thể bị xóa. "
gnat

@gnat câu hỏi này ban đầu được hỏi về stackoverflow và nó (cùng với câu trả lời của tôi) đã di chuyển ở đây, vì vậy tha thứ cho sự thiếu hiểu biết của tôi về các quy tắc trên trang web Tôi không đăng bài trên
dave

3

Máy tính đã không bắt đầu như bạn thấy chúng ngày hôm nay, rõ ràng. Họ đã máy móc hơn. Một thẻ đục lỗ được sử dụng để đại diện một cách cơ học số nhị phân. Đầu đọc cơ học di chuyển qua thẻ đục lỗ sẽ đọc "lỗ" hoặc "không lỗ". Những kết hợp lỗ và không có lỗ nào có thể được sử dụng để kiểm soát hành vi của thiết bị cơ khí. Ở đó, chúng tôi có một chương trình để kiểm soát một cái gì đó!


nhưng tại sao các ngôn ngữ như FORTRAN được sử dụng trên thẻ đục lỗ? Tôi đoán chỉ vì thời gian sử dụng máy tính có lẽ rất tốn kém và điều này sẽ giảm chi phí?

1

Băng từ được sử dụng lần đầu tiên để lưu trữ dữ liệu vào năm 1951. Ổ đĩa cứng được giới thiệu vào năm 1956. Ổ đĩa mềm được giới thiệu vào năm 1971. Thẻ đục lỗ có khởi đầu đáng kể trên tất cả các phương tiện lưu trữ này.

Đến thập niên 1970, các tổ chức CNTT ít nhất đang điều tra một động thái tránh xa các thẻ bị đấm. Đến cuối những năm 1980 hoặc đầu những năm 1990, quá trình chuyển đổi đã hoàn tất.

Thẻ đục lỗ được giữ lâu như họ đã làm, khi có phương tiện lưu trữ hiệu quả hơn có sẵn, vì ít nhất một vài lý do.

1) Chúng đã được sử dụng, và quán tính là một điều khó khăn để vượt qua. Nói cách khác, "Chúng tôi luôn làm theo cách này."

2) Chi phí. Một ổ đĩa SATA 1 TB có thể có hơn 50 đô la một chút ngày hôm nay, nhưng một biến thể của Định luật Moore đã khiến chi phí giảm theo thời gian. Để so sánh, một ổ đĩa Seagate ST-506 5 MB vào năm 1980 có giá 1.500 đô la (khoảng 4.300 đô la ngày nay).


1

Trong những ngày đầu, hệ thống máy tính ở trong một căn phòng mà các lập trình viên không thể truy cập và hầu hết các hệ thống chỉ có thể thực hiện một chương trình tại một thời điểm (xử lý hàng loạt). Để chương trình của bạn được thực thi, bạn đã gửi nó qua thẻ đục lỗ hoặc băng giấy và quay lại sau để nhận kết quả thường là bản in. Các lập trình viên hiếm khi được phép truy cập trực tiếp vào 'bàn điều khiển', và nếu họ là để gỡ lỗi một chương trình, không phải để viết nó.

Với sự ra đời của đa nhiệm được ưu tiên vào khoảng năm 1965 (xem Multics ), nhiều người dùng có thể được hỗ trợ cùng một lúc thông qua 'thiết bị đầu cuối'. Ban đầu, các thiết bị đầu cuối này là teletype giống như máy móc và sau đó là màn hình CRT với bàn phím. Những hệ thống này không có sẵn rộng rãi cho đến đầu những năm 1970.

Máy tính đầu tiên của tôi không có đĩa cứng. Để biên dịch một chương trình, trình biên dịch đã được đọc vào bộ nhớ từ các thẻ đục lỗ và được thực thi. Nó đọc mã nguồn của bạn từ các thẻ đục lỗ và đục lỗ phiên bản đã biên dịch. Phiên bản đó được đặt phía sau chương trình nạp và đọc. Chỉ sau đó chương trình của bạn mới được thực thi. Ôi những ngày tháng tốt đẹp;)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.