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

อ่าน 2 นาที

โค้ดเป็นข้อมูล

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

โค้ดเป็นข้อมูล

ในวิทยาการคอมพิวเตอร์ การแสดงออกถึงโค้ดในฐานะข้อมูลหมายถึงแนวคิดที่ว่าโค้ดต้นฉบับที่เขียนด้วยภาษาโปรแกรมสามารถจัดการได้ในฐานะข้อมูล เช่น ลำดับของอักขระหรือต้นไม้ไวยากรณ์นามธรรม (AST) และมี ความหมาย ในการดำเนินการเฉพาะในบริบทของคอมไพเลอร์หรืออินเตอร์พรีเตอร์ที่ กำหนดเท่านั้น [ 1 ]แนวคิดนี้มักใช้ในบริบทของ ภาษาที่คล้ายกับ Lispซึ่งใช้S-expressionเป็นไวยากรณ์หลัก เนื่องจากการเขียนโปรแกรมโดยใช้รายการสัญลักษณ์ที่ซ้อนกันทำให้การตีความโปรแกรมเป็น AST ค่อนข้างโปร่งใส (คุณสมบัติที่เรียกว่าhomoiconicity ) [ 2 ] [ 3 ]

โดยทั่วไปแล้ว แนวคิดเหล่านี้ถูกนำมาใช้ในบริบทของสิ่งที่เรียกว่าเมตา โปรแกรมมิง (metaprogramming ) ซึ่งเป็นการเขียนโปรแกรมที่ถือว่าโปรแกรมอื่นเป็นข้อมูล[ 4 ] [ 5 ]ตัวอย่างเช่น โค้ดในฐานะข้อมูลช่วยให้สามารถเรียงลำดับฟังก์ชันระดับเฟิร์สคลาสในลักษณะที่พกพาได้[ 6 ]กรณีการใช้งานอีกอย่างหนึ่งคือการจัดเก็บโปรแกรมไว้ในสตริง ซึ่งจะถูกประมวลผลโดยคอมไพเลอร์เพื่อสร้างไฟล์ปฏิบัติการ[ 4 ]บ่อยครั้งที่มี API การสะท้อน (reflection API) ที่เปิดเผยโครงสร้างของโปรแกรมเป็นวัตถุภายในภาษา ซึ่งช่วยลดความเป็นไปได้ในการสร้างโปรแกรมที่ผิดรูปแบบ[ 7 ]

ในทฤษฎีการคำนวณทฤษฎีบทการเรียกซ้ำครั้งที่สองของ Kleeneให้รูปแบบของโค้ดที่เป็นข้อมูล โดยพิสูจน์ว่าโปรแกรมสามารถเข้าถึงซอร์สโค้ดของตัวเองได้[ 8 ]

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

ข้อมูลในรูปแบบโค้ด

ในการเขียนโปรแกรมเชิงประกาศหลักการข้อมูลเป็นโค้ด (DaC) หมายถึงแนวคิดที่ว่าโครงสร้างข้อมูลใดๆ ก็สามารถเปิดเผยได้โดยใช้ความหมายของภาษาเฉพาะหรือ API ตัวอย่างเช่น รายการจำนวนเต็มหรือสตริงเป็นข้อมูล แต่ในภาษาต่างๆ เช่น Lisp และ Perl สามารถป้อนและประเมินผลโดยตรงเป็นโค้ดได้[ 1 ]สคริปต์การกำหนดค่าภาษาเฉพาะโดเมนและภาษามาร์กอัปเป็นกรณีที่การทำงานของโปรแกรมถูกควบคุมโดยองค์ประกอบข้อมูลที่ไม่ใช่ลำดับคำสั่งที่ชัดเจน[ 10 ] [ 11 ]

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

สรุปเนื้อหา

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

ข้อมูลสำคัญเกี่ยวกับ โค้ดเป็นข้อมูล

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

ข้อมูลในรูปแบบโค้ด

ใน การเขียนโปรแกรมเชิงประกาศ หลักการ ข้อมูลเป็นโค้ด (DaC) หมายถึงแนวคิดที่ว่าโครงสร้างข้อมูลใดๆ ก็สามารถเปิดเผยได้โดยใช้ความหมายของภาษาเฉพาะหรือ API ตัวอย่างเช่น รายการจำนวนเต็มหรือสตริงเป็นข้อมูล แต่ในภาษาต่างๆ เช่น Lisp และ Perl...