การประยุกต์ใช้ความหมายเชิง Denotational กับการออกแบบโปรแกรม


30

ฉันได้อ่านนิดหน่อยเกี่ยวกับdenotational semantics (DS) และฉันก็รู้สึกทึ่งมากเกี่ยวกับกระบวนการออกแบบโปรแกรมคอมพิวเตอร์ที่ประเภทและฟังก์ชั่นมีการแมปที่แข็งแกร่งและชัดเจนกับคณิตศาสตร์

มีทรัพยากรใดบ้างที่พูดถึงการออกแบบโปรแกรมโดยยึด DS เป็นรายละเอียดหรือไม่? ฉันเคยเห็นการรักษาผิวเผินบางอย่างของเรื่อง

ฉันคุ้นเคยกับ Haskell, Scala, Common LISP และ Scheme เล็กน้อยดังนั้นทรัพยากรใด ๆ ที่ใช้ภาษาเหล่านั้นจะได้รับการชื่นชมอย่างมาก


7
คุณควรตรวจสอบงานโดย Conal Elliott: conal.net

2
Curry-Howard isomorphism เป็นคำหลักหากคุณยังไม่รู้
pedrofurla

2
ฉันคิดว่าคล้ายกัน ฉันพยายามออกแบบการจำลองเชิงตัวเลขของคะแนนวัตถุที่แข็งและของเหลว นี่ ( github.com/takagi/SimulationDSL ) เป็นหนึ่งในการทดลองของฉันที่ฉันแสดงพีชคณิตเวกเตอร์และสมการบางส่วนใน Haskell DSL ฉันตรวจสอบงานของ Conal Elliott ด้วย

3
คุณควรตรวจสอบสายการบิน LTU อาจมีการสนทนาเก่า ๆ ที่ดีอยู่ที่นั่นหรืออย่างน้อยคำถามของคุณน่าจะเหมาะสมกว่าใน SO

3
คุณอาจต้องการอ่านซามูเอลคามินของ "ความหมายเชิงการนำไปใช้ของผู้จัดพิมพ์ที่สวยของ Wadler" มันเปรียบเทียบวิธีการปฏิบัติงานและ denotational เพื่อดำเนินการตัวอย่างที่รู้จักกันดีในโลกแห่งความจริงและรวมถึงการสนับสนุนสำหรับแนวทาง denotational
stephen tetley

คำตอบ:


13

การออกแบบ denotational ( การออกแบบโปรแกรมที่ฝังรากและไหลจากความหมายเชิงDenotational ) เป็นวิธีการหลักของฉัน ไม่กี่ปีที่ผ่านมาในขณะที่เขียนเกี่ยวกับ FRP ฉันชัดเจนมากขึ้นเกี่ยวกับสิ่งที่ฉันทำ ดูPush-ดึงการเขียนโปรแกรมปฏิกิริยาการทำงาน สำหรับคำอธิบายที่ชัดเจนมากขึ้นของกระบวนทัศน์และความหลากหลายของตัวอย่างให้ดูที่การออกแบบ denotational กับ morphisms เมื่อฉันรู้ตัวถึงรูปแบบฉันเริ่มมองหามันทุกที่ ฉันรู้ว่าฉันมีสิ่งที่เป็นนามธรรมรั่วไหล สำหรับคำอธิบายเบื้องต้นที่ไม่เป็นทางการโปรดดูบล็อกโพสต์Semantic Designของ Luke Palmer

ฉันสนใจการออกแบบ denotational อยู่เสมอดังนั้นฉันชอบที่จะได้ยินเกี่ยวกับการสำรวจของคุณ


ขอบคุณสำหรับแหล่งข้อมูลที่ดี ฉันจะตรวจสอบพวกเขาก่อนที่ฉันจะทำเครื่องหมายคำถามว่าตอบแล้ว
Tim Stewart

ขอบคุณที่ให้ลิงค์กับงานของคุณ! มันเป็นครั้งที่ 2 ที่ฉันหันมาศึกษา น่าเสียดายที่conal.netไม่ตอบรับ มีสถานที่อื่นที่สามารถรับได้หรือไม่
imz - Ivan Zakharyaschev


1
@ imz - IvanZakharyaschev ขออภัย เว็บเซิร์ฟเวอร์ของฉันหยุดทำงาน การสำรองข้อมูลในขณะนี้. หวังว่าฉันจะย้ายมันเร็ว ๆ นี้และมันจะมีเสถียรภาพมากขึ้น
Conal

7

เราใช้ความหมายเชิง Denotational กับการออกแบบภาษาโดยอ้างว่าการออกแบบภาษาโดยเฉพาะอย่างยิ่งภาษาเฉพาะโดเมนควรเริ่มต้นด้วยคำจำกัดความของความหมาย หากคุณมีความสนใจในรายละเอียดคุณอาจต้องการที่จะดูการออกแบบ DSLและความหมายที่ขับเคลื่อนด้วยSemantics เป็นครั้งแรก! ทบทวนกระบวนการออกแบบภาษาใหม่


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