Портирование Perl к [закрытому] Python

9
задан rook 8 April 2010 в 03:01
поделиться

5 ответов

Держите под рукой разговорник , когда будете вводить код, который хотите перенести.

17
ответ дан 4 December 2019 в 06:26
поделиться

Другой подход заключается в том, что вы можете повторно использовать существующий код Perl и дополнить его новым кодом Python.

Одна из возможностей, которая может сработать для вас, - это использование модуля perl Python , который позволяет выполнять код Perl внутри Python .

Другой подход состоит в том, чтобы Perl создавал свой вывод в виде простых текстовых файлов / файлов JSON / YAML, которые анализируются Python для дальнейшей обработки. Таким образом, я смог использовать свой устаревший код Perl, не переписывая его, при переходе на Python. Ваш пробег может отличаться, так как этот метод "склеивания" может оказаться слишком медленным для ваших нужд. Этот метод «передачи файлов» хорош, когда у вас есть длительные вычисления, дающие промежуточные результаты: вы можете начать вычисления в Perl и продолжить их в Python.

3
ответ дан 4 December 2019 в 06:26
поделиться

Преобразование потребует написания парсера Perl, средства проверки семантики и генератора кода Python.

Непрактично. Парсеры Perl достаточно сложны для разработчиков Perl. Лучше перевести Perl на Python из Perl AST (коды операций) с помощью кода операции Perl или связанных модулей.

http://perldoc.perl.org/Opcode.html

Некоторые нотации не отображаются из Perl в Python без некоторой доработки. Например, закрытие Perl отличается. Как и его поддержка регулярных выражений.

Короче говоря, либо конвертируйте его вручную, либо используйте некоторые интеграционные модули для вызова Python из Perl или наоборот.

2
ответ дан 4 December 2019 в 06:26
поделиться

В Perl существует так много способов сделать одно и то же, что написание любого кросс-компилятора было бы... мучительным в лучшем случае. Реконструируйте (не просто переводите) программу вручную.

6
ответ дан 4 December 2019 в 06:26
поделиться

лучший "инструмент" для преобразования Perl в Python - это все еще вы сами :). Изучите синтаксис Python и принцип его работы из Python docs. Например, в Perl часто используется regex, однако в Python работа со строками настолько проста, что в большинстве случаев regex не нужен. Как конвертер может узнать об этом заранее? В Perl также существует множество способов выполнения операций, поэтому откуда конвертеру знать, что лучше всего использовать эквиваленты Python? Поэтому ручная конвертация все еще остается лучшим способом

Если вам интересно, вы можете взглянуть на эту книгу. Pleac

5
ответ дан 4 December 2019 в 06:26
поделиться