Я ищу для демонстрации демонстрационной концепции для краткой презентации, в которой запущенный код знает хэшированное «значение» исполняемого в настоящее время блока кода , Например:Язык программирования/платформа с доступом во время работы к AST
function BBB(a) {
a = 2 * a;
print me.hash; --> "xxxxxxx" (value of BBB-syntax represenation)
return a;
}
function AAA(a, b, c) {
d = BBB(a);
print me.hash; --> "yyyyyyy" (value of AAA-Syntax representation, possibly dependant on value of BBB, but not necessary)
return d;
}
Я инстинктивно повернулся к LISPish языков, но не имел успеха с Scheme еще. И я давно не общался с Common LISP, и я подозреваю, что смогу это сделать (подсказки оценены). Он не должен быть быстрым, или популярной платформой, может быть самой доступной академической и странной платформой. Это просто демо.
Кто-нибудь знает язык/платформу, которая может сделать это в значительной степени из коробки или с относительно небольшим мастерингом? Я бы предпочел какую-то разборную/деревенскую работу, а не фактический исходный код.
В обычном общем Lisp работающая функция не знает о себе. В конкретных реализациях должно быть возможно проверить стек. –