การทำงานจริงของโปรแกรมของเอด้า เลิฟเลซ (2018)
(twobithistory.org)-
เรื่องราวการก่อตั้ง Microsoft
- ในปี 1975 พอล อัลเลนและบิล เกตส์ได้พัฒนา BASIC interpreter สำหรับไมโครคอมพิวเตอร์ Altair
- ทั้งคู่ทดสอบโดยใช้อีมูเลเตอร์บนระบบคอมพิวเตอร์ของ Harvard และสามารถรันได้สำเร็จบน Altair เครื่องจริง
- ความสำเร็จครั้งนี้นำไปสู่การก่อตั้ง Microsoft ของอัลเลนและเกตส์
-
เอด้า เลิฟเลซกับโปรแกรมคอมพิวเตอร์ตัวแรก
- เอด้า เลิฟเลซเขียนโปรแกรมคอมพิวเตอร์ไว้ในปี 1843 แต่คอมพิวเตอร์เครื่องนั้นไม่ได้ถูกสร้างขึ้น จึงไม่เคยถูกรันจริง
- โปรแกรมของเลิฟเลซถูกเรียกว่าเป็นโปรแกรมคอมพิวเตอร์ตัวแรกของโลก และมีข้อถกเถียงเกี่ยวกับคุณูปการของเธอ
- เลิฟเลซคิดค้นวิธีจัดระเบียบการคำนวณเป็นกลุ่มที่ทำซ้ำได้ ซึ่งเท่ากับเป็นการประดิษฐ์ลูปขึ้นมา
-
โปรแกรมของเลิฟเลซสำหรับการคำนวณจำนวนแบร์นูลลี
- เลิฟเลซออกแบบโปรแกรมเพื่อคำนวณจำนวนแบร์นูลลี
- จำนวนแบร์นูลลีเกี่ยวข้องกับโจทย์เก่าแก่ในคณิตศาสตร์ และมีนักคณิตศาสตร์หลายคนศึกษามัน
-
ชาร์ลส์ แบบเบจและคอมพิวเตอร์เชิงกล
- แบบเบจออกแบบคอมพิวเตอร์เชิงกลไว้สองชนิด คือ Difference Engine และ Analytical Engine
- Difference Engine ถูกออกแบบมาเพื่อคำนวณตารางลอการิทึมด้วยกลไก ส่วน Analytical Engine สามารถทำการคำนวณที่ซับซ้อนกว่าได้
- Analytical Engine สามารถตั้งโปรแกรมได้ด้วย punch card และยังทำการคูณกับการหารได้ด้วย
-
บันทึกของผู้แปล
- เลิฟเลซแปลบทความของ Menabrea เป็นภาษาอังกฤษ พร้อมเพิ่มบันทึกของตนเองเข้าไป
- เธอคาดการณ์ว่าเครื่องจักรจะสามารถทำงานได้หลากหลาย ไม่ใช่แค่การคำนวณทางคณิตศาสตร์ แต่รวมถึงการประพันธ์ดนตรีด้วย
-
โปรแกรมของเลิฟเลซกับข้อถกเถียงเรื่องโปรแกรมเมอร์คนแรก
- โปรแกรมของเลิฟเลซเป็นโปรแกรมที่ซับซ้อน มีทั้งลูปและคำสั่งแตกแขนง
- โปรแกรมของเธอมีบั๊กอยู่บ้าง แต่ก็อาจมองได้ว่าเป็นส่วนหนึ่งของความพยายามในการเขียนโปรแกรมที่ซับซ้อน
- เลิฟเลซได้รับการขนานนามว่าเป็นโปรแกรมเมอร์คนแรก และโปรแกรมของเธอก็ล้ำหน้ากว่าโปรแกรมอื่น ๆ ในยุคนั้นมาก
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
ใน "แผนภาพการพัฒนา" ของ Lovelace ส่วนที่ระบุเป็น v5 / v4 จริง ๆ แล้วควรเป็น v4 / v5 ซึ่งมีความเป็นไปได้สูงว่าเป็นความผิดพลาดในการพิมพ์ ข้อผิดพลาดนี้ถูกมองว่าเป็นบั๊กที่เก่าแก่ที่สุดในประวัติศาสตร์คอมพิวติ้ง
Lovelace คิดอย่างรอบคอบถึงวิธีจัดระเบียบงานเป็นกลุ่มที่ทำซ้ำได้ จนคิดค้นลูปขึ้นมา เธอตระหนักว่าการติดตามการเปลี่ยนแปลงสถานะของตัวแปรเป็นเรื่องสำคัญ และได้นำสัญลักษณ์มาใช้เพื่อแสดงสิ่งนี้
ในปี 1975 Paul Allen บินไป Albuquerque เพื่อสาธิต BASIC interpreter บนไมโครคอมพิวเตอร์ Altair Allen และ Gates ทดสอบโดยใช้อีมูเลเตอร์บนระบบคอมพิวเตอร์ของ Harvard เพราะพวกเขาไม่มี Altair ที่ใช้งานได้จริง
ส่วนที่ยอดเยี่ยมที่สุดของงานของ Lovelace อยู่ใน "หมายเหตุ" ที่แนบมากับงานแปล
Menabrea มอง analytical engine ว่าเป็น "เครื่องมือสำหรับทำให้การคำนวณที่ยาวนานเป็นอัตโนมัติ" ซึ่งช่วยปลดปล่อยความสามารถทางปัญญา เพื่อให้นักวิทยาศาสตร์สามารถคิดในระดับที่สูงขึ้นได้
การแปลโปรแกรมของ Lovelace เป็น C ไม่ได้ดูแปลกนัก ยกเว้นเพียงว่าชื่อตัวแปรไม่ได้ช่วยอะไรเท่าไร
มีคนอยากรู้รายละเอียดของโปรแกรมที่ Babbage เขียนไว้ การที่ Lovelace เป็นโปรแกรมเมอร์คนแรกนั้นสื่อเป็นนัยว่า Babbage เองไม่ได้คิดว่าจะใช้เครื่องของเขาอย่างไร
มีคนสงสัยว่ามีใครเคยสร้าง virtual machine จากชุดคำสั่งของ Babbage แล้วลองรันโปรแกรมของ Ada หรือไม่
มีคนสงสัยเกี่ยวกับคำนำหน้าชื่อในยุคนั้นของเธอ ซึ่งคือ Augusta Ada King, Countess of Lovelace ว่าในเวลานั้นเป็นเรื่องปกติหรือไม่ที่จะย่อบรรดาศักดิ์มาใช้แทนนามสกุล หรือว่านี่เป็นวิธีเรียกแบบสมัยใหม่
มีคนแบ่งปันประสบการณ์การสำรวจลำดับอย่าง 1 - 1 + 1 - 1 + 1 - 1... โดยเชื่อมโยงกับ Python ความน่าจะเป็น และอนันต์