กลับไปหน้าบทความ

อ่าน 3 นาที

ลิมโบ (ภาษาโปรแกรม)

เปลี่ยนทางจากการแก้ไข

Limboเป็นภาษาโปรแกรมสำหรับเขียนระบบกระจาย และเป็นภาษาที่ใช้ในการเขียนแอปพลิเคชันสำหรับระบบปฏิบัติการ Infernoได้รับการออกแบบที่Bell LabsโดยSean Dorward , Phil WinterbottomและRob...

ลิมโบ (ภาษาโปรแกรม)

ลิมโบ้
กระบวนทัศน์พร้อมกัน
ออกแบบ โดยฌอน ดอร์เวิร์ด, ฟิล วินเทอร์บอตทอม, ร็อบ ไพค์
นักพัฒนาเบลล์ แล็บส์ / Vita Nuova Holdings
 ปรากฏครั้งแรก1995  ( 1995 )
วินัยในการพิมพ์แข็งแกร่ง
โอเอสนรก
ใบอนุญาตลิขสิทธิ์ GNU GPL v2 โปรดดูหมายเหตุในโฟลเดอร์ย่อย limbo ของไฟล์ tarball
เว็บไซต์web.archive.org/web/20250207231314/http://www.vitanuova.com/inferno/limbo.html
การนำไปใช้งานหลักๆ
เครื่องเสมือน Dis
ได้รับอิทธิพลจาก
C , ปาสคาล , CSP , อเลฟ , นิวสควีก
ได้รับอิทธิพล
Python , Go , Rust แบบไร้สแต็ก

Limboเป็นภาษาโปรแกรมสำหรับเขียนระบบกระจาย และเป็นภาษาที่ใช้ในการเขียนแอปพลิเคชันสำหรับระบบปฏิบัติการ Infernoได้รับการออกแบบที่Bell LabsโดยSean Dorward , Phil WinterbottomและRob Pike [ 1 ]

คอมไพเลอร์ Limbo สร้างโค้ดออบเจ็กต์ที่ไม่ขึ้นกับสถาปัตยกรรมจากนั้นโค้ดดังกล่าวจะถูกตีความโดยเครื่องเสมือน Disหรือคอมไพล์ก่อนรันไทม์เพื่อปรับปรุงประสิทธิภาพ ดังนั้นแอปพลิเคชัน Limbo ทั้งหมดจึงสามารถใช้งานได้บนแพลตฟอร์ม Inferno ทุกแพลตฟอร์มได้อย่างสมบูรณ์

แนวทางการทำงานแบบขนานของ Limbo ได้รับแรงบันดาลใจจากกระบวนการสื่อสารแบบลำดับ (CSP) ของHoareซึ่งถูกนำไปใช้และปรับปรุงใน ภาษา Newsqueak รุ่นก่อนหน้าของ Pike และภาษา Alef ของ Winterbottom

ลักษณะทางภาษา

Limbo รองรับคุณสมบัติต่อไปนี้:

เครื่องเสมือน

เครื่องเสมือน Dis ที่ประมวลผลโค้ด Limbo เป็น VM ที่คล้ายกับ CISC โดยมีคำสั่งสำหรับการคำนวณทางคณิตศาสตร์การควบคุมการไหลการเคลื่อนย้ายข้อมูลการสร้างกระบวนการการซิงโครไนซ์และการสื่อสารระหว่างกระบวนการ การโหลดโมดูลของโค้ด และการสนับสนุนประเภทข้อมูลระดับสูง ได้แก่ สตริง อาร์เรย์ รายการ และช่องทางการสื่อสาร[ 2 ]โดยใช้การผสมผสานระหว่างการนับการอ้างอิงและตัวเก็บขยะแบบเรียลไทม์ สำหรับข้อมูลแบบวนรอบ[ 3 ]

องค์ประกอบบางส่วนของการออกแบบ Dis ได้รับแรงบันดาลใจจาก ไมโครโปรเซสเซอร์ AT&T Hobbitซึ่งใช้ในBeBox รุ่น แรก

ตัวอย่าง

Limbo ใช้ คำจำกัดความแบบ Adaดังนี้:

ชื่อ:= ประเภทค่า; name0 , name1 : ประเภท= ค่า; name2 , name3 : ประเภท; name2 = ค่า;

สวัสดีโลก

ดำเนินการคำสั่ง;รวม"sys.m" ; sys : Sys ;รวมไฟล์"draw.m" ;รวม"sh.m" ;init ( nil : ref Draw -> Context , nil : list of string ) { sys = load Sys Sys -> PATH ; sys -> print ( "Hello World! \n " ); }

หนังสือ

ระบบปฏิบัติการ Inferno รุ่นที่ 3 และภาษาโปรแกรม Limbo ได้รับการอธิบายไว้ในหนังสือเรียนชื่อInferno Programming with Limbo ISBN 0-470-84352-7(ชิเชสเตอร์: จอห์น ไวลีย์ แอนด์ ซันส์, 2003) โดยฟิลิป สแตนลีย์-มาร์เบลล์นอกจากนี้ ยังมีตำราอีกเล่มหนึ่งชื่อThe Inferno Programming Book: An Introduction to Programming for the Inferno Distributed Systemโดย มาร์ติน แอตกินส์, ชาร์ลส์ ฟอร์ไซธ์, ร็อบ ไพค์และ ฮาวาร์ด ทริคกีย์ ที่เริ่มเขียนขึ้น แต่ไม่เคยได้รับการตีพิมพ์

ดูเพิ่มเติม

  • ระบบปฏิบัติการอินเฟอร์โน
  • อเลฟผู้มาก่อนลิมโบ
  • Plan 9 จาก Bell Labsคือระบบปฏิบัติการ
  • Goเป็นภาษาที่คล้ายกับภาษาของ Google
  • AT&T Hobbitคือสถาปัตยกรรมโปรเซสเซอร์ที่เป็นแรงบันดาลใจให้กับ Dis VM
  • หน้า Vita Nuova บน Limbo
  • การลงสู่แดนลิมโบโดยไบรอัน เคอร์นิแกน
  • หนังสือ "ภาษาโปรแกรม Limbo"โดยDennis M. Ritchieและภาคผนวกโดย Vita Nuova
  • การเขียนโปรแกรม Inferno ด้วย LimboโดยPhillip Stanley-Marbell
  • การเขียนโปรแกรมแบบมัลติเธรดในรูปแบบ CSP ของ Bell Labs
  • ซอร์สโค้ด Disถูกเก็บถาวรจากต้นฉบับเมื่อวันที่ 21 กันยายน 2017และเรียกดูเมื่อวันที่ 20 กันยายน 2017
  • การออกแบบเครื่องเสมือน Inferno , Vita nuova, เก็บถาวรจากต้นฉบับเมื่อวันที่ 11 กุมภาพันธ์ 2025เรียกดู เมื่อวันที่ 28 เมษายน 2025.
  • "การออกแบบ Dis VM", Inferno (  ฉบับที่ 4), หมวดหมู่ V.
  • "ข้อกำหนด Dis VM", Inferno (  ฉบับที่ 4), หมวด V.
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Limbo_(programming_language)&oldid=1356903948 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ลิมโบ (ภาษาโปรแกรม)

Limboเป็นภาษาโปรแกรมสำหรับเขียนระบบกระจาย และเป็นภาษาที่ใช้ในการเขียนแอปพลิเคชันสำหรับระบบปฏิบัติการ Infernoได้รับการออกแบบที่Bell LabsโดยSean Dorward , Phil WinterbottomและRob...

เครื่องเสมือน

เครื่องเสมือน Dis ที่ประมวลผลโค้ด Limbo เป็น VM ที่คล้ายกับ CISC โดยมีคำสั่งสำหรับการคำนวณทางคณิตศาสตร์ การควบคุมการไหล การเคลื่อนย้ายข้อมูล การสร้าง กระบวนการ การซิงโครไนซ์และการสื่อสารระหว่างกระบวนการ การโหลดโมดูลของโค้ด และการสนับสนุนประเภทข้อมูลระดับสูง...

สวัสดีโลก

Context, nil: list of string)\n{\n sys = load Sys Sys->PATH;\n sys->print(\"Hello World!\\n\");\n}\n"}}"> ดำเนินการ คำสั่ง ; รวม "sys.m" ; sys : Sys ; รวมไฟล์ "draw.m" ; รวม "sh.

หนังสือ

ระบบปฏิบัติการ Inferno รุ่นที่ 3 และภาษาโปรแกรม Limbo ได้รับการอธิบายไว้ในหนังสือเรียนชื่อ Inferno Programming with Limbo ISBN 0-470-84352-7 (ชิเชสเตอร์: จอห์น ไวลีย์ แอนด์ ซันส์, 2003) โดย ฟิลิป สแตนลีย์-มาร์เบลล์ นอกจากนี้ ยังมีตำราอีกเล่มหนึ่งชื่อ The...