Stryderunknown: The following does not seem correct to me.
(This is why Programming Languages are at the OS level because otherwise you would be writing applications with applications, which in turn would mean you would need something software [namely a driver] to parse the data to the hardware)
Classifying Programming Languages, Drivers, and some (not all) Utilities as system software seems reasonable, which is what your diagram does.
I object to the remark which followed your diagram.
Device drivers are very special, and probably should be viewed as part of (or an extension to) the OS, although referring to them as systems software seems reasonable. For some systems, all the drivers are built into the OS, making them seem like an integral part of the OS. This is typical of a mainframe OS. It is impractical (impossible?) in the current IBM PC world, due to the large number of devices which can be part of a PC-based system.
Compilers, assemblers, and especially interpretive language processors are applications. They are very sophisticated language translators. Compilers and assemblers translate the language used by the programmer (the input data) into the machine language processed by the CPU (the output data). Interpretive language processors are a somewhat different animal than compilers, and I will say no more about them.
For some obvious reasons, a specific implementation of a compiler must be tailored to the OS and the hardware. It must produce machine language for a specific system and the format of the data (machine language program) must conform to the specifications of the OS which reads the program from some medium and prepares it for execution. This justifies calling them systems software, but does not preclude calling them applications.
What is wrong with an application creating or processing an application? When it is not being executed, a program (Id est: An application) can be viewed as data. Programs (applications) process data. That is not some mysterious concept, requiring a compiler to be viewed as something other than an application.
Your remark about something (a driver) to parse the data to the hardware does not make sense in the above context relating to language processors.
It seems proper to catagorize utilities like defraggers and disk analysis programs as systems software, but there are various programs often referred to as utilities which are more properly categorized as applications programs. Backup software and file managers like Ztree are typically called utilities and are basically applications programs. Utilities like defraggers and disk analysis programs are considered systems software because they deal with the hardware and OS data at a more fundamental level than those programs called ordinary applications.