Funzionali / non funzionali e interpretati / compilati sono due diverse categorizzazioni, tuttavia sembra che ci siano molte sovrapposizioni nei linguaggi di programmazione che rientrano in quelle categorie. È una coincidenza?
Funzionali / non funzionali e interpretati / compilati sono due diverse categorizzazioni, tuttavia sembra che ci siano molte sovrapposizioni nei linguaggi di programmazione che rientrano in quelle categorie. È una coincidenza?
Non esiste una "lingua interpretata". Una lingua è un insieme di regole matematiche astratte. Una lingua non è interpretata o compilata, è solo è . Interpretazione e compilazione sono tratti di, beh, l'interprete o il compilatore (duh!), Non la lingua.
Una lingua è un'entità astratta, un interprete o un compilatore è un'implementazione concreta di quell'astrazione. I due vivono su livelli completamente diversi di astrazione. Il termine "linguaggio interpretato" non è solo sbagliato, non ha nemmeno senso. Se l'inglese fosse una lingua tipizzata, "linguaggio interpretato" sarebbe un errore di tipo!
Non puoi chiedere se una lingua è una lingua interpretata, la risposta non è "sì" o "no", perché la domanda stessa non è sensata. È come chiedere se l'arancione sia un numero primo.
Ogni lingua può essere implementata con un interprete e ogni lingua può essere implementata con un compilatore. È possibile derivare automaticamente un compilatore da un interprete e un interprete da un compilatore.
La stragrande maggioranza delle lingue ha implementazioni sia compilate che interpretate. La stragrande maggioranza delle moderne implementazioni linguistiche ad alte prestazioni sono implementazioni in modalità mista che combinano interpretazione e compilazione.
Ora, diamo un'occhiata ad alcuni linguaggi funzionali popolari e ad alcune delle loro implementazioni popolari:
Leggi altre domande sui tag programming-languages functional-programming