Ответ 1
См. Административная нормальная форма.
В информатике административные нормальная форма (сокращенный ANF) является канонической форме программ, представленный Фланаганом и другими служить промежуточным представление в функциональных компиляторах сделать последующие преобразования машинный код более прямой.
В ANF все аргументы функции должно быть тривиально. То есть оценка каждого аргумента должны остановиться немедленно.
Грамматика
Следующая грамматика BNF описывает чистое λ-исчисление, модифицированное поддерживать ограничения ANF:
EXP ::= VAL VAL
| let VAR = EXP in EXP
VAL ::= ? VAR . EXP
| VAR
Варианты ANF, используемые в компиляторах или в исследованиях часто допускаются константы, записи, кортежи, мультиаргументы функций, примитивных операций и условные выражения.
Фланаган, Кормак; Сабри, Амр; Дуба, Брюс Ф., Феллеисен, Маттиас. "Сущность компиляции с продолжением" , вероятно, является окончательным источником.
Также были найдены заметки о cs252r: Расширенное функциональное программирование.