Означают ли альтернативные номера версий реализации Python, что они предоставляют одинаковый синтаксис? - PullRequest
5 голосов
/ 05 апреля 2010

Например, Jython версии 2.5.1, подразумевает ли это параллельную верность синтаксису cpython, когда он был в версии 2.5.1?

Ответы [ 3 ]

2 голосов
/ 05 апреля 2010

Обычно да, но технически ничто не мешает альтернативным реализациям выбирать любые номера версий, которые они хотят.

Также важно отметить, что то, что Jython 2.5.1 предназначен для соответствия CPython 2.5.1, не означает, что они будут вести себя точно так же или будут полностью совместимы - рассмотрим модули на основе C, например, и средства для получения базового байт-кода.

Отсутствие какого-либо реального тела стандартов или формальной спецификации для языка Python означает, что не существует четких правил относительно того, что составляет "Python" и что "определяется реализацией".

1 голос
/ 05 апреля 2010

Синтаксис (и набор функций) строго контролируются первыми двумя числами - каждый 2.5.* претендует на реализацию одного и того же синтаксиса и набора функций (с точки зрения определения языка, не аспектовсправочное руководство по языку явно не зависит от реализации: например, Jython и IronPython имеют 'buh', что означает «строковый литерал Юникода», в то время как в CPython это означает «байтовый литерал строки»).Более высокое значение * в любой строке реализации подразумевает исправление ошибок и / или оптимизацию, которые не влияют на синтаксис и функции (за исключением исправления ошибок реализации, которые имели место при более низком *, если таковой имеется).

Таким образом, Jython 2.5.1 может быть заменен на любой CPython 2.5.x для любого значения x - и он утверждает, что он лучше, чем Jython 2.5 (IMHO должен быть 2.5.0, но завершающий .0 не используется на практике), хотя и не так хорош, как Jython 2.5.2, если последние существуют.Но он не имеет целью эмулировать ошибки в CPython 2.5.1, которые были исправлены в CPython 2.5.2 или более поздних версиях: без сомнения, каждая реализация имеет свои собственные ошибки, и никто не претендует на совместимость с ошибками;-.)

1 голос
/ 05 апреля 2010

Это правильно или очень близко. Jython и IronPython изменили свою схему нумерации, чтобы соответствовать версии CPython, функции которой они наиболее близко реализуют.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...