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

อ่าน 3 นาที

การแสดงผลระดับกลาง

การ แสดงผลระดับกลาง ( IR ) คือ โครงสร้างข้อมูล หรือรหัสที่ใช้ภายในโดย คอมไพเลอร์ หรือ เครื่องเสมือน เพื่อแสดง รหัสต้นฉบับ IR ถูกออกแบบมาเพื่อให้เอื้อต่อการประมวลผลเพิ่มเติม เช่น...

การแสดงผลระดับกลาง

การแสดงผลระดับกลาง ( IR ) คือโครงสร้างข้อมูลหรือรหัสที่ใช้ภายในโดยคอมไพเลอร์หรือเครื่องเสมือนเพื่อแสดงรหัสต้นฉบับ IR ถูกออกแบบมาเพื่อให้เอื้อต่อการประมวลผลเพิ่มเติม เช่นการเพิ่มประสิทธิภาพและการแปล [ 1 ] IRที่ "ดี" ต้องมีความถูกต้องแม่นยำ – สามารถแสดงรหัสต้นฉบับได้โดยไม่สูญเสียข้อมูล[ 2 ] – และเป็นอิสระจากภาษาต้นฉบับหรือภาษาเป้าหมายใดๆ[ 1 ] IR อาจมีได้หลายรูปแบบ: โครงสร้างข้อมูล ในหน่วยความจำ หรือรหัสแบบทูเปิลหรือสแต็ก พิเศษ ที่โปรแกรมสามารถอ่านได้[ 3 ]ในกรณีหลังนี้ เรียกอีกอย่างว่าภาษา ระดับกลาง

ตัวอย่างที่เห็นได้ชัดคือคอมไพเลอร์สมัยใหม่ส่วนใหญ่ เช่นตัวแปลภาษา CPythonจะแปลงข้อความเชิงเส้นที่มนุษย์อ่านได้ซึ่งแสดงถึงโปรแกรม ให้เป็นโครงสร้างกราฟ ระดับกลาง ที่ช่วยให้สามารถวิเคราะห์การไหลและจัดเรียงใหม่ก่อนการประมวลผล การใช้การแสดงผลระดับกลางเช่นนี้ทำให้ระบบคอมไพเลอร์ เช่นGNU Compiler CollectionและLLVMสามารถใช้งานได้กับภาษาต้นฉบับที่แตกต่างกันมากมาย เพื่อสร้างโค้ด สำหรับ สถาปัตยกรรม เป้าหมาย ที่ หลากหลาย

ภาษาระดับกลาง

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

รูปแบบที่นิยมใช้สำหรับภาษาขั้นกลางคือรหัสสามที่อยู่

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

ภาษา

แม้ว่า C จะไม่ได้ถูกออกแบบมาให้เป็นภาษาตัวกลางอย่างชัดเจน แต่ธรรมชาติของC ในฐานะที่เป็นนามธรรมของภาษา แอสเซมบลีและความแพร่หลายในฐานะภาษาระบบมาตรฐาน ในระบบ ปฏิบัติการ แบบ Unixและระบบปฏิบัติการอื่นๆ ทำให้มันกลายเป็นภาษาตัวกลางที่ได้รับความนิยม ตัวอย่างเช่นEiffel , Sather , Esterel , ภาษา Lisp บางสำเนียง ( Lush , Gambit ), Slang ซึ่งเป็นส่วนย่อยของ Smalltalk ใน Squeak, Nim , Cython , SystemTap , Vala , V และอื่นๆ ต่างก็ใช้ C เป็นภาษาตัวกลาง นอกจากนี้ยังมีการออกแบบ C เวอร์ชันต่างๆ เพื่อให้มีคุณสมบัติของ C ในฐานะภาษาแอสเซมบลี แบบพกพาได้ เช่นC--และC Intermediate Language

ภาษาใดๆ ที่กำหนดเป้าหมายไปยังเครื่องเสมือนหรือเครื่อง p-codeสามารถถือว่าเป็นภาษาตัวกลางได้:

ชุดคอมไพเลอร์ GNU (GCC) ใช้ภาษาตัวกลางหลายภาษาภายในเพื่อลดความซับซ้อนในการพกพาและการคอมไพล์ข้ามแพลตฟอร์มภาษาเหล่านี้ได้แก่

GCC สนับสนุนการสร้าง IR เหล่านี้ ซึ่งเป็นเป้าหมายสุดท้าย:

เฟรมเวิร์กคอมไพเลอร์ LLVMนั้นมีพื้นฐานมาจาก ภาษาตัวกลาง LLVM IRซึ่งการแสดงผลแบบอนุกรมไบนารีที่กระชับนั้นเรียกอีกอย่างว่า "bitcode" และได้รับการพัฒนาเป็นผลิตภัณฑ์โดย Apple [ 4 ] [ 5 ]เช่นเดียวกับ GIMPLE Bytecode, LLVM Bitcode มีประโยชน์ในการเพิ่มประสิทธิภาพในระหว่างการเชื่อมโยง เช่นเดียวกับ GCC, LLVM ยังกำหนดเป้าหมาย IR บางตัวที่มุ่งเน้นการแจกจ่ายโดยตรง รวมถึงPNaCl IR และSPIR ของ Google การพัฒนาเพิ่มเติมภายใน LLVM คือการใช้Multi-Level Intermediate Representation ( MLIR ) ซึ่งมีศักยภาพในการสร้างโค้ดสำหรับเป้าหมายที่แตกต่างกัน และเพื่อรวมเอาผลลัพธ์ของคอมไพเลอร์ต่างๆ เข้าด้วยกัน[ 6 ]

ภาษาตัวกลาง ILOC [ 7 ]ใช้ในชั้นเรียนเกี่ยวกับการออกแบบคอมไพเลอร์เป็นภาษาเป้าหมายที่เรียบง่าย[ 8 ]

อื่น

เครื่องมือ วิเคราะห์แบบคงที่มักใช้การแสดงผลระดับกลาง ตัวอย่างเช่นRadare2เป็นกล่องเครื่องมือสำหรับการวิเคราะห์ไฟล์ไบนารีและการวิศวกรรมย้อนกลับ โดยใช้ภาษาระดับกลาง ESIL [ 9 ]และ REIL [ 10 ]เพื่อวิเคราะห์ไฟล์ไบนารี

ดูเพิ่มเติม

  • กลุ่ม Stanford SUIF
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Intermediate_representation&oldid=1317312839#Intermediate_representation "

สรุปเนื้อหา

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

ข้อมูลสำคัญเกี่ยวกับ การแสดงผลระดับกลาง

การ แสดงผลระดับกลาง ( IR ) คือ โครงสร้างข้อมูล หรือรหัสที่ใช้ภายในโดย คอมไพเลอร์ หรือ เครื่องเสมือน เพื่อแสดง รหัสต้นฉบับ IR ถูกออกแบบมาเพื่อให้เอื้อต่อการประมวลผลเพิ่มเติม เช่น...

ภาษาระดับกลาง

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

ภาษา

แม้ว่า C จะไม่ได้ถูกออกแบบมาให้เป็นภาษาตัวกลางอย่างชัดเจน แต่ธรรมชาติของ C ในฐานะที่เป็นนามธรรมของภาษา แอสเซมบลี และ ความแพร่หลายในฐานะ ภาษาระบบ มาตรฐาน ใน ระบบ ปฏิบัติการ แบบ Unix และระบบปฏิบัติการอื่นๆ ทำให้มันกลายเป็นภาษาตัวกลางที่ได้รับความนิยม...

อื่น

เครื่องมือ วิเคราะห์แบบคงที่ มักใช้การแสดงผลระดับกลาง ตัวอย่างเช่น Radare2 เป็นกล่องเครื่องมือสำหรับการวิเคราะห์ไฟล์ไบนารีและการวิศวกรรมย้อนกลับ โดยใช้ภาษาระดับกลาง ESIL [ 9 ] และ REIL [ 10 ] เพื่อวิเคราะห์ไฟล์ไบนารี