Understanding Computer Languages and Generations