I once heard the following definition of what a scripting language as at some conference. Namely, if its main purpose is to orchestrate components that exist in their own rights outside of the language. Consider a theatre script - it orchestrates actors who all exist independently of the script. Bash scripts and batch files (the latter article even has a section entitled "Other Windows scripting languages") are prototypical representatives of a scripting language according to the given definition, because they are completely useless if you couldn't invoke external tools or commands like
The most important part of this definition is the "to orchestrate components that exist in their own rights outside of the language" bit. At the end of the day, all computer languages (no coined term AFAIK) allow you to orchestrate components, thereby creating more new and complex components. However, in a programming language you mainly orchestrate library functions that only exist because the programming language exist.
Having said that, I would consider R a multi-paradigm programming language, where multi-paradigm includes at least the procedural paradigm and object-oriented paradigm.
As a last remark: imperative programming includes both aforementioned paradigms and is different from declarative programming. An imperative language focuses on the "how to do things" and consists of more or less directly executable steps, whereas a declarative language focuses on the "what to achieve". As an example, consider sorting a list. An imperative program what consists of a procedure/method that moves elements around and thereby sorts the list, and each single instruction can be executed in a sort of obvious way. A declarative program would consist of a description of the property "sorted", but how to "execute" the property is not at all obvious. If you are interested in the differences, have a look at Quicksort implemented in Java and Prolog (among others).
What Wikipedia says
Addressing a comment by @vonbrand and in support of my reply to that comment, here are a couple of quotes from Wikipedia:
The first line in the article on Perl describes Perl as a
Perl is a high-level, general-purpose, interpreted, dynamic
but in the second paragraph you find
Perl was originally developed by Larry Wall in 1987 as a
general-purpose Unix scripting language to make report processing
It is similar for Python, where the first paragraph is
Python is a general-purpose, interpreted high-level programming
language whose design philosophy emphasizes code readability. Its
syntax is said to be clear and expressive. Python has a large and
comprehensive standard library.
In the second paragraph you'll find
Like other dynamic languages, Python is often used as a scripting
language, but is also used in a wide range of non-scripting contexts.
which, I think, supports my comment given below quite nicely.
Furthermore, the article about scripting languages defines
A scripting language or script language is a programming language that
supports the writing of scripts, programs written for a software
environment that automate the execution of tasks which could
alternatively be executed one-by-one by a human operator.
and then goes on as follows, where the first sentence is, in my opinion, the most important one
Scripting is usually a property of the primary implementations of a
language, rather than a language per se, although many languages are
not very suited to this kind of implementation. For example, C++
interpreters do exist, but C++ is generally not considered a scripting
language for two reasons: these implementations are rarely used, and
the time required to write program in C++ would be far greater than
the time required to write an equivalent script in a language like