2014-01-14 3 views
3

У меня есть устаревшее приложение пролога ISO среднего размера, которое я хотел бы переместить на язык JVM. Приложение представляет собой инструмент командной строки, который анализирует текстовые файлы, выполняет некоторые оценки/преобразования и затем экспортирует текстовый файл.Преобразование приложения пролога на язык JVM?

Моя команда развивается в основном на Java, поэтому у нас есть много существующих java-компетенций и многоразовых компонентов. Однако компетенция Prolog очень низкая.

Я не ожидаю, что там будет инструмент, который будет использовать исходный код пролога и преобразовать его на другой язык. Но я пытаюсь понять, что было бы самым простым решением. Начиная с нуля на Java или используя более функциональный язык, например Clojure?

+0

Вы уверены, что вам нужно функциональное программирование? Что действительно делает приложение? Существует много java-библиотек для преобразования и оценки текста - jakarta, speed, ... – NeplatnyUdaj

+0

@NeplatnyUdaj И почему это проблема? Clojure является языком JVM и может использовать любую существующую библиотеку JVM. – Chiron

+0

@NeplatnyUdaj И по пути, там нет библиотеки под названием «Джакарта». Джакарта была зонтиком для многих проектов Java. – Chiron

ответ

2

Это, в основном, зависит от мастерства вашей команды. Вы упомянули, что у вашей команды довольно хорошие навыки Java; почему бы не начать с этого?

Если они не знают LISP, они потратят много времени на изучение этого с нуля. Изучение LISP - это довольно инвестиция, но, безусловно, она уплачивается.

Хотя Clojure поможет вам в вашем деле (из-за потока данных и преобразования данных), я бы сказал, что Java - лучшая ставка, так как ваша команда компетентна в этом.

-2

Пролог настолько отличается от Java и другого объектно-ориентированного языка. Я изучил этот язык, чтобы увидеть другой способ программирования. Но я не думаю, что есть волшебное решение для преобразования пролога в приложение Java. Логика не то же самое, и ни один другой язык не похож на Prolog. Я думаю, вам придется проанализировать, что делает ваше приложение пролога, и перейти от приложения с новым java-приложением.

2

Вы можете использовать Clojure вместе с core.logic (tutorial), который представляет собой реализацию miniKanren. Вам понадобятся некоторые логические/функциональные навыки программирования, но вы можете остаться на JVM.

+2

+1 для core.logic - это прекрасно обработанный и очень эффективный инструмент, который я успешно использовал для решения некоторых проблем с логическим программированием. – mikera

5

Но я пытаюсь понять, что было бы самым простым решением.

Некоторые реализации Prolog запускаются на платформе JVM. Википедия перечисляет 5 из них здесь: http://en.wikipedia.org/wiki/Comparison_of_Prolog_implementations. Поэтому, возможно, самым простым решением является обучение кого-то в вашей команде в Prolog и просто перенос приложения на реализацию JVM Prolog. (Что может быть простой вещью ...)

Возможно, кому-то из вашей команды понадобятся навыки Prolog, чтобы успешно перевести Prolog на другой язык.


Однако я признаю, что могут быть другие причины для перевода; например если существующий код Пролога нуждается в капитальном ремонте в любом случае.

Смежные вопросы