อ่าน 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 ]
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ โค้ดเป็นข้อมูล
ในวิทยาการคอมพิวเตอร์ การแสดงออกถึงโค้ดในฐานะข้อมูลหมายถึงแนวคิดที่ว่าโค้ดต้นฉบับที่เขียนด้วยภาษาโปรแกรมสามารถจัดการได้ในฐานะข้อมูล เช่น ลำดับของอักขระหรือต้นไม้ไวยากรณ์นามธรรม...
ข้อมูลในรูปแบบโค้ด
ใน การเขียนโปรแกรมเชิงประกาศ หลักการ ข้อมูลเป็นโค้ด (DaC) หมายถึงแนวคิดที่ว่าโครงสร้างข้อมูลใดๆ ก็สามารถเปิดเผยได้โดยใช้ความหมายของภาษาเฉพาะหรือ API ตัวอย่างเช่น รายการจำนวนเต็มหรือสตริงเป็นข้อมูล แต่ในภาษาต่างๆ เช่น Lisp และ Perl...