Low-level Language의 기능들을 조금 더 추상화하여 제공해준다.
엔지니어는 어떻게 작업을 해야하는지보다는 무엇을 해야하는지에 더욱 집중할 수 있다.
High-level Language로 쓰여진 프로그램은 Assembly로 쓰여진 프로그램에 비해 절대적으로 성능이 떨어질 수 밖에 없는 태생적 한계가 있다
High-level Language로는 Python, Java, Javascript, Clojure 등
크게 두가지 분류로 나눌 수 있다.
예시
영어밖에 할 줄 모르는 친구가 있다.
친구에게 편지를 쓰기 위해 한국어와 영어를 모두 할 줄 아는 누군가에게 번역을 요청한다.
번역가는 두 가지 방식으로 번역 작업을 할 수 있다.
첫째로는 한국어로 쓴 편지를 외국인 친구한테 가져가서 한 문장, 한 문장 읽으며 동시에 한 문장, 한 문장 번역해서 읽어줄 수가 있다.
둘째로는 편지를 사전에 모두 영어로 번역을 하여 영어로 된 편지를 작성하고 이미 완전히 번역된 편지를 그 친구에게 전달해 줄 수 있다.
편지를 가져가서 한 문장, 한 문장 읽으면서 동시에 번역하는 상황과 유사하다.
사전에 번역해놓은 편지를 친구에게 전달해주는 것과 유사하다.