article

Метапрограммирование — создание программ, которые создают другие программы как результат своей работы. Во многих случаях метапрограммирование позволяет получить программу при меньших затратах времени и усилий, чем если бы программист писал её вручную.

При метапрограммировании необязательно генерируется код. Если программа может изменяться на стадии выполнения (как Лисп, Smalltalk, Руби ), подобная техника может применяться без прямой генерации кода. Может происходить на 2-х стадиях:

  • Выполнения программы
    • В при поддержке программы средой выполнения (в .NET в пространствах имён System.Reflection и System.Type собраны классы, позволяющие получать о любом типе информацию (состав полей, их тип и так далее), создавать на лету новые классы Наконец, для C++ есть библиотека, позволяющая на лету компилировать и генерировать исполняемый код (используется урезанный компилятор gcc, который портирован под любое устройство, способное исполнять команды).
    • В интерпретируемых языках — достаточно в программе сформировать строку текста программы и передать её на выполнение.
  • Компиляции программы
    • Внешнеязыковые (например генераторы синтаксических и лексических анализаторов lex, yacc)
    • Встроеные в язык (наиболее применяемые — препроцессов Си и механизм шаблонов C++)

См. также


Ссылки


Парадигмы программирования

Metaprogrammierung | Metaprogramming | Metaprogramación | Métaprogrammation | メタプログラミング | Metaprogramowanie | Lập trình meta

 

This article is licensed under the GNU Free Documentation License. It uses material from the "Метапрограммирование".

Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld