ใครเป็นผู้คิดค้นพอยน์เตอร์?


12

คำถามง่ายๆสวย แต่สิ่งที่ฉันไม่สามารถค้นหา ใครเป็นคนแรกที่อธิบายความคิดของตัวชี้? แนวคิดนามธรรมเอง


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

3
อย่าลืม Instruction Pointer (IP) ที่นี่ (aka Program Counter ) "อันที่จริงตัวนับโปรแกรม (หรือบล็อกฮาร์ดแวร์ที่เทียบเท่ากันที่ให้บริการจุดประสงค์เดียวกัน) นั้นเป็นศูนย์กลางของสถาปัตยกรรม von Neumann"
Scott Whitlock

@Rob - มีการเก็บหน่วยความจำที่เข้าถึงได้ (อย่างน้อยที่สุดในระดับต่ำสุด) โดยการกำหนดเวลาแทนที่จะตามที่อยู่ - สายการหน่วงเวลาของปรอท ฯลฯ โดยหลักการแล้วมันเป็นไปได้ที่จะทำการประมวลผลข้อมูลบางอย่างโดยไม่ต้องประดิษฐ์ที่อยู่ นอกจากนี้รุ่นเครื่องจักรทัวริงมีเทปเท่านั้น (อ๊ะทำไมฉันถึงบอกว่าสแต็คล่ะ) มีคำตอบที่เป็นไปได้ "อย่างไร" IOW แม้ว่าในชีวิตจริงฉันคิดว่าคุณพูดถูก
Steve314

คำตอบ:


4

Bud Lawsonได้รับรางวัล Computer Pioneer Awardจาก IEEEเมื่อไม่กี่ปีที่ผ่านมาเพื่อประดิษฐ์ตัวชี้ในปี 1964


PM Sherman ในปี 1963 ถือกำเนิดเขา ดูการเขียนโปรแกรมและการเข้ารหัสของคอมพิวเตอร์ดิจิตอล viii 152: "ดัชนีเหล่านี้ชี้ไปที่ตำแหน่งในหน่วยความจำดังนั้นพวกมันจึงถูกเรียกว่าพอยน์เตอร์เมื่อมีการใช้งาน"
Geremia

15

พอยน์เตอร์เป็นพื้นที่จัดเก็บที่ระบุโดยเนื้อหาของการลงทะเบียน เนื่องจากภาษาแอสเซมเบลอร์ดังกล่าวใช้วิธีนี้ในบางวิธีและก่อนหน้านั้นรหัสเครื่องทั้งหมดที่ใช้รหัสยากจะใช้สิ่งนี้

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


+1 ฉันสมมติว่า Difference Engine นั้นง่ายเกินไปที่จะต้องลงทะเบียน แต่ไม่มีใครรู้ว่าเครื่องมือวิเคราะห์จะต้องการพวกเขาหรือไม่?

@ Mark - นี่อาจเป็นปัญหานิยาม แม้แต่การดำเนินการทางคณิตศาสตร์อย่างเดียวเช่นการเพิ่มคุณมีสองค่าอินพุตและเอาต์พุตที่ต้องการการแสดงบางอย่างในเครื่องจักร การเป็นตัวแทนนั้นอาจเรียกว่าการลงทะเบียน แม้แต่ลูกคิดก็อาจอ้างว่ามีทะเบียน
Steve314

@ Steve - จุดดี

จุดสำคัญที่นี่คือ "พื้นที่จัดเก็บที่ระบุโดยเนื้อหาของการลงทะเบียน" นั่นคือความสามารถในการโหลดและจัดเก็บการลงทะเบียนจากหน่วยความจำบางส่วนโดยใช้ที่อยู่ในการลงทะเบียนอื่นและความสามารถในการจัดการที่อยู่นี้
James Anderson

5

ตัวชี้มีการอ้างอิงที่กว้างกว่า ภาษาแรกที่มีอะไรเช่นนั้นคือ ALGOL 60 ซึ่งสามารถโทรได้โดยใช้ชื่อ นี้คำตอบในดังนั้นไปในรายละเอียดบางส่วน PL / ฉันมีตัวชี้เช่นเดียวกับBCPLซึ่งหมายความว่า CPL อาจทำเช่นกันแม้ว่าฉันจะไม่พบหลักฐานใด ๆ CPL นั้นยากมากที่จะให้ข้อมูลที่เป็นรูปธรรม

หากต้องการตอบคำถามของคุณโดยตรงเกี่ยวกับ "ใคร" ทั้ง DW Barron, Christopher Strachey หรือ Martin Richards อาจจะเรียกคำว่า "ตัวชี้"


อย่าลืม B - มันมีพอยน์เตอร์! PL / I ด้วยและฉันแน่ใจว่ามีคนอื่นมาก่อนมันไม่นับชุดประกอบและเครื่องจักรทัวริง
Pubby

นั่นก็คือปี 1966
วิศวกรโลก

ALGOL มีพอย
น์เตอร์

4

เป็นการยากที่จะคาดเดาว่าใครจะมาพร้อมกับพวกเขา แต่การลงทะเบียนดัชนีใน IBM 704 อาจเป็นการใช้งานครั้งแรก จากมุมมองภาษาการเขียนโปรแกรมจึงไม่ต้องสงสัยเลยว่ามันจะเป็นภาษาประกอบของ 704

เห็นได้ชัดว่าใช้เวลาไม่กี่ปีหลังจากนั้นก่อนที่ภาษาการเขียนโปรแกรมระดับสูงได้รับการออกแบบมาเพื่อใช้ประโยชน์จากนวัตกรรมนี้ แต่โดยส่วนใหญ่แล้วการประดิษฐ์ได้เสร็จสิ้นแล้วและส่วนใหญ่ลงมาเพื่อเลือกชื่อสัญลักษณ์และอื่น ๆ ได้รับการสนับสนุน.


0

พอยน์เตอร์เป็นแนวคิดพื้นฐานที่ใช้ใน "การกำหนดตำแหน่งทางอ้อม" ฟังก์ชันบน CPUs ส่วนใหญ่จะย้อนกลับไปอย่างน้อยเท่ากับ 6502

พลเรือจัตวาใช้ "kernal" บนคอมพิวเตอร์ VIC 20, C64 และ C128 ซอฟต์แวร์ที่อยู่คงที่สามารถเรียกได้ว่าจะถูกเปลี่ยนเส้นทางไปยังรหัสปัจจุบัน พวกเขาสามารถปรับเปลี่ยนระบบปฏิบัติการโดยไม่ทำลายซอฟต์แวร์ที่มีอยู่

ฉันคิดว่า 8080 และ Z80 มีที่อยู่ทางอ้อมด้วย แต่ฉันก็ไม่แน่ใจและฉันจำไม่ได้ใน 8008


1
ที่จริงแล้วพอยน์เตอร์ใช้โดยการกำหนดแอดเดรสโดยตรงเช่นกัน พวกมันเป็นเพียงพอยน์เตอร์เวลาคงที่คอมไพล์ - เว้นแต่คุณจะใช้รหัสที่แก้ไขเองได้แน่นอน ฉันเป็นแฟนตัวยงของ 6502 (หรืออย่างเคร่งครัด 6510) เช่นกัน - เครื่องแรกของฉันคือ C64 - แต่ชิปนั้นไม่เกี่ยวข้องกันที่นี่ ไมโครโพรเซสเซอร์ของผู้บริโภคยุคแรก ๆ ไม่ได้คิดค้นวิธีการใหม่ ๆ มากนักแนวคิดเหล่านี้มีมานานหลายทศวรรษแล้ว เป็นเพียงความคิดเหล่านั้นที่ไม่สามารถนำไปใช้ประโยชน์ได้ในฐานะชิปราคาไม่แพงจนถึงยุค 70 และไม่ได้กลายเป็นของเล่นสำหรับผู้บริโภคจนถึงยุค 80
Steve314

0

เป็นครั้งแรกที่ไวยากรณ์และความหมายที่เป็นรูปธรรมซึ่งพัฒนาขึ้นสำหรับตัวแปรตัวชี้สำหรับภาษาการเขียนโปรแกรม PL / I ในปี 1964

บทความเกี่ยวกับเรื่องนี้ปรากฏในปี 1967 ใน ACM Communications ในปี 1967

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