dsl
-
Meta programmingcoding 2015. 7. 21. 18:25
메타프로그래밍은 코드로 코드를 생성하는 것이다. 코드를 데이터로 처리한다. 코드를 실행한 결과로 데이터 대신 코드가 리턴된다. 일명 Macro 라고도 한다. 이런 특성을 활용해 비슷한 코드를 줄일 수 있고 DSL(Domain specific language)를 만들 수 있다. 인공지능이나 분석에도 유리하다. 함수형 언어들이 대체적으로 메타프로그래밍을 지원한다. 메타프로그래밍은 두 가지가 있다. 첫 째는 코드로 코드를 생성하는 것이다. 둘 째는 코드로 코드를 생성하고 생성된 코드로 다시 코드를 생성한다. 첫 째는 한단계만 생성하는 것이고 둘 째는 몇 단계로 계속 생성하는 것이다. 보통 한단계 메타프로그래밍은 지원하는데 다중 메타프로그래밍을 지원하는 경우는 드물다. LISP, Clojure가 다중 메타프로그..