Как другие решают эту проблему?
По сути, ваш вопрос: "Как я могу получить инструменты для языков, которые не имеют встроенной поддержки инструментов?" Сверхсовременное решение для программирования языков - попытка встроить всю необходимую поддержку в конкретные реализации языков (рефлексия, профилирование, метапрограммирование, ...). Хотя это хорошая идея, количество инженерных разработок, необходимых для этого, огромно, и .... этого часто не происходит (посмотрите на вашу проблему с Jython).
Еще один способ решения проблемы - выйти за пределы языка (или его реализации) и получить поддержку создания инструментов meta от механизмов, предназначенных для реализации инструментов на самых разных языках. Это также требует разработки, но это может быть сделано довольно общим способом, так что метаинструмент широко используется. Такие метаинструменты могут затем использоваться для реализации инструментов, которых у вас нет.
Наш инструментарий реинжиниринга программного обеспечения DMS - это такой мета-инструмент, обеспечивающий анализ, анализ и преобразование программ, параметризованный с помощью явных определений языка. DMS поддерживает многие языки (C, C ++, C #, COBOL, Java, PHP, ...), включая Python, и поддерживает диалекты , что позволяет обрабатывать вариации на «стандартном» языке (I) подозреваю, что Jython не совсем Python).
По этой ссылке вы можете найти технический документ по , как метаинструмент, такой как DMS, может использоваться для реализации тестового покрытия для произвольных языков . Эта идея была использована для реализации семейства инструментов тестирования покрытия, доступных в моей компании. (Мы, вероятно, сделаем это для Python в будущем).