Skip to main content

โปรแกรมการหั่นคืออะไร?

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

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

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

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