L'articolo classico sui linguaggi di scripting è lo scripting di John K. Ousterhout : programmazione di alto livello per il 21 ° secolo , pubblicato su Computer 31 (3), 1998. Ha tracciato una distinzione tra linguaggi di scripting, da un lato, e linguaggi di programmazione del sistema su l'altro.
Ousterhout ha caratterizzato i linguaggi di programmazione del sistema come evoluti per sostituire i linguaggi della macchina per la programmazione. Nascondono dettagli noiosi come l'assegnazione dei registri e le sequenze di chiamate di subroutine, forniscono semplici costrutti per scrivere loop e altri idiomi comuni del flusso di controllo e applicare una disciplina di battitura. Di solito sono implementati da un compilatore (in anticipo). Queste lingue sono pensate per scrivere software da zero. Esempi sono C, C ++ e Java.
Al contrario, i linguaggi di scripting, secondo Ousterhout, partono dal presupposto che ci sono già programmi utili là fuori, di solito scritti in linguaggi di programmazione del sistema. I linguaggi di scripting, come Perl, Python, Tcl, Visual Basic e le shell Unix, forniscono strumenti per combinare questi programmi esistenti in nuovi programmi. Ousterhout ha definito i linguaggi di scripting come "senza tipo" (incluso ciò che molti chiamano tipizzazione dinamica) e enfatizzando il rapido sviluppo; di solito sono implementati da interpreti.
Ora, bisogna stare attenti a non presumere che il modello concettuale di un singolo autore sia autorevole. Anche se a noi informatici piace far finta di essere matematici che danno definizioni precise a tutti i termini, in pratica la maggior parte della terminologia informatica è socialmente costruita con significati sfocati ed eterogenei; c'è un consenso approssimativo a un livello molto alto sulla maggior parte dei termini, ma i dettagli spesso dipendono da chi sta scrivendo. Quindi, prendi il suo articolo, la mia risposta e tutte le altre risposte qui con un grande mucchio di sale.
Personalmente contesterei l'esistenza di un linguaggio di programmazione "normale", mentre lo pronunci nella tua domanda. Tuttavia, penso che il concetto che stai cercando di comunicare corrisponda approssimativamente ai linguaggi di programmazione del sistema di Ousterhout.