]]> ]]>

Парадигма: метапрограммирование

Метапрограммирование предусматривает написание программ, которые работают с другими программами в качестве данных. Язык обрабатывающей программы называется метаязыком, язык обрабатываемой — объектным языком.

Простейшим примером метапрограммирования является любой компилятор, преобразующий код, написанный на языке высокого уровня, в низкоуровневый машинный язык или ассемблер. Очевидно, что большинство языков, поддерживающих работу со строками, могут использоваться для непосредственной генерации кода для других языков. Тем не менее, термин “метапрограммирование” обычно подразумевает, что в качестве метаязыка и объектного языка выступает один и тот же язык, и более того, такое его использование предусмотрено дизайном языка.

Парадигма метапрограммирования может быть реализована несколькими способами:

  • использование макросов;
  • обобщенное программирование;
  • динамическое выполнение строковых выражений, которые содержат фрагменты кода и могут генерироваться во время выполнения программы (например, команда execute immediate в PL/SQL);
  • предоставление коду программы доступа к внутренней реализации средств выполнения программы.
Языки программирования, поддерживающие данную парадигму программирования:

Работа программистам