프로그래밍 언어 뜻 - peulogeulaeming eon-eo tteus

프로그램은 인스트럭션(Instruction)이라는 명령어로 구성됩니다. 컴퓨터는 기계어로 작성된 인스트럭션을 논리적 순서에 따라 수행하는데, 논리적 순서란 '문제를 푸는 방법'을 뜻합니다. 컴퓨터는 0이나 1로 된 2진수 형태의 기계어만 처리할 수 있으며 기계어는 컴퓨터 내부의 표현법과 일치하여 컴퓨터는 바로 이해할 수 있지만 인간은 이해하기 쉽지 않습니다. 따라서 인간은 기계어를 대신하여 이해하기 쉬운 프로그래밍 언어(Programming Language)를 개발해 사용하는 것입니다.

 

저급 언어와 고급 언어

프로그래밍 언어는 기계어와 유사한 '저급 언어', 인간이 사용하는 자연 언어와 유사한 '고급 언어'로 나눠집니다. 저급 언어와 고급 언어로 분류되는 프로그래밍 언어의 특징과 발전 과정에 대해 알아볼 필요가 있습니다.

 

저급 언어

저급 언어란 컴퓨터 내부 표현에 가까운 언어로, 기계어와 어셈블리어로 나눌 수 있습니다. 기계어는 0과 1로 작성되는 반면, 어셈블리어는 기계어를 인간이 이해하기 쉽도록 기호로 표현하여 작성합니다.

기계어(Machine Language)는 0과 1로 된 2진수 형태의 언어입니다. 기계어는 인간이 이해하기 어려울 뿐만 아니라 하드웨어 주소 체계에 따라 달라져 컴퓨터끼리 호환되지 않는 문제가 있습니다. 오늘날에는 사용 추세가 감소되고 있는 언어입니다.

어셈블리어(Assembly Language)는 기계어 명령을 알기 쉬운 기호로 표시하여, 기계어는 물론 사용하고자 하는 컴퓨터 내부 구성과도 관계가 많습니다. LDA A라는 어셈블리 코드는 메모리 A번지에 있는 내용을 누산 레지스터(Accumulator)에 저장하라는 의미로, 기계어 010100000000100에 해당합니다.
어셈블리어는 기계어보다는 프로그램 작성이 간편하지만, 어셈블리어 자체가 기계어인 0과 1의 집합을 문자나 기호로 바꾼 것에 불과하기 때문에 하드웨어 구조에 익숙한 사람이 아니면 효과적으로 사용하기 힘들지만 컴퓨터의 주기억장치, 레지스터, 마이크로프로세서, 입출력 포트 같은 하드웨어 장치를 직접 제어할 때는 아주 유용합니다. 현재에도 여러 분야에서 어셈블리어가 활용되고 있습니다.

 

고급 언어

사용자의 요구 수준이 높아지고 컴퓨터 기술이 발달하면서 다양한 고급 언어가 개발되고 있습니다. 고급 언어는 하드웨어의 기술적 요소를 구체적으로 몰라도 작성하기 쉽고, 운영 및 유지하기도 쉽습니다.

고급 언어의 특징은 아래와 같습니다.
● 일상 언어에서 사용하는 표현을 그대로 가져다 쓸 수 있습니다. 예를 들어 +는 덧셈, -는 뺄셈으로 사용하는 등 일반적으로 사용하는 단어나 표현을 그대로 씁니다.
● 기억장치에 데이터를 읽거나 쓸 때는 기억 장소의 구체적인 주소를 알아야 하는데, 고급 언어는 번지 대신 변수 이름으로 기억 장소에 접근하므로 사용자가 기억 장소의 주소를 일일이 기억할 필요가 없습니다.
● 명령어 하나로 다수의 동작을 지시합니다. X = Y + Z x W 명령어는 Z와 W를 먼저 곱하고 그 결과를 Y와 더해 X에 대입하라는 뜻입니다. 이렇게 하나의 명령어로 다수의 연산을 실행합니다.

아래의 이미지는 고급 언어로 작성한 프로그램을 실행하는 과정입니다. 프로그래머는 먼저 고급 언어와 같은 프로그래밍 언어를 이용해 원시코드를 작성합니다. 그다음 컴파일러(Compiler)가 원시 코드를 목적 코드로 번역합니다. 목적 코드는 기계어로 된 프로그램으로 컴퓨터가 바로 실행할 수 있는 상태의 프로그램 코드입니다. 다음 목적 코드는 메모리에 적재되어 실행 후 결과물을 산출합니다.

프로그램 작성과 실행 과정 요약

종류에 따라 다르지만 고급 언어는 다음과 같은 형식적인 규칙이 존재합니다. 이것을 프로그래밍 언어의 문법 구조(Syntax)라 합니다.
● 어떤 구조와 순서가 있습니다.
● 특별한 기호를 사용합니다.
● 언어에 따라서는 마침표(.)나 세미콜론(;) 등을 사용합니다.

대표적인 고급 언어로는 C언어를 비롯하여 C++, JAVA, PASCAL, COBOL, FORTRAN, SMALLTALK 등이 있습니다.

 

프로그래밍 언어의 발전

국가마다 사용하는 언어가 다르듯이 프로그래밍 언어도 수백 종 이상이 개발되어 사용되고 있습니다. 초기 프로그래밍 언어가 어떻게 개발되고, 현재에 어떻게 발전되어 왔는지 알아봅시다.

 

1950년대 언어

1950년대 초 기계어로 작성하던 프로그램을 처음으로 어셈블리어로 바꾸어 사용한 역사가 있습니다. 어셈블리어는 기계어인 0과 1을 인간이 이해하기 쉬운 코드로 바꾸어 기계어보다 작성하기는 쉬웠지만, 하드웨어 위주의 언어라는 제약이 있었습니다. 당시 과학 연산의 복잡한 계산을 수행하기 위해 포트란-FORTRAN(FORmula TRANslator)이 개발되었고 이것이 프로그래밍 언어 발전의 원동력이 되었습니다.

포트란(FORTRAN), 출처 : 위키페디아

1960년대 언어

1960년대에는 과학기술용으로 개발된 FORTRAN을 더욱 발전시킨 고급 언어와 사무처리용 고급 언어가 등장했습니다. 대표적인 사무처리용 언어가 COBOL(COmmon Business Oriented Language)입니다. COBOL은 미국정부 산하기관이 컴퓨터 제품 간의 호환성 문제를 해결하기 위해 개발한 것으로, 수차례의 수정·보완을 거쳐 사무처리용 언어로 자리 잡게 되었습니다. FORTRAN과 같은 수리 계산용 언어는 수학적으로 표기하는 데 반해, COBOL은 영어에 가까운 구문을 사용하여 쉽게 이해할 수 있는 장점이 있습니다. 1960년대 중반에는 FORTRAN과 COBOL의 장점을 살린 하이브리드 형태의 PL/I(Programming Language One) 언어가 개발되어 이목을 집중시켰지만 오늘날에는 COBOL에 비해 사용 빈도가 적은 편입니다.

코볼(COBOL), 출처 : 위키페디아

1970년대 언어

1970년대에는 하드웨어 가격이 하락하고 소프트웨어가 복잡해짐에 따라 하드웨어에서 소프트웨어 비중이 옮겨가기 시작했습니다. 소프트웨어의 복잡성 관리가 중요한 이슈로 대두되었으며, 보다 강력하고 새로운 개념의 언어가 요구되면서 C언어와 PASCAL이 개발되었습니다.

C언어는 본래 시스템 소프트웨어 개발을 위한 언어였으나, 다양한 종류의 컴퓨터에 이식이 가능하여 현재에는 여러 분야에서 사용되고 있습니다. 따라서 수많은 워드프로세서, 스프레드시트, 그래픽 프로그램, 게임 등이 C언어로 제작되고 있습니다. 유닉스 운영 체제가 등장하면서 C언어의 인기가 높아졌습니다. 왜냐하면 이는 비트 연산과 같은 저급 언어 기능도 갖추고 있으면서 동시에 빠르고 효율적이기 때문입니다. 하지만 C언어는 배우기가 어렵고, 보고서 작성이나 데이터 파일 조작 등 많은 업무에는 부적합하다는 단점이 있습니다.

PASCAL은 프랑스 수학자인 파스칼(Pascal)의 이름에서 따온 언어로, 1969년 스위스 취리히 공과대학의 니클라우스 비르트(Niklaus Wirth) 교수가 개발했습니다. PASCAL은 당시 유행했던 구조적 프로그래밍에 적합한 언어로 각광받았으며, 배우기 쉽고 이공계 및 과학계 종사자가 주로 사용하는 그래픽 처리 기능도 좋았지만 대화식 입출력이나 사무처리 분야의 응용에는 부족하다는 단점이 있었습니다. C언어에 비해 상대적으로 저변 확대에 실패하면서 1990년대 중반 이후로는 사용 빈도가 떨어졌습니다.

파스칼(PASCAL), 출처 : 위키페디아

1980년대 언어

본격적으로 컴퓨터 하드웨어 가격이 인하됨에 따라 개인용 컴퓨터와 중앙 컴퓨터가 연결된, 단말 시스템을 이용한 분산 처리 개념이 확산되었습니다. 따라서 학생들과 컴퓨터 초보자에게 적합한 교육용 언어가 요구되었고, BASIC 언어가 그 대안으로 발전하게 되었습니다. BASIC 언어는 배우기 쉬울 뿐만 아니라 중앙 컴퓨터와 연결된 단말 시스템에서 처리하는 시분할 시스템(Time Sharing System) 운영에 적합한 기능이 있어 인기가 많았으나, 다소 비구조적인 프로그램으로 인해 소프트웨어 규모가 커질수록 관리가 불편하고 운영 및 유지가 어렵다는 단점이 있었습니다. 이러한 단점을 개선한 Quick Basic, Visual Basic 등이 등장하였습니다.

베이직(BASIC), 출처 : 위키페디아

1990년대 언어

1990년대에는 객체 지향 언어가 본격적으로 등장했습니다. GUI(Graphical User Interface) 환경의 프로그래밍을 위한 여러 클래스의 라이브러리가 등장하면서, 객체 지향 언어의 장점이 크게 부각되었습니다. 이런 추세에 맞춰 C++, JAVA, Visual Basic 등의 객체 지향 언어가 새로 등장했으며, 기존 버전을 업그레이드시켜 객체 개념과 GUI 개념을 강화하는 방향으로 발전했습니다.

Visual Basic은 BASIC과 Quick Basic을 개선하여 객체 지향 개념을 보강한 언어로, GUI 기능을 비롯해 사용자가 쉽게 사용할 수 있는 언어라는 점이 있습니다.

자바(JAVA), 출처 : Undo

2000년대 이후 언어

2000년대에 접어들면서 사용자는 더욱 편리하고 쉬운 방법으로 프로그래밍을 할 수 있게되었습니다.

파워빌더(PowerBuilder), 델파이(Delphi), 각종 쿼리(Query) 전용 언어 등 4세대라 불리는 언어가 등장했습니다. 4세대 언어는 특정 상황에 맞춤식으로 사용할 수 있고, 종래의 고급 언어보다 사용하기 간편했고, 사용자에게 강화된 텍스트 환경이나 시각 환경을 제공했습니다.

객체 지향 프로그래밍 기법이 발전하면서, 소프트웨어 모듈을 컴포넌트화 하여 필요할 때마다 사용할 수 있도록 하는 소프트웨어 컴포넌트 기술도 빠르게 발전했습니다. 이 기술은 소프트웨어를 전자 부품처럼 통일된 인터페이스로 제작함으로써 소프트웨어 공장(Software Factory) 설립을 가능하게 했습니다. 소프트웨어 컴포넌트는 차세대 소프트웨어 기술의 핵심 분야로 인식되면서 소프트웨어 생산성 향상을 위한 필수 기술로 대두되었습니다.

당시에는 객체 지향 기술과 웹의 결함을 통해 다양한 정보를 제공하는 기법도 발전했습니다. XML(eXtensible Markup Language)과 VRML(Virtual Reality Modeling Language) 등 각종 웹 프로그래밍 언어가 등장한 것입니다. XML은 HTML의 한계를 극복하고자 만들어진 것으로, 주로 다른 시스템, 특히 인터넷에 연결된 시스템끼리 데이터를 쉽게 주고받을 수 있게 합니다. VRML은 인터넷이나 로컬 시스템에서 3차원 개체나 세계를 표현하기 위한 파일 형식입니다. XML과 VRML은 기존 객체 지향 언어와 결합하여 인터넷상에서 텍스트, 이미지, 애니메이션, 사운드 등을 비롯한 가상현실(Virtual Reality)까지 구현할 수 있는 기술로 발전하고 있습니다.

Toplist

최신 우편물

태그