Метапрограммирование

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

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

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

См. также

Ссылки

 
Начальная страница  » 
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 Home