我正在尋找一個短演示文稿的概念驗證演示,其中運行代碼知道當前正在執行的代碼塊的散列「值」 。例如:運行時訪問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保持聯繫,我懷疑這可能會做到這一點(提示讚賞)。它不一定要很快,或者一個流行的平臺,可以成爲最具學術性和最奇怪的平臺。這只是一個演示。
有沒有人知道一個語言/平臺可以做到這一點,開箱即用或相對較少的修補?我更喜歡某種分析/樹狀的東西來處理,而不是實際的源代碼。
在普通的Common Lisp中,運行函數並不知道它自己。在特定的實現中,應該可以檢查堆棧。 –