difference between high level and low level language