본 내용은 KH정보교육원 에서 제공한 교재 내용을 개인적인 공부를 위한 목적으로 작성되었습니다.
만약 아래의 내용을 무료로 배부하거나 상업적으로 이용할 경우 법적 처벌을 받을 수 있음을 경고합니다.
프로그래밍 언어를 사용하는 개발자 측면에서 보는 관점에서 분류
특징 | 저급언어 (Low Level Language) | 고급언어 (High Level Language) |
---|---|---|
주체 | 기계 중심의 언어 | 사용자 중심의 언어, 컴파일 언어 |
호환성 | 타 기계와 호환성 낮음 | 호환성 높음 |
에러 수정 | 어려움 | 비교적 쉬움 |
프로그래밍 용이성 | 어려움 | 비교적 쉬움 |
수행 속도 | 기계 자체 언어이므로 번역의 필요성 없어서 빠름 | 실행하기 위해 기계어로 번역해야 하므로 느림 |
대표 언어 | 기계어, 어셈블리어 | C, C++, Java, Visual C++, C# |
프로그램을 실행하는 주체에 따라 나누는 방법으로 컴퓨터가 직접 실행하느냐 또는 매개체를 이용하느냐 등에 따라 구분
완성된 소스 코드 자체로는 실행될 수 없고, 컴파일러(번역기)를 이용해 컴파일한 후에 만들어진 번역된 소스 코드가 실제 실행 프로그램
일반적으로 고수준 언어에 의해 작성된 소스 코드가 실행될 컴퓨터 운영체제에 대한 기계언어로 번역
컴퓨터에 상주해 있는 인터프리터(실행기)가 소스 코드를 한 문장씩 읽어서 바로 실행
이러한 인터프리터를 이용한 개발 언어를 인터프리터 언어라 함
초창기에는 배치 언어(Batch Language) 또는 작업 제어 언어(Job Control Language) 라고 불리었음
응용 프로그램과 분리하여 작성하며 프로그램 사용자가 응용 프로그램의 동작을 요구에 맞게 작동될 수 있도록 해 주기 위한 목적으로 제공되는 스크립트 파일 작성용 언어
언어 | 장점 | 단점 | 종류 |
---|---|---|---|
컴파일러 언어 | 한 번 컴파일하면 컴파일 된 프로그램을 그대로 사용 가능하며 처리 시간이 매우 빠름 | 한 줄의 소스 코드가 많은 기계어로 번역되기 때문에 상대적으로 큰 기억용량(Stack)이 필요함 | C, C++, Java, C# |
인터프리터 언어 | 한 줄씩 해석하여 실행하기 때문에 기억장소가 많이 필요하지 않아 자원 효율적임. 플랫폼에 비의존적이고 자료형과 범위가 동적으로 설정될 수 있어 유연함 | 인터프리터에 의해 해석되면서 실행되기 때문에 처리에 많은 시간이 소요되며 컴파일러 언어에 비해 비효율적임 | Basic, Lisp, 포스트 스크립트 |
스크립트 언어 | 특정 실행 환경 상에서 실행되기 때문에 플랫폼 독립적임. 고수준 언어로 프로그램 작성이 직관적으로 이루어 질 수 있음 | 단독으로 실행될 수 없기 때문에 별도의 런타임 환경을 구축해야 하고 경우에 따라 많은 리소스가 필요할 수 있음 | JavaScript, ActionScript, AutoHotkey, Perl, Python, Ruby, VBS |