ti suggerisco di usare wikipedia per le caratteristiche di ciascun linguaggio di programmazione
tutti i linguaggi da te citati sono di programmazione, eccetto HTML che è un linguaggio di formattazione (per le pagine web)
linguaggio compilato vuol dire, molto sinteticamente (e anche grossolanamente) che
1. il programmatore scrive il codice di programmazione (in linguaggio ad alto livello)
2. un programma speciale, chiamato compilatore, traduce in codice binario le istruzioni eseguibili su una certa architettura (formata dall'hardware sottostante e dal sistema operativo); il processo di traduzione è effettuato una volta per tutte
3. il programma è eseguibile direttamente a partire dal codice binario generato dal compilatore. I classici linguaggi compilati sono C, C++, il vetusto Pascal
linguaggio interpretato vuol dire, molto sinteticamente (e anche grossolanamente) che
1. il programmatore scrive il codice di programmazione (in linguaggio ad alto livello)
2. un programma speciale, chiamato interprete, traduce in linguaggio macchina una istruzione alla volta il codice scritto dal programmatore e lo esegue subito dopo
3. il processo di cui al punto 2. viene ripetuto tutte le volte che si vuole eseguire il programma interpretato. Una conseguenza è che un linguaggio interpretato ha prestazioni molto inferiori rispetto ad uno compilato. Il classico linguaggio interpretato è il BASIC (ma anche Python)
Non è comunque l'unica distinzione da fare perché molti linguaggi moderni sono sia compilati che interpretati, per esempio Java e C#, dove
1. il programmatore scrive il codice di programmazione (in linguaggio ad alto livello)
2. un programma compilatore, traduce il programma in codice binario eseguibile all'interno di una macchina virtuale (VM); il processo di traduzione per la VM è effettuato una volta per tutte
3. all'esecuzione, la VM esegue il "suo" codice binario una istruzione alla volta. La velocità di esecuzione è una via di mezzo tra un codice compilato nativamente ed uno che è solo interpretato. Esistono tecniche che permettono di accelerare l'esecuzione (compilatori just-in-time).