There's a big online industry on explaining scientific concepts. Most of them fail. The award for the most misunderstood and poorly explained concept is ... *drum roll* ENTROPY!!!. But thanks to a bunch of rowdy guys and girls we have physics for idiots dot com. Let me link you to their thermodynamics and entropy article and be amazed: IDIOTS FOR THERMODYNAMICS A very weak analogy would the configurations of Rubik's cube when you're solving it. From one configuration to the final desired configuration you have a certain amount of configurations you have to go through. With each and every new state you know more about the past and future configurations.
The programs that are written in languages like C++ or C are just text. Computers don't understand that text as it is. The program (the text) has to be compiled (translated into another language) into machine language which is the actual language that the CPU understands. Why ? you ask. Well it's because development in pure machine language is slow and prone to errors. And machine language doesn't look like our spoken language which makes it hard to learn and understand.And because it takes a long time to learn machine language. And because people after a long time programming in machine language have observed some patterns emerging and they gave those patterns names like : for loops, do while loops, while loops, if decisional blocks, functions etc. Like spoken languages, computer programming languages have an alphabet(lexicum) of words that mean(do) something. So the first thing that a compiler does is to analyze the words of a program, that's lexical analysis. A...