Topic: Compilatore o Interprete?  (Letto 2006 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Playmics

  • python unicellularis
  • *
  • Post: 5
  • Punti reputazione: 0
    • Mostra profilo
Compilatore o Interprete?
« il: Settembre 06, 2012, 15:43 »
Spero di aver postato nella sezione giusta.
Volevo sapere se per creare dei programmi belli corposi (dei videogiochi, per esempio) è meglio utilizzare l'IDLE o un compilatore.
Grazie in anticipo per chi mi risponderà?

Offline GlennHK

  • python sapiens sapiens
  • ******
  • Post: 1.659
  • Punti reputazione: 1
    • Mostra profilo
    • La Tana di GlennHK
Re: Compilatore o Interprete?
« Risposta #1 il: Settembre 06, 2012, 16:20 »
I programmi python sono sempre interpretati, al massimo possono essere compilati in codice intermedio per ragioni di ottimizzazione ma questo compito è svolto in automatico dall'interprete.

Offline Playmics

  • python unicellularis
  • *
  • Post: 5
  • Punti reputazione: 0
    • Mostra profilo
Re: Compilatore o Interprete?
« Risposta #2 il: Settembre 06, 2012, 17:10 »
Forse mi sono espresso male per compilatore intendo roba tipo Eclipse + PyDev o Aptana Studio.

Offline Claudio_F

  • python sapiens sapiens
  • ******
  • Post: 1.157
  • Punti reputazione: 2
    • Mostra profilo
Re: Compilatore o Interprete?
« Risposta #3 il: Settembre 06, 2012, 17:11 »
Mentre IDLE e' solo un mini ambiente di sviluppo composto da una finestra editor e una finestra di esecuzione (tra l'altro molto lenta nell'output e, almeno su win, a me va spesso in crash all'avvio del proprio programma).

Offline Giornale di Sistema

  • python sapiens sapiens
  • ******
  • Post: 3.124
  • Punti reputazione: 4
    • Mostra profilo
    • Distillato di Python
Re: Compilatore o Interprete?
« Risposta #4 il: Settembre 06, 2012, 17:38 »
Volevo sapere se per creare dei programmi belli corposi (dei videogiochi, per esempio) è meglio utilizzare l'IDLE o un compilatore.

Forse mi sono espresso male per compilatore intendo roba tipo Eclipse + PyDev o Aptana Studio.

Semplificando all'estremo (anche troppo, il discorso compilatore/interprete non è esattamente così per Python), per sviluppare hai come minimo bisogno di:
  • un editor per scrivere con comodità il codice sorgente;
  • un compilatore, quel programma che traduce le istruzioni di un programma scritto in un certo linguaggio in codice oggetto,
    quello direttamente eseguibile dal processore;
  • un interprete al posto del compilatore se il linguaggio è interpretato (il caso di Python).

IDLE è un IDE, Integrated Development Environment o ambiente di sviluppo integrato,
un sistema composto da più componenti che nei minimi termini sono almeno un editor e un compilatore/interprete.

Eclipse + PyDev o Aptana Studio sono solo IDE più avanzati.

Hanno tutta una serie di feature in più che rendono molto più comodo lo sviluppo di applicazioni "corpose",
sono però inutilmente complessi per quelle più piccole (ma abitualmente me ne infischio e lo uso anche in quei casi  :devil:).
« Ultima modifica: Settembre 06, 2012, 17:53 da Giornale di Sistema »

Offline Javatar

  • python neanderthalensis
  • ****
  • Post: 349
  • Punti reputazione: 0
    • Mostra profilo
    • La mia pagina su Github
Re: Compilatore o Interprete?
« Risposta #5 il: Settembre 06, 2012, 17:40 »
Un linguaggio è compilato quando viene eseguito senza bisogno di essere interpretato prima di essere eseguito.
C\C++, Delphi e via discorrendo sono compilati.
Altri linguaggi, come Python o Java, hanno un ulteriore "livello" fra linguaggio e assembly, un interprete, questo permette loro di avere un livello di astrazione dalla macchina maggiore e quindi, in linea di massima, codice che funziona su qualsiasi interprete.
Python e Java, sono comunque casi particolari, in quanto sono pre-compilati, in senso stretto, vuol dire che l'interprete si mangia un assembly particolare, detto bytecode.

Ora, per quanto riguarda la scelta dell'ambiente di lavoro ci sono i pareri più disparati... (nel senso che c'è chi usa vi e compila poi da terminale e si rifiuta di usare qualsiasi altro tool hehe)
A parer mio, un ambiete evoluto come possono essere eclipse e netbeans, è più comodo, anche se, per quanto riguarda il python mi sono sempre trovato bene con il solo idle e fatto sta che continuo ad utilizzarlo.

Offline riko

  • python deus
  • *
  • moderatore
  • Post: 7.453
  • Punti reputazione: 12
    • Mostra profilo
    • RiK0 Tech Temple
Re: Compilatore o Interprete?
« Risposta #6 il: Settembre 06, 2012, 19:13 »
Forse mi sono espresso male per compilatore intendo roba tipo Eclipse + PyDev o Aptana Studio.

Ora ti stai esprimendo peggio. ;) Fermiamoci qui e facciamo chiarezza.

Essenzialmente ti hanno gia' illustrato un po' di cose. Quindi, riassumiamo.
Un compilatore e' un programma che traduce programmi scritti nel linguaggio L verso il linguaggio L'.
Tipicamente nella pratica si sottointende che L' sia il linguaggio comprensibile nativamente dal processore.

In pratica non e' sempre cosi': per esempio javac compila da Java a Java Bytecode, in seguito eseguito dalla JVM.
Ovviamente esistono anche implementazioni di Java che compilano nativamente (non so piu' quanto sviluppate) e in linea teorica e' possibile scrivere un interprete puro per Java.
In pratica la specifica fa assunzioni che renderebbero tale cosa piuttosto balzana (ma e' a livello di piattaforma e non di linguaggio, IMHO e non ho investigato, e' solo un'idea generica).

L'implementazione standard di Python fa la stessa cosa, ma non richiede di chiamare esplicitamente la fase di compilazione e quella di esecuzione. Prendi un sorgente python e quando lo esegui viene automaticamente compilato nel bytecode della macchina virtuale python e questa poi lo esegue.

Quindi, per progetti grossi o piccoli non cambia nulla.

Editor o IDE? Bah.... In posti come Google tipicamente gli editor dominano, ma gli IDE non sono ignoti. Anche in molte aziende molto agili il tipo di sviluppatori che prendono e' generalmente gente da editor. In altri posti si lavora con IDE, vuoi per abitudini pre-esistenti (programmatori windows), vuoi per altri motivi.

Personalmente io filosoficamente preferisco gli editor e sono in particolare appassionato di vim. Nella pratica non mi vergogno ad ammettere che uso spesso PyCharm perche' fa alcune cose davvero bene. Ho provato ad usare per un po' PyDev e alla fine dei conti mi dava *meno* di vim in un ambiente molto piu' pesante. Lo ho scartato piuttosto rapidamente (diciamo, circa due mesi di uso intensivo, non volevo assolutamente che fosse una decisione poco meditata -- visto che pycharm mi costa soldini preziosi --).

Offline Playmics

  • python unicellularis
  • *
  • Post: 5
  • Punti reputazione: 0
    • Mostra profilo
Re: Compilatore o Interprete?
« Risposta #7 il: Settembre 07, 2012, 18:45 »
Questo che avete detto lo sapevo, più che altro non capivo quale nome generico dare agli IDE più avanzati.
Comunque sarei orientato a usare un IDE più avanzato di IDLE, perché a me (uso Windows XP) va spesso in crash.

Offline mirkomarko

  • python erectus
  • ***
  • Post: 141
  • Punti reputazione: 0
    • Mostra profilo
Re: Compilatore o Interprete?
« Risposta #8 il: Settembre 08, 2012, 14:39 »
Non penso esista un nome generico per gli IDE più avanzati, si chiamano tutti IDE, esiste quello più vicino alle proprie esigenze, c e chi adora Vim (senza far nomi ;) ) perché più vicino alle proprie esigenze, chi adora Emacs e chi adora Geany come me :P  non perche piu avanzati o meno ma sempre perché si adattano semplicemente alle proprie esigenze tutto qua, prova diversi IDE quando trovi quello giusto te ne accorgi :D :D :D cordiali saluti,

Marco.

Offline Giornale di Sistema

  • python sapiens sapiens
  • ******
  • Post: 3.124
  • Punti reputazione: 4
    • Mostra profilo
    • Distillato di Python
Re: Compilatore o Interprete?
« Risposta #9 il: Settembre 08, 2012, 15:53 »
Comunque sarei orientato a usare un IDE più avanzato di IDLE, perché a me (uso Windows XP) va spesso in crash.

Per le mie esigenze si è rivelato adatto "Eclipse + Pydev"... è gratis, non costa nulla provarlo e vedere se si adatta anche alla tue.