Maybe the question sounds a bit strange, so I'll explain a the background a little bit.Currently I'm working on a project at y university, which will be a complete on-board software for an satellite. The system is programmed in C++ on top of a real-time operating system. However, some subsystems like the attitude control system and the fault detection and a space simulation are currently only implemented in Matlab/Simulink, to prototype the algorithms efficiently. After their verification, they will be translated into c++.The complete on-board software grew very complex, and only a handful people know the whole system. Furthermore, many of the students haven't program in C++ yet and the manual memory management of C++ makes it even more difficult to write mission critical software.Of course the main system has to be implemented in C++, but I asked myself if it's maybe possible to use an embedded language to implement the subsystem which are currently written in Matlab. This embedded language should feature:static/strong typing and compiler checks to minimize runtime errorssmall memory usage, and relative fast runtimeattitude control algorithms are mainly numerical computations, so a good numeric support would be nicemaybe some sort of functional programming feature, matlab/simulink encourage you to use it tooI googled a bit, but only found Lua. It looks nice, but I would not use it in mission critical software. Have you ever encountered a situation like this, or do you know any language, which could satisfies the conditions?EDIT: To clarify some things: embedded means it should be able to embed the language into the existing C++ environment. So no compiled languages like Ada or Haskell
Mission critical embedded language
programming languages;embedded systems;type systems
Use C++, do not use any embedded/layered anything.I am going to answer the question in the negative, and tell you to use C++, hire appropriate resources, and do not layer something else on top.  Most of your criteria already fit C++ anyways: strong typing, minimal runtime, etc.  (Typing not as strong as Haskell, but better than most scripting languages)You don't even need to use many classes and objects if you don't want to.  Write a more functional style, unless you need higher-order functions and currying.  There is no specific sin in using C++ as a better C, unless you do it by accident.  If you do it purposefully, then full steam ahead.Given the presumed mission-criticality, you likely do not want to have the extra layers of complexity and points of failure that an embedded language will bring you.That said: do write in as modern C++ as you are able, in particular using appropriate smart pointers (if you use heap memory) .  C++ has come a long way, and in particular most of the manual memory-management tasks are now better automated using shared_ptr, unique_ptr and the like.  If you have to write delete you are doing something wrong.If you are stuck on wanting embedded something, have a look at Boost Proto.  