This topic leads me to pose a question that for a professional programmer is surely very silly, but it is in my mind for a long time.
The first basic language of the computer is the assembly, isn't it? I don't know at all how assembly comunicates with the "core" of the PC, as also the assembly is a "language" that the computer translates in its own language, that I vaguely know is a sort of sequence of 1 and 0, even if I suppose that they are not really written as "1", and "0", as also the characters "1" and "0" are a construction intended to be understood by a human.
However, any other language, as R and QB64 for example, are in a upper level compared to assembly, because any command is a program itself, as said for PRINT. So, I undestand that there is a "program" behind INPUT, in order to have the command INPUT working as INPUT. So, I suppose that INPUT command activates a range of passages that finally arrives to the assembly code of INPUT, that the computer is able to undestand.
Ok, and here there is my question. Before my use of QB64, I thought that C++ was the same: a language in the same "level" of QB64. I have also a book dedicated to learn to program in C++. So, in my ignorance, I thought that the installed program of C++, or the istalled program of QB64, have somewhere in their "system" directories all the necessary to translate a code into assembly. But, when I press F5 in a QB64 code, if I'm not wrong, the code is translated into C++, not directly into assembly. So, what transform the QB64code--> C++code--> into assembly? Why the passage between QB64 and C++ and not directly in a more basic level of communication whith the computer? It was the same with the old Qbasic? There are other passages between C++ and assembly?