2010-04-04 8 views

risposta

1

Questo è corretto o molto vicino. Jython e IronPython hanno modificato il loro schema di numerazione in modo che corrisponda alla versione di CPython le cui caratteristiche sono più strettamente implementate.

2

Generalmente sì, ma tecnicamente nulla impedisce l'implementazione alternativa dalla scelta dei numeri di versione desiderati.

È anche importante notare che solo perché Jython 2.5.1 è progettato per corrispondere a CPython 2.5.1, non significa che si comporteranno esattamente nello stesso modo o saranno del tutto compatibili - si consideri i moduli basati su C , per esempio, e le strutture per ottenere il bytecode sottostante.

La mancanza di qualsiasi corpo standard reale o specifica formale per il linguaggio Python significa che non ci sono regole chiare su ciò che costituisce "Python" e che cosa è "implementazione definita".

1

La sintassi (e set di funzionalità) sono controllati rigorosamente dai primi due numeri - ogni 2.5.* è la pretesa di implementare la stessa sintassi e set di funzionalità (in termini di definizione del linguaggio, non aspetti manuale di lingua di riferimento lascia esplicitamente l'implementazione: ad esempio, sia Jython che IronPython hanno 'buh' significa "una stringa letterale unicode", mentre CPython significa "una stringa letterale letterale"). Un valore superiore a *, all'interno di qualsiasi linea di implementazione, implica correzioni di bug e/o ottimizzazioni che non influiscono sulla sintassi e sulle funzionalità (eccetto che per correggere i bug di implementazione che si erano verificati in alcuni casi inferiori) *.

Quindi, Jython 2.5.1 può essere sostituito da qualsiasi CPython 2.5.x per qualsiasi valore di x - e sostiene di essere migliore di Jython 2.5 (IMHO shd essere 2.5.0 ma il trascinamento .0 non viene utilizzato in pratica), anche se non così buono come Jython 2.5.2 se quest'ultimo esiste. Ma lo è non tentativo di emulare i bug in CPython 2.5.1 che sono stati corretti in CPython 2.5.2 o successivi: senza dubbio ogni implementazione ha i propri bug, e nessuno dichiara compatibilità bug-per-bug ;-).

Problemi correlati