Классическая статья о языках сценариев - « Сценарии Джона К. Оустерхаута : программирование высокого уровня для 21-го века» , опубликованная в Computer 31 (3), 1998. Он провел различие между языками сценариев, с одной стороны, и языками системного программирования на другой.
Ousterhout охарактеризовал языки системного программирования как развивающиеся, чтобы заменить машинные языки для программирования. Они скрывают утомительные детали, такие как назначение регистров и последовательности вызова подпрограмм, предоставляют простые конструкции для написания циклов и других распространенных идиом потока управления и обеспечивают соблюдение правил набора текста. Они обычно реализуются (заранее) компилятором. Эти языки предназначены для написания программного обеспечения с нуля. Примерами являются C, C ++ и Java.
Напротив, языки сценариев, согласно Ousterhout, исходят из предпосылки, что уже существуют полезные программы, обычно написанные на языках системного программирования. Языки сценариев, такие как Perl, Python, Tcl, Visual Basic и оболочки Unix, предоставляют инструменты для объединения этих существующих программ в новые программы. Ousterhout охарактеризовал языки сценариев как «не типизированные» (включая то, что многие называют динамической типизацией), и как подчеркивающий быстрое развитие; они обычно осуществляются переводчиками.
Теперь нужно быть осторожным, чтобы не предположить, что концептуальная модель одного автора является авторитетной. Несмотря на то, что мы, компьютерные ученые, хотели бы притворяться, что мы математики, дающие точные определения всем терминам, на практике большинство компьютерных терминов социально построены с нечеткими и неоднородными значениями; в отношении большинства терминов существует приблизительный консенсус на очень высоком уровне, но детали часто зависят от того, кто пишет. Таким образом, возьмите его статью, мой ответ и все остальные ответы здесь с большой кучей соли.
Я бы лично оспаривал существование «нормального» языка программирования, как вы его сформулируете в своем вопросе. Однако я думаю, что концепция, которую вы пытаетесь передать, примерно соответствует языкам системного программирования Ousterhout.