A given implementation of a language will be either a "pure" compiler (whose output is executed by a processor as code), a "pure" interpreter (each statement is examined for the first time, in raw-source form, as it is executed, and nothing about the interpretation is cached), or a hybrid between the two. It's pretty easy to distinguish the "pure" cases from the hybrids, but some hybrids are 'closer' to being compiled than others; the lines between a 'compiled' hybrid versus an 'interpreted' one can be pretty fuzzy.
I don't think any language is in substantial use, other than assembly language (for which the term "assembler" is usually used in preference to "compiler"), which could not be implemented at least somewhat practically in an hybrid interpreter (performance of a "pure" interpreter is apt to be horrible with any but the most trivial looping constructs). There are some languages, however, which allow for dynamic code generation in ways that would not be amenable to compilation.
Incidentally, when I say "raw source" form, I do not always mean text format. My first programmable calculator had 99 program steps, each of which could be configured with a keystroke or one of a few special sequencing instructions. The program would never exist in a human-readable text form per se, but rather as a sequence of key numbers. Nonetheless, I would describe that as a purely-interpreted "language" since each program step was evaluated entirely independently.