|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Aug 2008
Messaggi: 69
|
Interpretare il codice sorgente [Python o in generale linguaggi interpretati]
Salve,
ho cominciato un po' a vedere come programmare con python, che però è un linguaggio interpretato e ho visto un immagine: codice sorgente --> interprete --> risultato Io ho il programma per scrivere il codice, ho l'interprete (python 2.5.2), ma non riesco a capire come salvare ed eseguire il programma, con un .exe o roba simile. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Aug 2003
Città: Barletta (BA)
Messaggi: 939
|
Giusto una precisazione: sorgente -> byte code -> Esecuzione
Il codice sorgente viene prima tradotto in byte code e poi eseguito dalla macchina virtuale Python. Per distribuire il tuo software sviluppato in Python puoi usare la tecnica dei "binari congelati" che permette di creare un esecutibile completamente autonomo. I binari congelati contengono l'interprete, i byte code del tuo programma e i moduli di cui fai uso. I principali sono Py2EXE (solo Windows), PyInstaller (Windows, Linux) e Py2App (Mac OS X).
__________________
In a world without fences, who needs Gates? Power by: Fedora 8 - Mac OS X 10.4.11 |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
In generale, comunque, un linguaggio di per sé non si può classificare come interpretato o compilato sulla base di una sua implementazione. Un linguaggio definisce una SINTASSI e una SEMANTICA precisa, e... tanto basta.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Aug 2008
Messaggi: 69
|
ah okey, allora la roba che ho letto cunta sü ball.
e se lo volessi compilare che cosa uso? |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Aug 2003
Città: Barletta (BA)
Messaggi: 939
|
Hai letto il mio post?
![]() Non ti serve compilarli per forza
__________________
In a world without fences, who needs Gates? Power by: Fedora 8 - Mac OS X 10.4.11 Ultima modifica di nico159 : 08-09-2008 alle 13:42. |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
C'è molta ignoranza e molte leggende metropolitane, purtroppo.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#7 | |
|
Member
Iscritto dal: Jul 2008
Messaggi: 255
|
Quote:
|
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Chi compila in bytecode, è appunto un compilatore
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
|
#9 |
|
Member
Iscritto dal: Jul 2008
Messaggi: 255
|
no volevo dire che una volta compilato in bytecode poi ha bisogno dell'interprete per essere interpretato ... no ?
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Il bytecode prodotto dal compilatore invece, viene eseguito dalla Virtual Machine quando il programma viene mandato in esecuzione. Maggiori delucidazioni te le possono fornire altri utenti del forum più esperti che usano Python (uno a caso, cdimauro).
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
|
#11 | |
|
Member
Iscritto dal: Jul 2008
Messaggi: 255
|
Quote:
wikipedia dice che è un linguaggio interpretato tipo java. |
|
|
|
|
|
|
#12 |
|
Member
Iscritto dal: Aug 2008
Messaggi: 69
|
io ho scaricato quello che ti trasforma il python in un autoeseguibile, ma non un compilatore, solo che nn ci capisco niente Py2EXE
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: May 2001
Messaggi: 12919
|
Se Python segue la logica di Java, il bytecode è il codice di mezzo che viene prodotto dal compilatore, poi questo bytecode viene interpretato da una macchina virtuale.
Per questo non si dice che è compilato o interpretato... in genere è entrambe le cose. Il compilatore come ogni compilatore dunque compila per una determinata macchina, che in questo caso è la macchina virtuale. La genialata sta nel fatto che basta disporre di una macchina virtuale compilata su più ambienti operativi, affinché il programma compilato una volta sola sul tuo pc possa funzionare ovunque ci sia a disposizione una macchina virtuale capace di interpretare il bytecode. Questo in linea teorica garantisce la portabilità (anche se ciò non è pienamente vero), ed è uno dei vantaggi principali. Tra gli svantaggi c'è appunto la possibilità che le prestazioni rispetto al codice nativamente compilato possano risultare inferiori... Ultima modifica di WarDuck : 08-09-2008 alle 20:05. |
|
|
|
|
|
#14 | ||||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
- la prima volta che lo legge; - se ha subito modifiche; - se è stato immesso da riga di comando; - in presenza di funzioni di valutazioni (eval, compile) a cui vengono passate stringhe che contengono codice Python. Ma in ogni caso viene sempre generato il corrispondente bytecode, che viene poi passato alla virtual machine. Quote:
Un linguaggio NON si può identificare con una (o più) sua implementazione. Per tornare a Python, l'implementazione ufficiale (supportata dal team di sviluppo del linguaggio) / più diffusa è CPython che traduce il sorgente in bytecode, che dà poi in pasto alla virtual machine. Ma NON è l'unica implementazione. PyPy, ad esempio, è in grado di generare diverse forme di codice oggetto: si va dal bytecode al linguaggio macchina PowerPC. Similmente, Java non si può considerare interpretato come linguaggio perché compilatori come GCJ permettono di compilare il sorgente generando codice macchina. Spero di essere stato chiaro. Quote:
Comunque non l'ho usato, per cui non ti saprei dare una mano. Quote:
Su interpretazione vs compilazione vedi sopra: non esistono linguaggi che si possano espressamente etichettare con questi termini. Esistono i linguaggio, e (alcune) loro implementazioni.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
||||
|
|
|
|
|
#15 |
|
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
|
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Be' a dire il vero ho fatto versione Python/C sia nel quarto che nel quinto Contest.
Poi sono rimasto sul C perché nel contest contava strettamente l'elemento prestazionale, e su questo del codice nativo ben tarato è ancora nettamente superiore a qualsiasi linguaggio che possa essere interpretato in qualche modo. Per completezza mi tocca però dire che il miglioramento registrato con Psyco mi ha colpito parecchio, e se ho lasciato il Python è principalemente perché il PC che posso usare adesso è un pezzo d'antiquariato (e mi rende difficile l'opera di sperimentazione), ma non appena tornerò su per i corsi proverò a darmi meglio da fare con Python, mi sembra un linguaggio interessante. E comunque imparare un linguaggio in più non può farmi che bene ciao
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#17 | |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Tu prima di ottenere qualcosa di realmente funzionante in C hai perso un mare di tempo. Comunque i contest non cambiano la sostanza di quanto ho detto.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
|
#18 | |
|
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
Quote:
Non critico Python ma, dal punto di vista delle prestazioni, il C rimane imbattibile(a parte, ovviamente, l'assembly). |
|
|
|
|
|
|
#19 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Confrontato a Python sicuramente (d'altra parte non è la velocità d'esecuzione il motivo per cui è nato e per cui viene tanto usato), ma di fronte a C#, Java, ma soprattutto C++/CLR la tua affermazione non è corretta, visto che sempre più ci sono casi di applicazioni che girano meglio delle equivalenti C o C++.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:48.





















