5
คำจำกัดความที่เป็นทางการสำหรับคำว่า "ภาษา OO บริสุทธิ์"?
ฉันไม่สามารถนึกถึงสถานที่ที่ดีขึ้นในหมู่พี่น้อง SO เพื่อตั้งคำถามเช่นนี้ เดิมทีฉันอยากถามว่า "python เป็นภาษา OO บริสุทธิ์หรือไม่" แต่เมื่อพิจารณาถึงปัญหาและประสบการณ์ที่ไม่สะดวกสบายของผู้คนในขณะที่พยายามกำหนดคำศัพท์ฉันตัดสินใจเริ่มต้นด้วยการได้คำจำกัดความที่ชัดเจนสำหรับคำนั้น ๆ มันค่อนข้างยุติธรรมที่จะเริ่มต้นด้วยการโต้ตอบโดยดร. อลันเคย์ซึ่งเป็นคนบัญญัติศัพท์ (สังเกตแรงบันดาลใจในการเปรียบเทียบทางชีววิทยากับเซลล์หรือสิ่งมีชีวิตอื่น ๆ ) มีวิธีการดังต่อไปนี้ในการเข้าถึงภารกิจ: ให้การวิเคราะห์เชิงเปรียบเทียบโดยการแสดงรายการภาษาการเขียนโปรแกรมที่สามารถแสดง (หรือไม่สามารถทำได้) คุณสมบัติบางอย่างที่ไม่ซ้ำกันและเพียงพอที่จะกำหนดคำศัพท์ (แม้ว่า Smalltalk, Scala, Javaและอื่น ๆ ) เป็นตัวอย่างที่เป็นไปได้ แต่ IMO ไม่เกิดผล ) ให้คำจำกัดความอย่างเป็นทางการ (หรือใกล้เคียงกับมันเช่นในเชิงวิชาการหรือเชิงคณิตศาสตร์มากขึ้น) ให้คำนิยามเชิงปรัชญาที่ต้องพึ่งพาบริบทเชิงความหมายของภาษาที่เป็นรูปธรรมหรือประสบการณ์การเขียนโปรแกรมเบื้องต้น (ต้องมีโอกาสในการอธิบายที่ประสบความสำเร็จโดยชุมชน) รุ่นปัจจุบันของฉัน: "ถ้าเขียนโปรแกรมบางอย่าง ( อย่างเป็นทางการ ) ภาษาที่สามารถ ( หลักไวยากรณ์ ) ความแตกต่างระหว่างการดำเนินงานและถูกดำเนินการเช่นเดียวกับการสรุปเกี่ยวกับประเภทของแต่ละตัวถูกดำเนินการไม่ว่าจะเป็นประเภทนี้เป็นวัตถุ (ในความรู้สึกของ OOP) หรือไม่นั้นเราเรียกว่า ภาษาดังกล่าวเป็นภาษา OO ตราบใดที่มีอย่างน้อยหนึ่งประเภทในภาษานี้ซึ่งเป็นวัตถุในที่สุดหากทุกประเภทของภาษาเป็นวัตถุที่เรากำหนดให้ภาษาดังกล่าวจะบริสุทธิ์ …