2012-02-26 5 views
25

In che cosa è scritto il linguaggio di base Python? In realtà ho fatto una ricerca su google ma non ho trovato alcun risultato soddisfacente.Linguaggio di base di python

+0

https://wiki.python.org/moin/ PythonImplementations – jfs

risposta

50

Non si può dire che Python sia scritto in un linguaggio di programmazione, poiché Python come linguaggio è solo un insieme di regole (come le regole di sintassi o le descrizioni di s funzionalità standard). Quindi potremmo dire che è scritto in inglese :). Tuttavia, le regole menzionate possono essere implementate in alcuni linguaggi di programmazione. Quindi, se invii una stringa come "import this" a quel programma chiamato interpreter, ti restituirebbe "Zen of Python".

Poiché la maggior parte dei sistemi operativi moderni sono scritti in C, anche i compilatori/interpreti per i linguaggi di alto livello moderni sono scritti in C. Python non è un'eccezione - la sua implementazione più popolare/"tradizionale" è chiamata CPython ed è scritta in C .

Non ci sono altre implementazioni:

  • IronPython (Python in esecuzione su .NET)
  • Jython (Python in esecuzione su Java Virtual Machine)
  • PyPy (Un'implementazione pitone veloce con un compilatore JIT)
  • Stackless Python (Filiale di CPython microspire di supporto)
+0

Si noti che PyPy è scritto in RPython. – Marcin

15

Le origini sono public. Python è scritto in C (in realtà l'implementazione predefinita è chiamata CPython).

9

Python è scritto in inglese. Ma ci sono diverse implementazioni:

+1

In realtà PyPy è scritto in RPython –

+0

Non lo so, ma CPython è in qualche modo l'implementazione più lenta. http: //blog.dhananjaynene.it/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/ – Dewsworld

+0

@JakobBowyer È possibile eseguire PyPy usando CPython, quindi è perfettamente vero dire che è scritto in Python. Il fatto che per ragioni di prestazioni usi solo un sottoinsieme di Python è più un dettaglio di implementazione (ma un dettaglio molto interessante e intrigante). – Duncan

0

si ottiene una buona idea se si compila Python dai sorgenti. Di solito è gcc che compila i *.c file

-2

Per aggiungere e riformulare alcune delle altre buone risposte:

Il specification for Python (question) è scritto in inglese, ma potrebbe essere scritto in un formal semantics, come Standard ML e Scheme sono. Vedi Programming language specification.

ci sono implementazioni di Python in molte lingue, come notato da Gandaro, di cui il più veloce non è sorprendentemente l'originale CPython, che è scritto in C.

+0

intendi "sorprendentemente no" o "non sorprendentemente"? – necromancer

+0

@necromancer Voglio dire il primo, cioè sono sorpreso che l'implementazione più rapida non sia l'implementazione di riferimento in C. Ma suppongo che non ci sorprenda che ci siano persone che possono migliorare le prestazioni, dal momento che non lo faranno devono necessariamente affrontare altri vincoli che l'implementazione di riferimento vuole soddisfare. – nealmcb

+1

Penso che il linguaggio dell'implementazione sarebbe meno rilevante di (a) la sofisticazione di un compilatore dinamico che converte l'origine python in codice macchina. Questo compilatore potrebbe essere in qualsiasi lingua; ciò che conta è la qualità degli algoritmi; (b) il codice macchina di alcune librerie. Python è famoso per le librerie numeriche che non sono scritte in Python ma semplicemente "incollate" nell'ambiente; e (c) il benchmark; alcuni programmi possono essere eseguiti più rapidamente in una implementazione rispetto ad altri. – necromancer