แบบจำลองวัตถุ (OOP) ในทฤษฎีประเภทขึ้นอยู่กับ


13

ฉันสนใจในการสร้างแบบจำลองวัตถุจากการเขียนโปรแกรมเชิงวัตถุในทฤษฎีประเภทขึ้นอยู่กับ ในฐานะที่เป็นแอพพลิเคชั่นที่เป็นไปได้ฉันต้องการมีแบบจำลองที่ฉันสามารถอธิบายคุณสมบัติที่แตกต่างของภาษาการเขียนโปรแกรมที่จำเป็น

ฉันสามารถหาเอกสารเกี่ยวกับการสร้างแบบจำลองวัตถุในทฤษฎีประเภทพึ่งพาซึ่งก็คือ:
การเขียนโปรแกรมเชิงวัตถุในทฤษฎีชนิดพึ่งพาโดย A. Setzer (2006)

มีการอ้างอิงเพิ่มเติมในหัวข้อที่ฉันพลาดไปหรืออาจจะมีการอ้างอิงล่าสุดหรือไม่

อาจมีการดำเนินการ (เช่นหลักฐาน) สำหรับนักทฤษฎีบทเช่น Coq หรือ Agda หรือไม่?

คำตอบ:


6

งานก่อนหน้านี้ในบริเวณนี้คือ Bart Jacobs (Nijmegen) และ Marieke Huisman งานของพวกเขาขึ้นอยู่กับเครื่องมือ PVS และอาศัยการเข้ารหัสคลาสของถ่านหิน (ถ้าฉันจำได้อย่างถูกต้อง) ดูหน้าเอกสารตีพิมพ์ของ Marieke สำหรับเอกสารในปี 2000 และวิทยานิพนธ์ระดับปริญญาเอกของเธอในปี 2544 ดูที่ Bart Jacobs ที่อ้างถึงในเอกสาร A Setzer ที่คุณพูดถึง

ย้อนกลับไปในสมัยนั้นพวกเขามีสิ่งที่เรียกว่าเครื่องมือ LOOP แต่ดูเหมือนว่าจะหายไปจาก internets

มีชุดการประชุมเชิงปฏิบัติการที่รู้จักกันในชื่อFTfJP (เทคนิคทางการสำหรับโปรแกรมที่เหมือน Java) ที่เน้นการตรวจสอบอย่างเป็นทางการของโปรแกรม OO ไม่ต้องสงสัยเลยว่างานบางชิ้นใช้ทฤษฎีประเภทขึ้นอยู่กับ / ตรรกะลำดับสูงกว่า ชุดการประชุมเชิงปฏิบัติการดำเนินการมาแล้วประมาณ 14 ปี


3

มีการขยายอย่างมีนัยสำคัญดังนี้กระดาษ Andreas อาเบล, สเตฟาน Adelsberger, แอน Setzer คือการเขียนโปรแกรมแบบโต้ตอบใน AGDA - วัตถุและอินเตอร์เฟซผู้ใช้แบบกราฟิก มันมีห้องสมุด Agdaสำหรับการเขียนโปรแกรมเชิงวัตถุรวมถึง GUI มีเอกสารติดตามผลบางส่วนจาก Stephan Adelsberger เกี่ยวกับการเขียน GUI ที่ตรวจสอบแล้วในโดเมนทางการแพทย์ใน Agda จากการเขียนโปรแกรมเชิงวัตถุ


2

ฉันไม่มีความเชี่ยวชาญเพียงพอในเรื่องที่จะให้ภาพรวมที่ดี แต่ฉันขอแนะนำให้ลบล้างบรรณานุกรมของวิทยานิพนธ์ปริญญาเอกปลายปี 2010 ของ Seokhyun Han, การตรวจสอบโปรแกรม Java ในทฤษฎีประเภทที่ขึ้นอยู่กับประเภทของบันทึกที่ขึ้นอยู่กับการบังคับ

บางงานล่าสุดในตรรกะแยกยังดูเหมือนเกี่ยวข้อง


2

ทำไมคุณถึงดูทฤษฎีชนิดพึ่งพาเพื่อเป็นตัวแทนของ OOP เราไม่สามารถจำลอง OOP ในลักษณะที่น่าพอใจด้วยแคลคูลัสที่ไม่ขึ้นกับอะไร ฉันมีโมเดลแบบไม่เป็นทางการของสิ่งที่ OOP ดูเหมือนพูดเมื่อแปลเป็น System F (หรือFωถ้าคุณต้องการสนับสนุนข้อมูลทั่วไป) และฉันไม่เห็นว่าการพึ่งพาประเภทค่าจะเข้ามาเล่น

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

บางทีคุณอาจต้องการที่จะให้ความหมายปลีกย่อยคงสร้าง OOP ที่กำลัง untyped เช่นตามมาด้วยinstance_of castฉันเห็นว่าการแฮ็กข้อมูลประเภทขึ้นกับว่ามีประโยชน์กับเหตุผลแบบคงที่เกี่ยวกับโปรแกรมดังกล่าว แต่ฉันไม่แน่ใจว่ามันจะ "จำลอง" การดำเนินการเหล่านั้นที่มุ่งเน้นไปที่มุมแบบไดนามิกมันเป็นอะไรที่มากกว่า


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