В останній статті CACM [1] автори представляють реалізацію для поетапних функцій . Вони використовують термін так, ніби він був добре відомий, і жодна з посилань не виглядає очевидним вступом.
Вони дають коротке пояснення (зміна мого та посилального номера змінено; в оригіналі - 22)
У контексті генерування програм багатоступеневе програмування (MSP, постановка на короткий час), встановлене Taha та Sheard [2], дозволяє програмістам явно затримати оцінку програмного виразу на більш пізній стадії (таким чином, постановка виразу). Нинішній етап ефективно діє як генератор коду, який складає (і, можливо, виконує) програму наступного етапу.
Однак Таха і Шерд пишуть (моє наголос):
Багатоетапна програма - це така, яка передбачає генерацію, компіляцію та виконання коду, все це в межах одного процесу. Багатоетапні мови експресують багатоетапні програми. Постановочне і, отже, багатоступеневе програмування вирішують потребу в рішеннях загального призначення, які не платять загальні витрати інтерпретації часу.
Вони продовжують описувати старі роботи, які нібито показують, що інсценізація ефективна, що говорить про те, що концепція є ще старшою. Вони не дають посилання на сам термін.
Ці твердження здаються ортогональними, якщо не суперечливими; можливо, те, що пишуть Ромпф і Одерський, є додатком того, що пропонують Таха і Шеард, але, можливо, це інша точка зору на те саме. Вони, схоже, погоджуються, що важливим моментом є те, що програми (пере) записують частини себе під час виконання, але я не знаю, чи це необхідна та / або достатня здатність.
Отже, що таке інсценізація відповідно - це інтерпретація інсценізації в цьому контексті? Звідки походить цей термін?
- Легка модульна постановка: прагматичний підхід до створення коду виконання та складених DSL від T. Rompf та M. Odersky (2012)
- MetaML та багатоетапне програмування з явними анотаціями У. Таха та Т. Шеарда (2000)
@generated function
s: julia.readthedocs.org/en/latest/manual/metaprogramming/…