본문 바로가기
자격증/정보처리기능사

[정보처리기능사/실기] 프로그래밍 언어의 특성과 유형 이론 정리

by me_in_sk 2023. 5. 13.
반응형

프로그램 언어별 특성

 

  프로그래밍 언어는 시대에 걸쳐 발전해온 언어 중 하나로, 그 중 대표적인 언어로는 FORTRAN, COBOL, PASCAL, C, C++, JAVA, JAVASCRIPT, PERL, PYTHON, C#, GOLANG, DART, CEYLON 등이 있다. 
  우선 FORTRAN은 1954년에 초기 버전이 개발된 언어로서, 시스템 의존적이고, 프로그램 작성을 위해서는 많은 컴퓨터 시스템 관련 지식을 요구한다는 단점을 갖고 있다. COBOL은 1960년에 미국 국방성에 의해 개발된 언어로, 단순한 입출력 구현 시에도 많은 형식적인 문장이 필요했으며, 비교적 크기가 크고 구문이 복잡하며 순차적 방식의 언어로, 웹 응용 프로그램과 쉽게 통합할 수 있다는 장점을 가졌다. 자료 구조의 선언 부분과 프로그램의 실행 부분을 분리하였으며, FORTRAN과 마찬가지로 대문자로만 작성이 된다는 특징이 있다. PASCAL은 1971년에 개발되어 1980년대의 말까지도 많이 쓰이던 언어이다. 잘 짜인 구조와 간결성으로 인해 프로그래밍 언어로서 성공하였으나, 분리 컴파일과 문자열의 적절한 처리 등을 제공하지 못한다는 단점이 있다. 사용자 정의 추상화 기능은 제공하지만, 정보의 은닉 기능이 부재하여 현대의 프로그래밍 기법을 적용하기에는 다소 부족한 모습을 갖고 있다. C는 1972년에 개발된 언어로,  UNIX의 운영체제 구현에 사용되는 언어이다. 범용 언어로 개발되었으나 문법의 간결성, 효율적인 실행, 효과적인 포인터 타입 제공이라는 특징으로 현재까지도 널리 쓰이는 시스템 프로그래밍 언어가 될 수 있었다. C++는 C언어를 발전시킨 언어로, class나 상속 등의 개념을 제공하는 대표적인 객체 지향 프로그래밍 언어이다. 대형 프로젝트 수행 시 모듈별 분리가 가능하여 개발과 유지 관리에 적합하다는 장점을 가졌다. JAVA는 C++에 비해 단순하고 분산 환경 및 보안성을 지원한다. JAVA 언어는 컴파일을 거쳐야 하며, 컴파일을 통해 생성된 class 파일을 별도의 가상 머신을 통해 실행할 수 있다. JAVASCRIPT는 1995년에 개발된 객체 지향 스크립트 언어로서, 웹 페이지의 동작을 구현할 수 있는 기능을 지녔다. 빠른 시간에 코드를 완성할 수 있고, 확장성이 좋으며, 배우기 쉽다는 장점이 있으나, 보안이나 성능이 다른 언어에 비해서는 부족하다는 단점을 갖고 있다. PERL은 텍스트 처리에 주안점을 두고 개발된 인터프리터 언어로 CGI 용도로 많이 사용된다. 변수를 명시적으로 선언할 필요가 없다는 장점이 있다. PYTHON은 배우기 쉽고 이식성이 좋은 언어로 다양한 함수들도 많이 제공되어 스타트업과 글로벌 기업에서도 많이 사용하는 언어이다. PERL 언어와 같이 인터프리터 언어이면서 객체 지향 언어임과 동시에 스크립트 언어이기도 하다. C#은 2000년에 .NET 환경에 맞춰 설계된 언어로, C와 C++이 발전한 형태로서, Visual Basic과 같이 사용자 인터페이스를 쉽게 만드는 컴포넌트의 기능을 제공하기도 한다. .NET 환경에서 실행되기 때문에, .NET 환경이 함께 설치되어야 하며, C#의 컴파일러가 있어야 한다. GOLANG은 2009년 Google에서 만든 언어로, 짧게 GO라고도 불린다. C언어와 직접적인 연관을 가지며, 내장 라이브러리가 많이 지원되는 언어이다. 대체로 C언어의 문법과 유사하며, 조건문, 반복문을 포함한 제어 구조를 가짐과 동시에 하드웨어 사양이 낮더라도 빠른 속도의 컴파일이 가능하다는 장점이 있다. DART는 JAVASCRIPT와 JAVA의 영향을 받아 개발된 언어로서, 객체 지향적인 언어이다. 백그라운드에서 작동한다는 점에서는 JAVASCRIPT와 분명한 차이점을 갖고 있으며, JAVASCRIPT와 유사하면서도 단순화된 모습을 갖는다. 이러한 DART는 별도의 라이브러리 설치 없이 HTML 페이지를 수정할 수 있다는 장점을 갖는다. CEYLON은 JAVA에 기반을 둔 언어로 모듈성을 주요 특징으로 가진 언어이다. 코드를 패키지와 모듈로 정리하여 가상 머신에서 컴파일을 수행하며, CEYLON Herd라는 저장소에서 모듈을 발행한다는 특징이 있다. 

 

 

프로그래밍 언어의 유형 분류

 

  프로그래밍 언어의 유형은 크게 개발 편의성에 따른 분류, 실행 방식에 따른 분류, 구현 기법에 따른 분류 등으로 나뉜다. 

우선 개발 편의성에 따른 분류는 저급 언어와 고급 언어로 나뉘며, 저급 언어는 기계가 이해하기 쉽도록 만들어진 언어이다. 추상화의 수준이 낮으며, 프로그램 작성이 어렵다는 단점이 있다. 기어, 어셈블리어가 저급 언어에 속한다. 반대로 고급 언어에는 개발자가 소스 코드를 작성할 때 쉽게 이해할 수 있도록 작성된 언어로, 사용자 친화적인 언어의 모습을 보인다. 이에는 C, C++, JAVA 등이 고급 언어에 속한다.

  다음으로 실행 방식에 따른 분류에는 명령형 언어, 함수형 언어, 논리형 언어, 객체 지향 언어 등이 있다. 명령형 언어는 컴퓨터에 저장된 명령어들이 순차적으로 실행되는 프로그래밍 방식으로 절차형 언어라고도 한다. 함수형 언어는 수학적 수식과 같은 함수들로 프로그램을 구성하여 호출하는 방식이며, 논리형 언어는 규칙에 대한 활성화 조건이 만족하면 연관된 규칙이 실행되는 구조로서, 추론과 관계 규칙에 의해 원하는 결과를 얻어내는 방식이다. 마지막으로 객체 지향 언어는 객체 간의 메시지 통신을 이용하여 프로그래밍하는 방식이다.

  마지막으로 구현 기법에 따른 분류는 컴파일 방식의 언어, 인터프리터 방식의 언어, 혼합형 방식의 언어 등이 있다. 컴파일 방식의 언어는 고급 언어를 기계어로 번역하는 방식의 언어를 의미하고, 컴파일 방식은 실행에 필요한 정보가 컴파일 시간에 계산되기 때문에 실행 속도가 빠르다는 이점을 갖는다. 인터프리터 방식의 언어는 고급 언어 명령문을 하나씩 번역하고 실행하는 방식의 언어를 의미하고, 프로그램 실행 시에 계산이 된다는 특징이 있다. 마지막으로 혼합형 방식의 언어는 고급 언어를 컴파일하여 중간 언어로 변환한 후 인터프리터에 의해 번역을 실행하는 방식의 언어를 의미한다.

반응형

댓글