The Dark engine was written in C++. This is how and where the Dark engine is implemented. The low-level engine was written in C++. Everything is implemented in C++.
There are two high-level wrappers for the Dark engine:
1. DarkGDK - a high-level C++ wrapper, for c++ programmers.
The C++ wrapper commands call the appropriate low-level, pre-compiled C++ functions from the DarkGDK library.
2. DarkBASIC - a high-level BASIC wrapper, for BASIC programmers.
As far as I know, the DarkBASIC has its own interpreter, created by TGC, and that the BASIC interpreter itself was written in C++. For BASIC, a command is read by the interpreter, and the appropriate pre-compiled C++ function (within the DLLs) is called by the interpreter.
In other words:
Wrapper Lang. Implemented in C++ Implemented in C++
-----------------------------------------------------------------------------
1. DarkGDK (C++ ) ------------------------> Static Linked Libraries
2. DarkBASIC (BASIC) -----> Interpreter -----> Dynamic Linked Libraries (DLLs)
So as you can see, C++ is the basis for the Dark engine, whichever programming interface wrapper you use. BASIC adds an extra layer of wrapping and the need for an interpreter. And even BASIC is implemented in C++.
Btw, the DarkBASIC DLLs can be used from C++ in DarkGDK projects. There was another thread (on anisotropic filtering) somewhere, where the author showed how he was doing it.
The only reason to add this level of indirection in a DarkGDK project would be to call a feature that was created for DarkBASIC, yet not publicly wrapped (accessible) for DarkGDK (and there are several).