The Programming Layer is the application programmer's view of a computer. For example, this would be the view of the programmer who builds a spreadsheet or word processor.
Every high-level programming language provides a slightly different virtual machine (i.e., different instruction sets, data types, etc.)
Here are some examples:
LISP, FORTRAN, COBOL, BASIC, C, C++, C#, Java
A compiler translates a program written using the instructions of one layer (say the programming layer) into an equivalent program written using the instructions of a lower layer (say the hardware layer).
An interpreter is simply another word for the fetch-execute cycle.
An IDE integrates programming tools such as editors, compilers, and debuggers. We can think of an IDE as the user interface to the programming layer.