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

อ่าน 2 นาที

IMP (ภาษาโปรแกรม)

IMPเป็นภาษาการเขียนโปรแกรมระบบ ยุคแรกๆ ที่พัฒนาโดยEdgar T. Ironsในช่วงปลายทศวรรษ 1960 ถึงต้นทศวรรษ 1970 ที่สำนักงานความมั่นคงแห่งชาติ (NSA) แตกต่างจากภาษาการเขียนโปรแกรมระบบอื่นๆ..

IMP (ภาษาโปรแกรม)

อิมพีแดนซ์
กระบวนทัศน์รูปแบบหลากหลาย : เชิงกระบวนการ เชิงคำสั่งมีโครงสร้างขยายได้
ตระกูลอัลโกล
ออกแบบโดยเอ็ดการ์ ที. ไอรอนส์
นักพัฒนาสำนักงานความมั่นคงแห่งชาติ
ปรากฏครั้งแรกพ.ศ. 2508 ( 1965 )
เวอร์ชันเสถียร
IMP72 / 1972 ( 1972 )
วินัยในการพิมพ์คงที่แข็งแกร่ง
ขอบเขตคำศัพท์
ภาษาการใช้งานอัลโกล 60
แพลตฟอร์มCDC 6600 , Cray , PDP-10 , PDP-11
โอเอสCOS , SCOPE , TOPS-10 , Unix , อื่นๆ
ใบอนุญาตกรรมสิทธิ์
การนำไปใช้งานหลักๆ
IMP65, IMP70, IMP72
ได้รับอิทธิพลจาก
อัลโกล 60

IMPเป็นภาษาการเขียนโปรแกรมระบบ ยุคแรกๆ ที่พัฒนาโดยEdgar T. Ironsในช่วงปลายทศวรรษ 1960 ถึงต้นทศวรรษ 1970 ที่สำนักงานความมั่นคงแห่งชาติ (NSA) แตกต่างจากภาษาการเขียนโปรแกรมระบบอื่นๆ ส่วนใหญ่ IMP รองรับ การ เขียน โปรแกรมที่ขยายได้ด้วยไวยากรณ์

แม้ว่าผู้สร้างจะกล่าวว่าภาษานี้ "มีพื้นฐานมาจากALGOL "แต่ IMP กลับไม่รวม คุณลักษณะ เด่น หลายประการ ของภาษานั้น ในขณะเดียวกันก็รองรับคุณลักษณะที่ไม่เหมือน ALGOL อย่างยิ่ง นั่นคือ ความสามารถในการขยายโครงสร้างไวยากรณ์

คอมไพเลอร์สำหรับภาษา IMP มีอยู่แล้วตั้งแต่ปี 1965 และถูกนำไปใช้ในการเขียนโปรแกรม ระบบแบ่งเวลาใช้งาน CDC 6600ซึ่งใช้งานอยู่ที่สถาบันวิเคราะห์การป้องกันประเทศตั้งแต่ปี 1967 แม้ว่าคอมไพเลอร์นี้จะทำงานช้ากว่าคอมไพเลอร์ที่เทียบเคียงได้สำหรับภาษาที่ไม่สามารถขยายได้ แต่ก็ถูกนำไปใช้ในงานผลิตจริงมาแล้ว

คอมไพเลอร์ IMP ถูกพัฒนาขึ้นสำหรับ คอมพิวเตอร์ CDC 6600 , Cray , PDP-10และPDP-11เวอร์ชัน IMP ที่สำคัญได้แก่ IMP65, IMP70 และ IMP72

ไวยากรณ์ที่ขยายได้ใน IMP72

IMP เป็นภาษาโปรแกรมที่มีไวยากรณ์ที่ขยายได้ ทำให้โปรแกรมเมอร์สามารถขยายไวยากรณ์ของมันได้ แม้ว่าจะไม่มีวิธีการเฉพาะเจาะจงในการเพิ่มชนิดข้อมูลหรือโครงสร้างใหม่เข้าไปก็ตาม เพื่อให้บรรลุถึงความสามารถในการขยายไวยากรณ์ IMP ใช้ขั้นตอนวิธีวิเคราะห์ไวยากรณ์ที่มีประสิทธิภาพโดยอิงจากกราฟไวยากรณ์และเมทริกซ์การเชื่อมต่อหลายตัว โปรแกรมเมอร์สามารถเพิ่ม กฎการผลิต แบบ Backus–Naur (BNF) ใหม่ลงในกราฟได้

ไวยากรณ์ของ IMP72 ได้รับการขยายโดยใช้คำสั่งไวยากรณ์ BNF แบบขยาย ที่รวมอยู่ใน โปรแกรม ซอร์สโค้ด กลไกนี้ทรงพลังมากจนทำให้สามารถใช้งานภาษาได้ด้วยตัวเอง กล่าวคือ โดยใช้ไฟล์ซอร์สโค้ด IMP72 ที่ประกอบด้วยคำสั่งไวยากรณ์ทั้งหมด ซึ่งป้อนเข้าสู่คอมไพเลอร์แบบง่ายๆ ที่สามารถแปลเฉพาะกรณีที่ง่ายที่สุดของคำสั่งไวยากรณ์ได้ นอกจากนี้ยังมีรูปแบบคำสั่งไวยากรณ์แบบง่ายๆ ที่ดูเหมือนมาโครสำหรับผู้ใช้ทั่วไปอีก ด้วย

โดยพื้นฐานแล้ว คำสั่งไวยากรณ์นี้เป็นการสร้าง BNF ที่ได้รับการปรับปรุง โดยมี การเพิ่ม ความหมาย ที่เกี่ยวข้อง ไว้ทางด้านขวา:

< class > :: = ส่วนไวยากรณ์ :: = ส่วนความหมาย

ตัวอย่างเช่น เพื่อเพิ่มโครงสร้างที่อธิบายโดย BNF ต่อไปนี้:

< EXP > :: = เพิ่มขึ้น < VBL > 

ด้วยความหมายที่INCREMENT Vควรแปลเป็นV ← V + 1โปรแกรมเมอร์เพียงแค่ต้องแทรกคำสั่ง IMP ต่อไปนี้ :

< EXP > :: = เพิ่ม < VBL , A > :: = "A←A+1"

ส่วนความหมายยังสามารถประกอบด้วยการเรียกใช้รูทีนเชิงความหมายได้ ดังเช่นในประโยคไวยากรณ์ต่อไปนี้:

< ATOM > :: = ABS ( < ATOM , A > ) :: = DEWOP ( 214 B , AREG1 ( 1 , 13 ) , A )

ส่วนความหมายของคำสั่งนี้ประกอบด้วยการเรียกใช้รูทีนเชิงความหมายDEWOPอาร์กิวเมนต์คือค่าคงที่ฐานแปด214Bการเรียกใช้รูทีนเชิงความหมายAREG1(1,13)และAซึ่งเป็นอ็อบเจ็กต์ที่อยู่บนสุดของสแต็กในขณะที่เรียกใช้กฎการผลิตนี้DEWOPรูทีนเชิงความหมายนี้รับอาร์กิวเมนต์เป็นโอเปอเรเตอร์โค้ด ของภาษาเครื่อง PDP-10 อ็อบเจ็กต์รีจิสเตอร์ และอ็อบเจ็กต์อื่นๆ ตามลำดับ และสร้างอ็อบเจ็กต์ที่มีค่าเป็นผลลัพธ์ของการดำเนินการคำสั่งเครื่องที่กำหนดโดยใช้อ็อบเจ็กต์ที่เป็นอาร์กิวเมนต์สุดท้ายเป็นฟิลด์ที่อยู่ ในตัวอย่างนี้ โอเปอเรเตอร์โค้ด214BกำหนดLoad Magnitudeคำสั่ง ดังนั้นผลลัพธ์ของคำสั่งไวยากรณ์ข้างต้นจะเป็นการคอมไพล์โค้ดเพื่อคำนวณค่าสัมบูรณ์Aของ

ระบบปฏิบัติการโฟล์คลอร์

IMP เป็นภาษาที่ใช้ในระบบปฏิบัติการแบ่งเวลา แบบพัฒนาเองของ NSA ที่ชื่อว่าFolklore [ 1 ]

ดูเพิ่มเติม

  • คู่มืออ้างอิง PDP-10 IMP72
  • แหล่งที่มา IMP72 (dcus:[43,50306]*.*)
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=IMP_(programming_language)&oldid=1136170923 "

สรุปเนื้อหา

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

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

IMPเป็นภาษาการเขียนโปรแกรมระบบ ยุคแรกๆ ที่พัฒนาโดยEdgar T. Ironsในช่วงปลายทศวรรษ 1960 ถึงต้นทศวรรษ 1970 ที่สำนักงานความมั่นคงแห่งชาติ (NSA) แตกต่างจากภาษาการเขียนโปรแกรมระบบอื่นๆ..

ไวยากรณ์ที่ขยายได้ใน IMP72

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

ระบบปฏิบัติการโฟล์คลอร์

IMP เป็นภาษาที่ใช้ใน ระบบปฏิบัติการ แบ่งเวลา แบบพัฒนาเองของ NSA ที่ชื่อว่า Folklore [ 1 ]

ลิงก์ภายนอก

คู่มืออ้างอิง PDP-10 IMP72 แหล่งที่มา IMP72 (dcus:[43,50306]*.*) ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=IMP_(programming_language)&oldid=1136170923 "