ภาษาแรกที่รองรับการเขียนโปรแกรมทั่วไป


15

ซึ่งเป็นภาษาแรกที่มีการสนับสนุนการเขียนโปรแกรมทั่วไปและสิ่งที่เป็นภาษาที่พิมพ์ครั้งแรกที่สำคัญแบบคงที่ (ใช้กันอย่างแพร่หลาย) ด้วยการสนับสนุน generics

Generics ใช้แนวคิดของประเภทพารามิเตอร์เพื่อให้หลายประเภท คำทั่วไปหมายถึง "ที่เกี่ยวข้องกับหรือเหมาะสมกับกลุ่มของกลุ่มใหญ่"

ฉันได้เห็นการกล่าวถึง "ครั้งแรก" ดังต่อไปนี้:

ลำดับความแปรปรวนของตัวแปรอันดับหนึ่งกลายเป็นองค์ประกอบมาตรฐานของภาษาการเขียนโปรแกรมแบบคงที่ เริ่มต้นด้วย System F [20,42] และการเขียนโปรแกรมเชิงหน้าที่การสร้างได้พบวิธีการของพวกเขาเป็นภาษาหลักเช่น Java และ C # ในภาษาเหล่านี้ความแปรปรวนแบบพาราเมตริกเป็นอันดับแรกมักเรียกว่ายาชื่อสามัญ

จาก " Generics of a More Kind" , Adriaan Moors, Frank Piessens และ Martin Odersky

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

จาก Wikipedia โปรแกรมทั่วไป

คำตอบ:



4

อาจกระเพื่อม การทำเช่นนั้นมากหรือน้อยในปี 1960 ในความเป็นจริงหากคำถามคือสิ่งที่เป็นภาษาแรกที่ทำอะไรที่ค่อนข้างทราบคุณอาจจะพบว่ามันกระเพื่อม มันน่ากลัวมากที่รู้ว่าฟีเจอร์ใหม่ที่ยอดเยี่ยมในภาษา X นั้นแท้จริงแล้วเป็นฟีเจอร์ใหม่ที่ยอดเยี่ยมของ lisp ในปี 1960!


7
เสียงกระเพื่อมไม่ได้ถูกพิมพ์แบบคงที่ดังนั้น "generics" ไม่ได้ทำให้รู้สึกในบริบทที่
Rufflewind

"Generics" ก็ใช้ได้ดีสำหรับการพิมพ์แบบคงที่เท่านั้น มีระบบพิมพ์หลายชนิดที่มีคุณสมบัติแตกต่างกัน
Zachary K

@ZacharyK คุณลักษณะเฉพาะของระบบประเภทที่มีความหมายโดย "generics" คือความหลากหลายแบบพาราเมตริกซึ่งไม่สมเหตุสมผลในภาษาที่ไม่มีการพิมพ์
แจ็ค

3

ก่อนหน้า generics จะมีเทมเพลตและก่อนการแทนที่แมโครนั้น


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

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