Обратиться к Вашим трем вопросам отдельно:
, Каково преимущество в наличии других языков для JVM?
здесь существует два фактора. (1) Почему имеют язык кроме Java для JVM и (2) почему другой язык работал на JVM вместо различного времени выполнения?
, Что требуется (в терминах высокого уровня) записать язык/компилятор для JVM?
байт-код чтений JVM (.class) файлы для получения инструкций это должно работать. Таким образом любой язык, который должен быть выполнен на JVM, должен быть скомпилирован в байт-код, придерживающийся спецификация Sun. Этот процесс подобен компиляции в собственный код, за исключением того, что вместо того, чтобы компилировать в инструкции, понятые под ЦП, код компилируется в инструкции, которые интерпретируются JVM.
, Как Вы пишете/компилируете/выполняете код на языке (кроме Java) в JVM?
Очень таким же образом Вы пишете/компилируете/выполняете код в Java. Чтобы намочить ноги, я рекомендовал бы смотреть Scala, который работает безупречно на JVM.
Ответ Ваш развивать вопросы:
, Как был бы приложение, записанное в, скажем, JPython, взаимодействуйте с приложением Java?
Это зависит от выбора реализации устранения разрыва языка. В Вашем примере проект Jython имеет простое средство выполнения этого (, посмотрите здесь ):
from java.net import URL
u = URL('http://jython.org')
кроме того, может, что использование приложения JPython какой-либо JDK функционирует/возражает?
Да, посмотрите выше.
, Что, если это был код Jaskell, был бы то, что это - функциональный язык не, делают его несовместимым с JDK?
номер Scala (ссылка выше), например, реализует функциональные опции при поддержании совместимости с Java. Например:
object Timer {
def oncePerSecond(callback: () => unit) {
while (true) { callback(); Thread sleep 1000 }
}
def timeFlies() {
println("time flies like an arrow...")
}
def main(args: Array[String]) {
oncePerSecond(timeFlies)
}
}
Возможно ...
filter_dict = {'subcat__id__in': [1,3,5]}
Listing.objects.filter(**filter_dict)
Listing.objects.filter(**{"subcat__id__in": ast.literal_eval("[1,3,5]")})