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

อ่าน 2 นาที

การเปลี่ยนแปลงโปรแกรม

การแปลงโปรแกรม คือการดำเนินการใดๆ ที่นำ โปรแกรมคอมพิวเตอร์ มาสร้างเป็นโปรแกรมอื่น ในหลายกรณี โปรแกรมที่แปลงแล้วจะต้องมี ความหมายเทียบเท่า กับโปรแกรมเดิม โดยสัมพันธ์กับ...

การเปลี่ยนแปลงโปรแกรม

การแปลงโปรแกรมคือการดำเนินการใดๆ ที่นำโปรแกรมคอมพิวเตอร์มาสร้างเป็นโปรแกรมอื่น ในหลายกรณี โปรแกรมที่แปลงแล้วจะต้องมีความหมายเทียบเท่ากับโปรแกรมเดิม โดยสัมพันธ์กับความหมายเชิงรูปธรรม ที่เฉพาะเจาะจง และในกรณีที่น้อยกว่า การแปลงจะส่งผลให้โปรแกรมมีความหมายแตกต่างจากโปรแกรมเดิมในลักษณะที่คาดการณ์ได้[ 1 ]

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

ข้อกำหนดเชิงปฏิบัติสำหรับ ระบบการแปลง ซอร์สโค้ดคือ ระบบจะต้องสามารถประมวลผลโปรแกรมที่เขียนด้วยภาษาโปรแกรม ได้อย่างมีประสิทธิภาพ ซึ่งโดยปกติแล้วจะต้องมีการบูรณาการส่วนหน้าแบบเต็มรูปแบบสำหรับภาษาโปรแกรมที่สนใจ รวมถึงการแยกวิเคราะห์ซอร์สโค้ด การสร้างการแสดงโครงสร้างโค้ดภายในโปรแกรม ความหมายของสัญลักษณ์โปรแกรมการวิเคราะห์แบบคงที่ ที่เป็นประโยชน์ และการสร้างซอร์สโค้ดที่ถูกต้องขึ้นใหม่จากการแสดงโปรแกรมที่แปลงแล้ว ปัญหาของการสร้างและการบูรณาการส่วนหน้าที่เหมาะสมสำหรับภาษาทั่วไป ( Java , C++ , PHPเป็นต้น) อาจมีความยากลำบากเท่ากับการสร้างระบบการแปลงโปรแกรมเอง เนื่องจากความซับซ้อนของภาษาเหล่านั้น เพื่อให้มีประโยชน์อย่างกว้างขวาง ระบบการแปลงจะต้องสามารถจัดการกับภาษาโปรแกรมเป้าหมายได้หลายภาษา และต้องมีวิธีการบางอย่างในการระบุส่วนหน้าเฉพาะภาษาดังกล่าว[ 3 ] Spoon [ 4 ]เป็นตัวอย่างของ ไลบรารีการแปลงโปรแกรมเฉพาะ Javaที่จัดการกับความท้าทายนี้โดยการจัดเตรียมส่วนหน้าแบบเต็มรูปแบบสำหรับ Java โดยเปิดเผย API ที่ใช้ ASTสำหรับการใช้งานการวิเคราะห์และการแปลงซอร์สโค้ด Java

แนวคิดเรื่องการปรับปรุงโปรแกรม (program refinement ) เป็นการขยายความทั่วไปของความเท่าเทียมทางความหมาย กล่าวคือ โปรแกรมหนึ่งเป็นการปรับปรุงโปรแกรมอีกโปรแกรมหนึ่ง หากโปรแกรมใหม่นี้สิ้นสุดการทำงานในทุกสถานะเริ่มต้นที่โปรแกรมเดิมสิ้นสุดการทำงาน และสำหรับแต่ละสถานะดังกล่าว โปรแกรมใหม่นี้รับประกันว่าจะสิ้นสุดการทำงานในสถานะสุดท้ายที่เป็นไปได้ของโปรแกรมเดิม กล่าวอีกนัยหนึ่ง การปรับปรุงโปรแกรมมีความชัดเจนและแน่นอนกว่าโปรแกรมเดิม หากโปรแกรมสองโปรแกรมเป็นการปรับปรุงซึ่งกันและกัน โปรแกรมทั้งสองนั้นจะเทียบเท่ากัน

ดูเพิ่มเติม

  • วิกิการเปลี่ยนแปลงโปรแกรม
  • เอกสารเกี่ยวกับทฤษฎีและการปฏิบัติการเปลี่ยนแปลงโปรแกรม
  • บรรณานุกรมเทคโนโลยีการเปลี่ยนแปลง
  • ชุดเครื่องมือปรับปรุงโครงสร้างซอฟต์แวร์ DMS : ระบบแปลงโปรแกรมสำหรับ DSL และภาษาคอมพิวเตอร์สมัยใหม่ (C++, Java, ...) และภาษาคอมพิวเตอร์ดั้งเดิม (COBOL, RPG)
  • Spoon : ไลบรารีสำหรับวิเคราะห์ แปลง แก้ไข และแปลงโค้ดต้นฉบับ Java โดยจะแยกวิเคราะห์ไฟล์ต้นฉบับเพื่อสร้าง AST ที่ออกแบบมาอย่างดี พร้อมด้วย API สำหรับการวิเคราะห์และการแปลงที่มีประสิทธิภาพ
  • JavaParser : ไลบรารี JavaParser ช่วยให้คุณสร้างโครงสร้าง Abstract Syntax Tree (AST) สำหรับโค้ด Java ของคุณ โครงสร้าง AST นี้ช่วยให้คุณสามารถทำงานกับโค้ด Java ได้อย่างง่ายดายด้วยวิธีการเขียนโปรแกรม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Program_transformation&oldid=1352981799 "

สรุปเนื้อหา

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

ข้อมูลสำคัญเกี่ยวกับ การเปลี่ยนแปลงโปรแกรม

การแปลงโปรแกรม คือการดำเนินการใดๆ ที่นำ โปรแกรมคอมพิวเตอร์ มาสร้างเป็นโปรแกรมอื่น ในหลายกรณี โปรแกรมที่แปลงแล้วจะต้องมี ความหมายเทียบเท่า กับโปรแกรมเดิม โดยสัมพันธ์กับ...

ดูเพิ่มเติม

รายชื่อระบบการแปลงโปรแกรม เมตาโปรแกรมมิ่ง การสังเคราะห์โปรแกรม คอมไพเลอร์แบบซอร์สโค้ดต่อซอร์สโค้ด การสร้างซอร์สโค้ด ภาษาการแปลง ไวยากรณ์การแปลงรูป การคอมไพล์แบบไดนามิก ลดการทำงานเพื่อประหยัดพลังงาน

ลิงก์ภายนอก

วิกิการเปลี่ยนแปลงโปรแกรม เอกสารเกี่ยวกับทฤษฎีและการปฏิบัติการเปลี่ยนแปลงโปรแกรม บรรณานุกรมเทคโนโลยีการเปลี่ยนแปลง ชุดเครื่องมือปรับปรุงโครงสร้างซอฟต์แวร์ DMS : ระบบแปลงโปรแกรมสำหรับ DSL และภาษาคอมพิวเตอร์สมัยใหม่ (C++, Java, ...