what is the difference between middle level language and high level language?
Mid-level languages are almost always defined in terms of low-level languages (e.g. the Java compiler is bootstrapped from C). High-level languages are really interesting if you think about it. They are essentially mid-level languages which just take the concepts of abstraction and high-level constructs to the extreme.