อ่าน 2 นาที
จอย (ภาษาโปรแกรม)
ภาษาโปรแกรม Joyในวิทยาการคอมพิวเตอร์เป็นภาษาโปรแกรมเชิงฟังก์ชันล้วนๆที่สร้างขึ้นโดย Manfred von Thun จากมหาวิทยาลัย La Trobeในเมลเบิร์นประเทศออสเตรเลีย Joy
จอย (ภาษาโปรแกรม)
| จอย | |
|---|---|
| กระบวนทัศน์ | หลายกระบวนทัศน์ : ฟังก์ชัน , การเชื่อมต่อ , เชิงซ้อน |
| ออกแบบโดย | แมนเฟรด ฟอน ธุน |
| นักพัฒนา | แมนเฟรด ฟอน ธุน จอห์น โควัน |
| ปรากฏครั้งแรก | 2001 |
| เวอร์ชันเสถียร | 17 มีนาคม 2546 / 17 มีนาคม 2546 |
| วินัยในการพิมพ์ | แข็งแกร่งมีพลัง |
| การนำไปใช้งานหลักๆ | |
| Joy0, Joy1, "Current Joy", "John Cowan's Joy", "JoyJ (Joy in jvmm)" | |
| ได้รับอิทธิพลจาก | |
| แผน , FP , ฟอร์ธ | |
| ได้รับอิทธิพล | |
| แฟคเตอร์ , แคท, วี, ทริธ | |
ภาษาโปรแกรม Joyในวิทยาการคอมพิวเตอร์เป็นภาษาโปรแกรมเชิงฟังก์ชันล้วนๆที่สร้างขึ้นโดย Manfred von Thun จากมหาวิทยาลัย La Trobeในเมลเบิร์นประเทศออสเตรเลีย Joy ใช้การประกอบฟังก์ชันแทนแคลคูลัสแลมบ์ดาโดยได้รับแรงบันดาลใจจากรูปแบบการเขียนโปรแกรมระดับฟังก์ชันของFPของJohn Backus [ 1 ] ปรากฏว่ามีลักษณะคล้ายคลึงกับForth หลายประการ ไม่ใช่เพราะ การออกแบบ แต่เป็นเพราะวิวัฒนาการและการบรรจบกันที่เป็นอิสระ
ภาพรวม
ฟังก์ชันใน Joy ขาดพารามิเตอร์อย่างเป็นทางการตัวอย่างเช่น ฟังก์ชันที่ยกกำลังสองของอินพุตตัวเลขสามารถแสดงได้ดังนี้: [ 2 ]
DEFINE square == dup * .
ใน Joy ทุกอย่างเป็นฟังก์ชันที่รับสแต็กเป็นอาร์กิวเมนต์และส่งคืนสแต็กเป็นผลลัพธ์ ตัวอย่างเช่น ตัวเลข '5' ไม่ได้แทนค่าคงที่จำนวนเต็ม แต่เป็นโปรแกรมสั้นๆ ที่ผลักตัวเลข 5 ลงบนสแต็ก
- ตัว ดำเนินการ dupจะคัดลอกองค์ประกอบบนสุดของสแต็กโดยการผลักสำเนาของมันเข้าไปในสแต็ก
- ตัว ดำเนินการ *จะดึงตัวเลขสองตัวออกจากสแต็กแล้วผลักผลคูณของตัวเลขทั้งสองนั้นเข้าไปในสแต็ก
ดังนั้นฟังก์ชันกำลังสองจะสร้างสำเนาขององค์ประกอบด้านบน จากนั้นคูณองค์ประกอบด้านบนสองรายการของสแต็ก โดยทิ้งกำลังสองขององค์ประกอบด้านบนเดิมไว้ที่ด้านบนของสแต็ก โดยไม่จำเป็นต้องมีพารามิเตอร์อย่างเป็นทางการ ซึ่งทำให้ Joy กระชับ ดังที่แสดงโดยคำจำกัดความของquicksort นี้ : [ 3 ]
กำหนด qsort == [เล็ก] [] [uncons [>] แยก] [swapd cons concat] binrec.
ความบริสุทธิ์ทางคณิตศาสตร์
Joy เป็นภาษาการเขียนโปรแกรมแบบเชื่อมต่อ : "การเชื่อมต่อของสองโปรแกรมหมายถึงการประกอบฟังก์ชันที่แสดงโดยสองโปรแกรม" [ 4 ]
ดูเพิ่มเติม
ลิงก์ภายนอก
- เว็บไซต์อย่างเป็นทางการของภาษาการเขียนโปรแกรม Joy (มหาวิทยาลัย La Trobe)บนWayback Machine (เก็บถาวรเมื่อ 7 กันยายน 2012)
- หน้าเว็บ Joy (มิเรอร์)
- ซอร์สโค้ดของ Joy (GitHub Archive)
- Freneger, Paul (สิงหาคม 2546). "ความสุขแห่งการก้าวไปข้างหน้า" . ACM SIGPLAN Notices . 38 (8): 15– 17. doi : 10.1145/944579.944583 .
- ฟอน ธุน, แมนเฟรด ; โทมัส, รูเบน (9 ตุลาคม 2544). "จอย: ญาติเชิงฟังก์ชันของฟอร์ธ" (PDF) . รายงานการประชุมยูโรฟอร์ธ ครั้งที่ 17 .
- คริสโตเฟอร์ ดิกกินส์ (31 ธันวาคม 2008) "ภาษาแบบเชื่อมต่อคืออะไร"ดร. ด็อบส์
- Apter, Stevan. "การเขียนโปรแกรมเชิงฟังก์ชันใน Joy และ K" . Vector . เก็บถาวรจากต้นฉบับเมื่อ 2008-08-28 . สืบค้นเมื่อ2011-02-28 .
- mjoy คือตัวแปลภาษาใน Lazarus สำหรับภาพวาดที่มีกราฟิกรูปเต่า (ส่วนย่อยของ Joy)
- Joy-REPL (แอปพลิเคชัน Java สำหรับ Win/Linux/Mac/etc)
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ จอย (ภาษาโปรแกรม)
ภาษาโปรแกรม Joyในวิทยาการคอมพิวเตอร์เป็นภาษาโปรแกรมเชิงฟังก์ชันล้วนๆที่สร้างขึ้นโดย Manfred von Thun จากมหาวิทยาลัย La Trobeในเมลเบิร์นประเทศออสเตรเลีย Joy
ภาพรวม
ฟังก์ชันใน Joy ขาด พารามิเตอร์อย่างเป็นทางการ ตัวอย่างเช่น ฟังก์ชันที่ยกกำลังสองของอินพุตตัวเลขสามารถแสดงได้ดังนี้: [ 2 ]
ความบริสุทธิ์ทางคณิตศาสตร์
Joy เป็น ภาษาการเขียนโปรแกรมแบบเชื่อมต่อ : "การเชื่อมต่อของสองโปรแกรมหมายถึงการประกอบฟังก์ชันที่แสดงโดยสองโปรแกรม" [ 4 ]
ลิงก์ภายนอก
เว็บไซต์อย่างเป็นทางการของภาษาการเขียนโปรแกรม Joy (มหาวิทยาลัย La Trobe)บน Wayback Machine (เก็บถาวรเมื่อ 7 กันยายน 2012) หน้าเว็บ Joy (มิเรอร์) ซอร์สโค้ดของ Joy (GitHub Archive) Freneger, Paul (สิงหาคม 2546). "ความสุขแห่งการก้าวไปข้างหน้า" .