Salve ospite, se leggi questo messaggio vuol dire che non sei registrato, cosa aspetti ? Premi qui per registrarti La registrazione è completamente gratuita e ti permetterà di usufruire di tutte le funzionalità del nostro forum. Buona navigazione.


Vendo, Compro, Scambio NosTale! Riapre il Black Market, concludi i tuoi scambi NosTale gratuitamente! Più info  -   Accedi alla sezione
Download file Server : File Retro Server NosTale
Visita la nuova sezione di BorderGame dedicata a Blade & Soul! Sezione Blade and Soul

 
Valutazione discussione:
  • 19 voti - 2.16 media
  • 1
  • 2
  • 3
  • 4
  • 5
Differenza tra linguaggi compilati, interpretati e pseudocompilati
16-11-2014 05:22 PM
Messaggio: #1
Differenza tra linguaggi compilati, interpretati e pseudocompilati
scl
*
Utente Saggio

Inizio a capire

Messaggi : 249

Registrato dal : Nov 2012

Reputazione : 166

Stato : Offline


Premi :



Prima di capire come 'funzionano' questi linguaggi devo fare una breve parentesi:
  • Compilazione
    1. Traduzione ed esecuzione sono svolte in tempi diversi
    2. Al termine della compilazione viene creata una versione tradotta del programma in un file eseguibile
    3. La versione tradotta è specifica della macchina
    4. La versione eseguibile può essere eseguita da qualsiasi altro computer
  • Interpretazione
    1. Traduzione ed esecuzione sono svolte allo stessp tempo (a dir la verità una subito dopo l'altra)
    2. Al termine dell'interpretazione non vi è alcuna versione tradotta del programma
    3. Per eseguire il programma devi ritradurlo e rieseguirlo da capo





  • Analizziamo un pò più a dettagli i linguaggi compilati.
    La trasformazione da linguaggio di programmazione x al linguaggio macchina (formato da soli 0 e 1, linguaggio binario) avviene grazie al compilatore che tramite diversi passi:
    1. processing, vengono trascurati i commenti e vengono inclusi file e librerie nel sorgente
    2. scanning, riconosce la sintassi del linguaggio di programmazione (comandi, dati, numeri, identificatori etc..)
    3. parsing, controlla che la sintassi del linguaggio sia corretta
    4. analisi semantica, controlla il "significato" di ciò che è scritto nel codice sorgente, controllando per esempio la coerenza tra tipi di dati
    5. generazione del codice, viene effettuata la traduzione del linguaggio di programmazione in linguaggio ASM generando il programma che sarà eseguito dalla macchina
    6. creazione eseguibile, viene salvata una copia del programma in un file eseguibile, mediante il linker (.exe per esempio)


    Durante queste fassi il compilatore cerca gli errori e se questi sono presenti avvisa il programmatore bloccando tutta la compilazione.

    Analizziamo ora invece i linguaggi interpretati.
    La trasfromazione dal codice sorgente al codice eseguibile avviene grazie all'interprete avviene istruzione per istruzione; a differenza del compilatore l'interprete prende un'istruzione alla volta e l'analizza (e nel caso non ci fossero errori) la trasforma in codice macchina e la manda subito in esecuzione.
    I linguaggi interpretati sono maggiormente portatili, permettono al programmatore di capire in che istruzione è presente l'errore, ma hanno come difetto la lentezza siccome in genere perchè ogni volta che si esegue il programma si deve far tradurre e eseguire tutto da capo.

    Concludiamo la guida con i linguaggi pseudocompilati.
    In breve, in questi linguaggi il codice sorgente viene compilato in un codice intermedio simile all'ASM e dopo viene eseguito da un interprete.
    In questo modo in termini di velocità esecuzione questi linguaggi possiamo inserirli a metà tra i compilati e gli interpretati, con il bello di avere una grandissima portabilità.
    Un esempio può essere il Java dove il sorgente traduce il programma in linguaggio Java (.java) in un file bytecode (.class) e poi la Java Virtual Machine lo interpreta.
    Un altro esempio è il caso dei linguaggio .NET (dot NET) della piattaforma .NET framework di Microsoft (esempi intuitivi VB.NET, C#, ASP.NET, F#).
    Questi a stesso modo del Java, vengono tradotti in un linguaggio intermedio chiamato MSIL (Microsoft Intermediate Language) eseguito poi da appositi compilatori che ottimizzano il codice a seconda dell'hardware del calcolatore. Lo convertono poi in linguaggio macchina e lo eseguono, creando anche un eseguibile.


    Pamperone, per Bordergame[censured]
    per assistenza scrivimi su skype (contatto tramite pm) oppure taggami sul forum
    (Questo messaggio è stato modificato l'ultima volta il: 17-11-2014 08:14 PM da Gafra96.)
    Torna al primo messaggio
    Email Cerca Rispondi

    PubblicitàLa tua pubblicità qui, clicca per informazioni e per le offerte!

    Stanno visualizzando la discussione : 1 Ospite(i)

  • Versione stampabile
  • Invia ad un amico
  • Sottoscrivi questa discussione