add c++ and java. generalise c family compilers