메타프로그래밍 예제

메타 프로그래밍의 예에 대한 목록에서 시작하는 것은 원숭이 패치입니다. 예, 그것은 이상한 이름, 하지만 그것은 강력 하 고 위험한 도구. 메타프로그래밍을 사용하면 프로그램이 프로그램 자체에서 메서드를 정의할 필요 없이 즉석에서 메서드를 만들 수 있습니다. C++에서 본 메타프로그래밍의 가장 멋진 예는 무엇입니까? C++에서 본 메타프로그래밍의 실용적인 용도는 무엇입니까? 루비 메타프로그래밍을 심층으로 배우고 싶다면 2010년 12월 4일부터 시작되는 온라인 강좌에 참여하세요. 자세한 내용은 여기를 클릭하십시오. 메타프로그래밍은 계산을 런타임에서 컴파일 타임으로 이동하고, 컴파일 시간 계산을 사용하여 코드를 생성하고, 자체 수정 코드를 사용하도록 설정하는 데 사용할 수 있습니다. 메타 프로그램이 기록되는 언어를 메타언어라고 합니다. 조작되는 프로그램의 언어를 특성 지향 프로그래밍 언어라고 합니다. 프로그래밍 언어가 자체 메타언어가 되는 기능을 반사 또는 “반사성”이라고 합니다. [4] 반사는 메타 프로그래밍을 용이하게하는 귀중한 언어 기능입니다.

메타프로그래밍은 LISP와 같은 목록 처리 언어를 사용하여 1970년대와 1980년대에 인기가 있었습니다. LISP 하드웨어 기계는 1980년대에 인기가 있었고 코드를 처리할 수 있는 응용 프로그램을 사용할 수 있었습니다. 그들은 인공 지능 응용 프로그램에 자주 사용되었습니다. 당신이 나 같은 경우에 나는 메타 프로그래밍 이라는 용어를 들었을 때 내 눈이 반짝. 하지만 메타프로그래밍이 실제로 무엇인지 살펴보고 나중에 메타프로그래밍의 몇 가지 실용적인 예를 살펴보겠습니다. 몇 가지 구체적인 예제가 없는 경우 약간 혼란스러울 수 있습니다. 일단 당신이 기술에 익숙해지면, 메타 프로그래밍은 처음에 들릴 수 있습니다만큼 복잡하지 않습니다. 메타프로그래밍을 사용하면 오류가 발생하기 쉽거나 반복적인 프로그래밍 작업을 자동화할 수 있습니다. 이를 사용하여 데이터 테이블을 미리 생성하거나, 함수로 추상화할 수 없는 상용구 코드를 자동으로 생성하거나, 자체 복제 코드 작성에 대한 독창성을 테스트하는 데 사용할 수 있습니다. 처음에는 메타프로그래밍이 고급 주제인 것처럼 보일 수 있지만, 적절한 도구를 사용하는 방법을 알고 나면 언어 전문가에게만 적합한 것은 아닙니다. 메타프로그래밍은 일반적으로 세 가지 방법 중 하나로 작동합니다. [5] 숫자 2와 3이 비슷하다면 그 것입니다.

이 가이드에서는 예제와 미묘한 차이점을 살펴보겠습니다. 이렇게 하면 이름 값으로 액세스할 수 있도록 값이 다시 저장됩니다. 이러한 예제 중 어느 것도 자체적으로 사용되지는 않지만 대부분의 다른 TMP의 기초를 형성하므로 주의해야 할 중요한 패턴입니다. 내가 보여주고 싶은 마지막 트릭은 lib / awesome_print / core_ext / 커널.rb에 있습니다. 이 파일에는 코어 커널 클래스의 확장이 포함되어 있습니다. 이 예는 파올로 페로타에 의해 책 메타 프로그래밍 루비에서 온다. 메타프로그래밍은 다른 프로그램(또는 자신)을 데이터로 쓰거나 조작하거나 런타임에 수행되는 컴파일 타임에 작업의 일부를 수행하는 컴퓨터 프로그램의 작성입니다. 대부분의 경우 프로그래머는 모든 코드를 수동으로 작성하는 데 걸리는 시간과 동일한 시간 내에 더 많은 작업을 수행할 수 있으며, 재컴파일 없이 새로운 상황을 효율적으로 처리할 수 있는 유연성을 제공합니다.