데이터로 코드화
Code as data![]() | ![]() |
컴퓨터 과학에서 표현식은 데이터로서 코드로서 코드와 데이터로서 코드로서 코드와 데이터의 이중성을 가리키는데, 이는 컴퓨터가 프로그래밍 언어로 명령을 실행 중인 프로그램에 의해 처리되는 데이터로서 취급할 수 있게 한다.
컴퓨터 코드를 데이터로 취급하는 개념이나, 실행된 데이터를 코드로 취급하는 개념은 다음과 같다.
- 구성 스크립트, 선언적 프로그래밍, 도메인별 언어 및 마크업 언어. 여기서 프로그램 실행은 명령의 순서가 아닌 데이터 요소에 의해 제어된다.
- 제1종 기능, 언어의 실체로서 접근할 수 있는 기능.
- Homoiconicity, 코드는 데이터와 동일한 구조를 갖는 LISP와 같은 언어의 속성이다.
- 반사 및 메타프로그래밍, 런타임에 프로그램에서 개체의 구조와 동작을 수정할 수 있는 언어의 기능.
- 자체 수정 코드, 언어가 실행되는 동안 자신의 지시사항을 변경할 수 있는 언어의 기능.
- 저장된 프로그램, 동일한 메모리 장치에 프로그램과 데이터를 저장하는 Von Neumann 아키텍처가 있는 컴퓨터에 코드 저장.