การเข้ามา: การเขียนโปรแกรมลอจิกแบบกระจายสำหรับวงดนตรีมือถือกระจายอำนาจ
โดย Edmund SL Lam ([email protected]) และ Iliano Cervesato ([email protected]) กับ Ali Elgazar ([email protected])
นักพัฒนาศิษย์เก่า:
บทความใหม่เกี่ยวกับความหมายของภาษาของเราปรากฏในการประชุมวิชาการเว็บระหว่างประเทศครั้งที่ 10 (Ruleml) 2016 พร้อมรางวัล Best Paper Award (http://2016.ruleml.org/awards)
กระดาษใหม่ปรากฏใน preedings ของการประชุมนานาชาติ IEEE ครั้งที่ 11 เรื่องคอมพิวเตอร์ไร้สายและมือถือเครือข่ายและการสื่อสาร (WIMOB2015)
เพิ่มไลบรารีการตรวจจับ NFC
เพิ่มต้นแบบเกมมาเฟียปาร์ตี้ (ปัจจุบันดูน่าเกลียดเล็กน้อย แต่ใช้งานได้! = P คอยติดตามการอัปเดต!)
รหัสแหล่งที่มาสำหรับการเพิ่มไลบรารี Android!
NEW Comingle Runtime ทำงานร่วมกับ WiFi-Direct รวมถึงเครือข่ายในพื้นที่ท้องถิ่น!
การเข้าร่วมเป็นกรอบการเขียนโปรแกรมแบบ colindation สำหรับแอพพลิเคชั่นที่จัดเตรียมไว้ในอุปกรณ์พกพาหลายเครื่อง การคำนวณแบบกระจายที่เกี่ยวข้องกับหลายฝ่ายถูกระบุว่าเป็นโปรแกรมการประกาศเดียวในลักษณะที่เป็นศูนย์กลางเป็นศูนย์กลางมากกว่าในลักษณะที่เป็นศูนย์กลางของโหนดแบบดั้งเดิมซึ่งรหัสการสื่อสารแยกต่างหากสำหรับแต่ละโหนดที่เข้าร่วม
การเข้ามาได้รับอิทธิพลอย่างมากจากรูปแบบการเข้าร่วมกฎการจัดการข้อ จำกัด และตรรกะเชิงเส้นโดยระบุการคำนวณแบบกระจายเป็นกฎการเขียนใหม่ระหว่างกิจกรรมหลายชุด เหตุการณ์เป็นพารามิเตอร์ในการคำนวณตำแหน่งการกำหนดความสามารถของการเข้ามาในการแสดงการคำนวณแบบกระจายอำนาจในชุดอุปกรณ์คอมพิวเตอร์ คุณสมบัติอื่น ๆ รวมถึงรูปแบบความเข้าใจหลายชุดและการจับคู่รูปแบบที่ไม่ใช่เชิงเส้น เมื่อรวมกันสิ่งเหล่านี้ทำให้การเข้าร่วมเป็นภาษาการประสานงานที่มีการประกาศอย่างมากสำหรับการคำนวณการกระจายอำนาจที่ซับซ้อน
การเข้าร่วมการรวมเข้ากับแอปพลิเคชัน Android ผ่านกลไกที่เรียกว่าทริกเกอร์และแอคทูเอเตอร์: ทริกเกอร์อนุญาตให้แอปพลิเคชัน Android ส่งสัญญาณเหตุการณ์ในท้องถิ่น (เช่นอินพุตสัมผัส, UI หรือแอปอื่น ๆ ) ผลข้างเคียงในแอปพลิเคชัน Android (ผ่านการโทรกลับ) ที่เกี่ยวข้องกับเหตุการณ์ที่เกิดขึ้นระหว่างการเขียนใหม่ ซึ่งหมายความว่าการมาทำงานกับ APIs Android SDK Native และไม่บังคับให้คุณตั้งโปรแกรมการดำเนินงานและการคำนวณในท้องถิ่นที่แตกต่างกัน (คุณยังมีทุกสิ่งที่คุณรักและเกลียดเกี่ยวกับการเขียนแอพ Android แบบสแตนด์อโลน!)
ในทุกโปรแกรมการเข้าร่วมไม่เพียง แต่เป็นตัวแทนของการอ่านข้อมูลจำเพาะที่ประกาศของวงดนตรีที่มีการกระจายอำนาจเท่านั้น แต่ยังสามารถใช้งานได้และให้อินเทอร์เฟซที่ใช้งานง่ายกับแอปพลิเคชัน Android ของคุณ
หากคุณต้องการทราบทฤษฎีที่อยู่เบื้องหลังการดำเนินการตามกฎเกณฑ์ของกฎการเข้ามาให้ตรวจสอบกระดาษ Ruleml'2016 ของเรา (ได้รับรางวัล Best Paper)
หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับการเข้าร่วมและวิธีการรวมเข้ากับ Android SDK ให้ตรวจสอบรายงานทางเทคนิคของเราหรือการประสานงาน '2015 กระดาษ
หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับการซิงโครไนซ์เหตุการณ์ในการเข้ามาในการเข้ามาให้ตรวจสอบกระดาษ Wimob'2015 ของเรา
หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับทฤษฎีที่อยู่เบื้องหลังการกระจายอำนาจหลายชุดด้วยรูปแบบความเข้าใจให้ดูที่กระดาษ APLAS'2014 ของเราและกระดาษ PPDP'2013
ที่เก็บนี้มีสำเนาที่ใช้งานได้ของคอมไพเลอร์และระบบรันไทม์รวมถึงตัวอย่างเพื่อให้คุณเริ่มมา นี่คือบทสรุปของสิ่งที่มีอยู่:
ในการติดตั้งและใช้การเข้ามาโปรดทำตามคำแนะนำ 'เริ่มต้นใช้งาน' ด้านล่าง หากคุณต้องการที่จะเล่นแอพ Android ตรงไปตรงมาให้ทำตามคำแนะนำในไฟล์ readme ที่ https://github.com/sllam/comeingle/tree/master/android_apps
ในการเรียกใช้คอมไพเลอร์และตัวสร้างรหัสคุณจะต้อง:
ในการเรียกใช้รหัสที่สร้างขึ้นมาคุณจะต้อง:
เพื่อให้คอมไพเลอร์ของ Comminle ทำงานคุณจะต้องใช้ Python 2.7 ก่อน ถัดไปคุณจะต้องมีโมดูล Python ที่ไม่ได้มาตรฐานสองอย่าง Ply และ Z3py โปรดไปที่ http://www.dabeaz.com/ply/ และ https://github.com/z3prover/z3 เพื่อรับแหล่งที่เกี่ยวข้องและติดตั้งคำแนะนำ
** สำคัญ! คุณจะต้องติดตั้งการผูก Z3 Python ดูเอกสารใน https://github.com/z3prover/z3 โดยเฉพาะการผูก Z3 -> Python
เมื่อคุณมีพวกเขาให้ไปที่ https://github.com/sllam/pysetComp และติดตั้ง:
pysetComp $ sudo python setup.py ติดตั้ง
ถัดไปคุณจะต้องใช้คอมไพเลอร์ของ MSRE ดำเนินการไปที่ https://github.com/sllam/msre และติดตั้งเฉพาะคอมไพเลอร์:
MSRE $ CD Compiler/MSREX
MSRE/Compiler/Msrex $ sudo python setup.py ติดตั้ง
คุณเกือบจะตั้งค่าแล้วตอนนี้คุณควรติดตั้งและติดตั้งคอมไพเลอร์ Comingle ทำสิ่งนี้โดยเรียกใช้ไฟล์ Make:
การติดตั้ง $ sudo make
สิ่งนี้จะทำดังต่อไปนี้:
ในการทดสอบการเข้าร่วมให้ไปที่ไดเรกทอรีตัวอย่างและลองใช้:
ตัวอย่างการเข้ามา $ CD
การเข้ามา/ตัวอย่าง $ cmgc dragracing.cmg
คุณจะเห็นเอาต์พุตจำนวนมากและหวังว่าจะไม่มีข้อความแสดงข้อผิดพลาด หากวิ่งได้สำเร็จคุณควรเห็นไดเรกทอรี 'dragraced' ด้วยไฟล์แหล่งที่มาของ Java 'dragracing.java' คลาส Java นี้ใช้รันไทม์การเข้ามาที่ระบุโดยโปรแกรมการเข้าร่วม 'dragracing.cmg' ดูโครงการ Eclipse ใน https://github.com/sllam/comeingle/tree/master/android_apps/ingledRagracing สำหรับตัวอย่างว่ารันไทม์การเข้ามานี้สามารถแทรกซึมเข้ากับเกม Android จริงได้อย่างไร
หากคุณพบข้อผิดพลาดในขั้นตอนใด ๆ ข้างต้น ... โปรดติดต่อฉัน (Edmund) ที่ [email protected] นอกจากนี้โปรดยอมรับคำขอโทษของฉันต้นแบบการเข้ามายังคงทำงานอยู่ แต่ฉันทำงานอย่างหนักเพื่อนำมันไปสู่สถานะที่มั่นคงและใช้งานได้มากขึ้น! -
ขอขอบคุณเป็นพิเศษต่อไปนี้: