อ่าน 2 นาที
แคลคูลัสร่วม
แคลคูลัสแบบรวม (join-calculus)เป็นแคลคูลัสกระบวนการที่พัฒนาขึ้นที่INRIAแคลคูลัสแบบรวมได้รับการพัฒนาขึ้นเพื่อให้เป็นพื้นฐานอย่างเป็นทางการสำหรับการออกแบบ ภาษา
แคลคูลัสร่วม
แคลคูลัสแบบรวม (join-calculus)เป็นแคลคูลัสกระบวนการที่พัฒนาขึ้นที่INRIAแคลคูลัสแบบรวมได้รับการพัฒนาขึ้นเพื่อให้เป็นพื้นฐานอย่างเป็นทางการสำหรับการออกแบบ ภาษา การเขียนโปรแกรมแบบกระจายและด้วยเหตุนี้จึงจงใจหลีกเลี่ยงโครงสร้างการสื่อสารที่พบในแคลคูลัสกระบวนการอื่น ๆ เช่น การสื่อสาร แบบนัดพบซึ่งยากต่อการนำไปใช้ในสภาพแวดล้อมแบบกระจาย[ 1 ]แม้จะมีข้อจำกัดนี้ แคลคูลัสแบบรวมก็ยังสามารถแสดงออกได้มากเท่ากับแคลคูลัส π แบบเต็ม การเข้ารหัสของแคลคูลัส π ในแคลคูลัสแบบรวม และในทางกลับกัน ได้รับการสาธิตแล้ว[ 1 ]
แคลคูลัสร่วมเป็นสมาชิกของ ตระกูล แคลคูลัส πของแคลคูลัสกระบวนการ และสามารถพิจารณาได้ว่าเป็นแคลคูลัส π แบบอะซิงโครนัสที่มีข้อจำกัดที่เข้มงวดหลายประการ: [ 1 ]
- ข้อจำกัดขอบเขต การรับ และการรับแบบจำลองถูกรวมเข้าไว้ในโครงสร้างเดียวทาง ไวยากรณ์ นั่น คือ คำจำกัดความ
- การสื่อสารจะเกิดขึ้นเฉพาะกับชื่อที่กำหนดไว้เท่านั้น
- สำหรับชื่อที่กำหนดไว้แต่ละชื่อ จะมีตัวรับสัญญาณที่จำลองขึ้นมาเพียงหนึ่งเดียวเท่านั้น
อย่างไรก็ตาม ในฐานะภาษาสำหรับการเขียนโปรแกรม แคลคูลัสแบบรวมมีข้อดีอย่างน้อยหนึ่งประการเหนือกว่าแคลคูลัสแบบ π ซึ่งก็คือการใช้รูปแบบการรวมแบบหลายทางความสามารถในการจับคู่กับข้อความจากหลายช่องทางพร้อมกัน[ 2 ]
การนำไปใช้
ภาษาที่ใช้แคลคูลัสการเชื่อมต่อ
ภาษาการเขียนโปรแกรม join-calculus เป็นภาษาใหม่ที่อิงตามแคลคูลัสกระบวนการ join-calculus โดยถูกนำไปใช้ในรูปแบบตัวแปลภาษาที่เขียนด้วยOCamlและรองรับการเขียนโปรแกรมแบบกระจายที่มีประเภทคงที่ การสื่อสารระยะไกลแบบโปร่งใส การเคลื่อนย้ายตามเอเจนต์ และการตรวจจับความล้มเหลวบางอย่าง[ 3 ]
- แม้ว่าจะไม่ได้อิงตามหลักการคำนวณการเชื่อมต่อโดยตรง แต่ระบบกฎของCLIPSก็ได้นำหลักการนี้มาใช้ หากกฎทุกข้อลบข้อมูลนำเข้าเมื่อถูกเรียกใช้งาน (เรียกคืนข้อเท็จจริงที่เกี่ยวข้องเมื่อถูกเรียกใช้งาน)
มีการนำแคลคูลัสการเชื่อมต่อ (join-calculus) ไปใช้งานในหลายรูปแบบ โดยเป็นการต่อยอดจากภาษาโปรแกรมที่มีอยู่เดิม:
- JoCamlคือเวอร์ชันหนึ่งของOCamlที่เพิ่มเติมด้วยฟังก์ชันการคำนวณการเชื่อมต่อ (join-calculus primitives)
- Polyphonic C#และCω ซึ่งเป็นรุ่นต่อจาก Polyphonic C# นั้น เป็นการต่อยอดจากC#
- MC# และ Parallel C# เป็นการต่อยอดจาก Polyphonic C#
- Join JavaขยายJava
- ข้อเสนอ Concurrent Basic ที่ใช้ Join-calculus
- JErlang (J ย่อมาจาก Join, Erjangคือ Erlang สำหรับ JVM) [ 4 ]
การฝังตัวในภาษาโปรแกรมอื่นๆ
การใช้งานเหล่านี้ไม่ได้เปลี่ยนแปลงภาษาโปรแกรมพื้นฐาน แต่เป็นการนำการดำเนินการแคลคูลัสแบบรวมมาใช้ผ่านไลบรารีที่กำหนดเองหรือ DSL:
- ไลบรารี ScalaJoins และChymystนั้นเขียนด้วยภาษาScala
- JoinHsโดย Einar Karttunen และsyallop/Join-Languageโดย Samuel Yallop เป็นภาษาเฉพาะโดเมน (DSL) สำหรับแคลคูลัส Join ในภาษาHaskell
- Joinads - การใช้งานแคลคูลัสการเชื่อมต่อแบบต่างๆ ในF#
- CocoaJoin เป็นการใช้งานแบบทดลองที่เขียนด้วยภาษา Objective-Cสำหรับ iOS และ Mac OS X
- ไลบรารี Join Python ในPython 3 [ 5 ]
- C++ผ่านBoost [ 6 ] (สำหรับ Boost ตั้งแต่ปี 2009 ประมาณเวอร์ชัน 40 ปัจจุบัน (ธันวาคม 2019) คือเวอร์ชัน 72)
ลิงก์ภายนอก
- INRIA, หน้าหลัก Join Calculus
- Microsoft Research, Join Calculus: ภาษาสำหรับการเขียนโปรแกรมแบบกระจายบนอุปกรณ์เคลื่อนที่
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ แคลคูลัสร่วม
แคลคูลัสแบบรวม (join-calculus)เป็นแคลคูลัสกระบวนการที่พัฒนาขึ้นที่INRIAแคลคูลัสแบบรวมได้รับการพัฒนาขึ้นเพื่อให้เป็นพื้นฐานอย่างเป็นทางการสำหรับการออกแบบ ภาษา
ภาษาที่ใช้แคลคูลัสการเชื่อมต่อ
ภาษาการเขียนโปรแกรม join-calculus เป็นภาษาใหม่ที่อิงตามแคลคูลัสกระบวนการ join-calculus โดยถูกนำไปใช้ในรูปแบบตัวแปลภาษาที่เขียนด้วย OCaml และรองรับการเขียนโปรแกรมแบบกระจายที่มีประเภทคงที่ การสื่อสารระยะไกลแบบโปร่งใส การเคลื่อนย้ายตามเอเจนต์...
การฝังตัวในภาษาโปรแกรมอื่นๆ
การใช้งานเหล่านี้ไม่ได้เปลี่ยนแปลงภาษาโปรแกรมพื้นฐาน แต่เป็นการนำการดำเนินการแคลคูลัสแบบรวมมาใช้ผ่านไลบรารีที่กำหนดเองหรือ DSL:
ลิงก์ภายนอก
INRIA, หน้าหลัก Join Calculus Microsoft Research, Join Calculus: ภาษาสำหรับการเขียนโปรแกรมแบบกระจายบนอุปกรณ์เคลื่อนที่ ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Join-calculus&oldid=1319418107 "