โปรแกรม Unix ที่ยิ่งใหญ่ที่สุด

ผู้เขียนบทความ ดักลาส แมคอิลรอย เป็นนักคณิตศาสตร์ วิศวกร และโปรแกรมเมอร์ชาวอเมริกัน เขาเป็นที่รู้จักกันดีที่สุดในการพัฒนาไปป์ไลน์ในระบบปฏิบัติการยูนิกซ์ หลักการของการเขียนโปรแกรมเชิงคอมโพเนนต์ และโปรแกรมอรรถประโยชน์ดั้งเดิมหลายอย่าง: สะกด แตกต่าง เรียงลำดับ เข้าร่วม พูด tr

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

แชร์โปรแกรมไหนที่คุณยังประทับใจ?

PDP-7 ยูนิกซ์

สำหรับผู้เริ่มต้น ระบบ PDP-7 Unix เอง ความเรียบง่ายและพลังของมันทำให้ฉันเปลี่ยนจากเครื่องเมนเฟรมที่มีประสิทธิภาพไปสู่เครื่องขนาดเล็ก เป็นระบบไฟล์ลำดับชั้นที่เป็นแก่นสาร เชลล์แยกต่างหาก และการควบคุมกระบวนการระดับผู้ใช้ที่ Multics บนเมนเฟรมไม่สามารถทำได้หลังจากการพัฒนาเป็นเวลาหลายร้อยปี ข้อบกพร่องของ Unix (เช่น โครงสร้างเรกคอร์ดของระบบไฟล์) เป็นเพียงคำแนะนำและปลดปล่อยเท่าๆ กับนวัตกรรม (เช่น การเปลี่ยนทิศทาง I/O ของเชลล์)

dc

ห้องสมุดคณิตศาสตร์เครื่องคิดเลขตั้งโต๊ะความแม่นยำตัวแปรของ Robert Morris ใช้การวิเคราะห์ข้อผิดพลาดผกผันเพื่อกำหนดความแม่นยำที่จำเป็นในแต่ละขั้นตอนเพื่อให้ได้ผลลัพธ์ที่แม่นยำโดยผู้ใช้ ในการประชุมวิศวกรรมซอฟต์แวร์ของ NATO ปี 1968 ในรายงานของฉันเกี่ยวกับส่วนประกอบของซอฟต์แวร์ ฉันได้เสนอขั้นตอนอ้างอิงที่สามารถสร้างความแม่นยำที่ต้องการได้ แต่ฉันไม่รู้ว่าจะนำส่วนประกอบเหล่านั้นไปปฏิบัติอย่างไร dc ยังคงเป็นโปรแกรมเดียวที่ฉันรู้ว่าสามารถทำได้

พิมพ์ผิด

Typo จัดเรียงคำในข้อความตามความคล้ายคลึงกับข้อความที่เหลือ การสะกดผิด เช่น 'hte' มักจะอยู่ท้ายรายการ Robert Morris กล่าวอย่างภาคภูมิใจว่าโปรแกรมนี้จะทำงานได้ดีเท่าเทียมกันสำหรับทุกภาษา แม้ว่าการพิมพ์ผิดจะไม่ช่วยให้คุณพบข้อผิดพลาดด้านการออกเสียง แต่ก็เป็นประโยชน์อย่างยิ่งสำหรับนักเรียงพิมพ์ทุกคน และทำได้ดีมากก่อนที่จะมีเครื่องมือตรวจสอบการสะกดคำในพจนานุกรมที่น่าสนใจน้อยกว่าแต่แม่นยำกว่า

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

อีคิว

ด้วยการถือกำเนิดของการตั้งค่าโฟโตไทป์ การพิมพ์สัญกรณ์ทางคณิตศาสตร์แบบคลาสสิกจึงเป็นไปได้ แต่น่าเบื่อมาก Lorinda Cherry ตัดสินใจพัฒนาภาษาคำอธิบายระดับที่สูงขึ้น และในไม่ช้า Brian Kernigan ก็เข้าร่วมกับเธอ การเคลื่อนไหวที่ยอดเยี่ยมของพวกเขาคือการใส่ประเพณีปากเปล่าลงในงานเขียน ดังนั้น eqn จึงเรียนรู้ได้ง่ายอย่างน่าทึ่ง ตัวประมวลผลล่วงหน้าภาษานิพจน์ทางคณิตศาสตร์ตัวแรกในประเภทนี้ eqn ไม่ได้รับการปรับปรุงมากนักตั้งแต่นั้นมา

โครงสร้าง

Brenda Baker เริ่มพัฒนาตัวแปลง Fortan เป็น Ratfor ตามคำแนะนำของเจ้านายของเธอ ฉันเอง ฉันคิดว่าสิ่งนี้อาจนำไปสู่การจัดลำดับข้อความต้นฉบับใหม่เป็นพิเศษ จะไม่มีหมายเลขใบแจ้งยอด แต่อย่างอื่นไม่สามารถอ่านได้มากไปกว่ารหัส Fortran ที่มีโครงสร้างดี เบรนด้าพิสูจน์ว่าฉันคิดผิด เธอค้นพบว่าทุกโปรแกรมของ Fortran มีรูปแบบที่มีโครงสร้างแบบบัญญัติ โปรแกรมเมอร์ชอบรูปแบบมาตรฐานมากกว่าสิ่งที่พวกเขาเขียนขึ้นเอง

ปาสคาล

การวินิจฉัยไวยากรณ์ในคอมไพเลอร์ที่สร้างโดยกลุ่มของ Sue Graham ที่ Berkeley นั้นมีประโยชน์มากที่สุดเท่าที่ฉันเคยเห็นมา—และดำเนินการโดยอัตโนมัติ เมื่อเกิดข้อผิดพลาดทางไวยากรณ์ คอมไพลเลอร์จะแจ้งให้คุณแทรกโทเค็นเพื่อดำเนินการแยกวิเคราะห์ต่อไป ไม่พยายามที่จะอธิบายว่าอะไรผิด ด้วยคอมไพเลอร์นี้ ฉันได้เรียนรู้ภาษาปาสคาลในเย็นวันหนึ่งโดยไม่ต้องใช้คู่มือใดๆ

ส่วน

ซ่อนอยู่ในโมดูล WWB (Writer's Workbench) parts Lorinda Cherry กำหนดส่วนของคำพูดสำหรับคำในข้อความภาษาอังกฤษโดยยึดตามกฎพจนานุกรม การสะกดคำ และไวยากรณ์เพียงเล็กน้อยเท่านั้น จากคำอธิบายประกอบนี้ โปรแกรม WWB จะแสดงตัวบ่งชี้สไตล์ของข้อความ เช่น ความแพร่หลายของคำคุณศัพท์ อนุประโยครอง และประโยคที่ซับซ้อน เมื่อ Lorinda ถูกสัมภาษณ์ในรายการ NBC's Today และพูดคุยเกี่ยวกับนวัตกรรมการตรวจสอบไวยากรณ์ในข้อความ WWB นี่เป็นการกล่าวถึง Unix เป็นครั้งแรกทางโทรทัศน์

นกกระยาง

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

ปู

เมตาโปรแกรมที่มีเสน่ห์ของ Luca Cardelli สำหรับระบบหน้าต่าง Blit ได้ปล่อยปูเสมือนที่สัญจรไปมาในพื้นที่ว่างของหน้าจอ กัดขอบหน้าต่างที่ใช้งานอยู่มากขึ้นเรื่อยๆ

ความคิดทั่วไปบางอย่าง

แม้ว่าจะมองไม่เห็นจากภายนอก แต่ทฤษฎีและอัลกอริธึมก็มีบทบาทสำคัญในการสร้างโปรแกรมส่วนใหญ่เหล่านี้: typo, dc, struct, pascal, egrep ในความเป็นจริงมันเป็นการประยุกต์ใช้ทฤษฎีที่ผิดปกติซึ่งน่าประหลาดใจที่สุด

เกือบครึ่งหนึ่งของรายการ — pascal, struct, parts, eqn — เดิมเขียนโดยผู้หญิง ซึ่งมากกว่าจำนวนประชากรศาสตร์ของผู้หญิงในวิทยาการคอมพิวเตอร์อย่างมาก

ดักลาส แม็คอิลรอย
มีนาคม 2020


ที่มา: will.com

เพิ่มความคิดเห็น