User Tools

Site Tools


appunti3s:interpretati_e_compilati

Linguaggi compilati ed interpretati

Il file sorgente

Il programmatore indica le istruzioni da eseguire usando uno specifico linguaggio. Le scrive dentro dei file di testo, detto anche file sorgente (source), ma di solito non usa l'estensione .txt. Ad esempio:

  • se scrive in linguaggio C++ potrebbe usare per i file di testo l'estensione .cpp
  • se scrive in linguaggio Python potrebbe usare l'estensione .py
  • se scrive in linguaggio Javascript potrebbe usare l'estensione .js
  • ecc.

Le istruzioni, però, dovranno essere eseguite dalla CPU che comprende solo un linguaggio numerico (detto anche linguaggio macchina) dove ogni numero corrisponde ad una diversa istruzione da eseguire.

La traduzione

La traduzione da linguaggio di programmazione al linguaggio macchina può essere fatta in due modi diversi:

  • usando un compilatore: un programma che converte il file sorgente in un file eseguibile (un vero programma, .exe);
  • usando un interprete: un programma che legge le istruzioni nel file sorgente e le traduce una alla volta alla CPU.

Sia il compilatore che l'interprete sono a loro volta dei programmi fatti per questi compiti.

Nei linguaggi compilati, come il C++ o il Pascal, una volta tradotto, il file sorgente diventa inutile. Si esegue solo il file eseguibile (.exe). Nei linguaggi interpretati, come il Python o il Javascript, viene eseguito direttamente il file sorgente, ma per farlo, ogni volta è necessario usare l'interprete che deve ripeterne la traduzione. Questo rende un po' meno efficiente l'esecuzione, ma può offrire altri vantaggi.

Esempio in javascript

pagina.html
<html>
	<head>
		<script type="text/javascript">
		function miafunzione()
		{
			var name=prompt("Scrivi il tuo nome","Mario");
			if (name!=null && name!="")
			{
				document.write("<h1>Ciao " + name + "! </h1>");
			}
		}
		</script>
	</head>
 
	<body onload="miafunzione()">
 
	</body>
 
</html>
appunti3s/interpretati_e_compilati.txt · Last modified: 2020/06/08 22:19 by 127.0.0.1