LINUX.ORG.RU

Это обязательно нужно в процессе исполнения программы? Ибо в эклипсе есть модный пункт меню "Open call hierarcy".

gaa ★★
()
Ответ на: комментарий от KRoN73

(require 'sb-introspect)

(defun a (x)
  (print x))

(defun b ()
  (a))

(sb-introspect::who-calls 'a) 

=> ((B
  . #S(SB-INTROSPECT:DEFINITION-SOURCE
       :PATHNAME NIL
       :FORM-PATH (0 2 1 3 2)
       :CHARACTER-OFFSET 0
       :FILE-WRITE-DATE NIL
       :PLIST NIL
       :DESCRIPTION NIL)))

mv ★★★★★
()
Ответ на: комментарий от mv

Если я правильно понял вопрос, то это решается в Eclipse показом всех вызовов данной функции в проекте :)

KRoN73 ★★★★★
()
Ответ на: комментарий от mv

>Т.е. возможности сделать такую штуку в рантайме в джаве нет?

В лоб - нет, ИМХО, язык-то статический.

На практике - можно, но нужно копаться в потрохах JVM. Я не возился с этим.

KRoN73 ★★★★★
()
Ответ на: комментарий от mv

>В принципе, да, в джаве не нужно: там нет возможности генерить код на ходу.

Есть, но не средствами JDK :) Никто не мешает собирать байткод в любом виде, скажем, через тот же asm. Да и, если руки дойдут, у меня JBForth2 будет байткод генерить. Т.е. и на лету в т.ч.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Если сделаешь метаобъектный протокол для всего языка, то люди будут молиться на твой золотой памятник ;)

mv ★★★★★
()
Ответ на: комментарий от mv

>Если сделаешь метаобъектный протокол для всего языка

Это та фигня, которая процесс тормозит. Хочется и рыбку^W классы Java-совместимые генерить, и все возможности Форт-идеологии оставить (100% совместимости с Фортом и сейчас нет - скажем, во всех классических словах работа со строками с ( uaddr length ) заменена на (String) и т.п.).

Скорее всего придётся основной («глобальный») поток исполнения на Форте делать не реально глобальным, а потоком внутри класса. И, вообще, чистую интерпретацию входного потока переделывать в компиляцию + исполнение.

KRoN73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.