Essentials of programming language