검수요청.png검수요청.png

"코볼"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
잔글
 
(사용자 7명의 중간 판 22개는 보이지 않습니다)
1번째 줄: 1번째 줄:
'''코볼'''(COBOL)은 Common Business-Oriented Language의 약자로서, 1959년 개발된 사무용 [[프로그래밍 언어]]이다. 미국의 여성 해군 제독인 [[그레이스 호퍼]](Grace Hopper)가 만든 [[플로우매틱]]<!--플로우-매틱-->(Flow-Matic)기반으로 개발되었다. [[포트란]](Fortran)이 주로 공학용으로 사용된 반면, 코볼(COBOL)은 비즈니스, 회계, 금융, 정부 관리 시스템 등에 널리 사용되었다. 이후 [[C 언어|C]], [[자바|Java]] 등의 언어로 대체되어 거의 사용되지 않고 있다.
+
[[파일:코볼 로고.png|썸네일|200픽셀|'''코볼'''(COBOL)]]
 +
[[파일:코볼 글자.png|썸네일|300픽셀|'''코볼'''(COBOL)]]
 +
[[파일:그레이스 머레이 호퍼.jpg|썸네일|200픽셀|'''[[그레이스 머레이 호퍼]]'''(Grace Murray Hopper)]]
 +
 
 +
'''코볼'''(COBOL)은 common business oriented language의 약어로 컴퓨터의 [[프로그래밍]]을 쉽게 하기 위하여 고안된 프로그램 언어이다. [[포트란]](FORTRAN)과 [[알골]](ALGOL)이 과학기술 계산용 언어인 반면, [[코볼]]은 사무처리용으로 만들어진 언어로 미국 국방부을 중심으로 결성된 프로그램 언어로서 그룹 CODASYL(Conference on Data system Language)에 의해 1960년 처음으로 제정되었다.<ref name="두산백과">〈[https://terms.naver.com/entry.nhn?docId=1150140&cid=40942&categoryId=32838 COBOL], 《두산백과》</ref>
 +
[[파일:COBOL Mine.png|썸네일|350픽셀|'''[[코볼]]'''(COBOL)]]
  
 
== 개요 ==
 
== 개요 ==
코볼은 3세대 프로그래밍 언어로, 1959년 처음 발표되었다. 이후 여러 번 규격이 개정되었고 현재는 객체 지향도 지원한다.
+
코볼 (COBOL, COmmon Business-Oriented Language, 사무 지향 보통 언어)은 사무용으로 설계된, 영어와 같은 컴퓨터 [[프로그래밍 언어]]이다. [[절차적 프로그래밍 언어|절차적]], [[명령형 프로그래밍|명령형]] 언어이고, 2002년부터는 [[객체 지향]] 언어이다.코볼은 주로 비즈니스, 금융, 회사/정부 관리 시스템에 주로 사용된다. 1997년 [[가트너 그룹]]은 총 200,000,000,000줄의 코볼이 현존하며 모든 비즈니스 프로그램의 80%를 실행한 것으로 예측하였다.코볼은 지금도 [[메인프레임]] 컴퓨터의 레거시 응용 프로그램들에 사용되고 있으며 대용량 [[일괄 처리]] 및 [[트랜잭션 처리]]와 같은 작업에 쓰인다. 그러나 숙련된 코볼 프로그래머가 은퇴하고 인기가 시들어가면서 프로그램들은 새로운 플랫폼으로 이관돼 현대의 언어로 다시 작성되거나 소프트웨어 패키지로 대체되는 추세이다.<ref name="위키백과">〈[https://ko.wikipedia.org/wiki/%EC%BD%94%EB%B3%BC 코볼]〉, 《위키백과》</ref>
  
 
== 배경 ==
 
== 배경 ==
1950년대 말 컴퓨터 사용자와 제조업체는 프로그래밍의 비용이 치솟는 것을 걱정하기 시작했다. 새로운 프로그래밍 언어들이 빠르게 확산되는 가운데, 동일 조사에서 하나로 통일된 사무 지향 언어가 사용된다면 변환은 훨씬 저렴해지고 빨라질 것이라는 결과가 나왔다.
+
1950년대 사무처리 언어가 개발 업체마다 달라서 문제가 많이 있었다. 이러한 것을 인식한 미국 국방부에서 사무 처리 언어의 통일화를 위하여 사무처리에 대한 언어가 제시되고 CODASYL (Conference On Data Systems Languages, 데이터 시스템즈 언어 협의회)가 설립 되었고, 1959년 펜실베니아 대학교에서 [[그레이스 호퍼]]를 포함한 Jean Sammet, Saul Gorn 등 여러 학자들이 참석하여 초안 작성을 시작하였다.<ref>春の熊, 〈[https://pinglish.tistory.com/entry/COBOL%EC%96%B8%EC%96%B4 COBOL 언어]〉, 《티스토리》, 2012-10-20</ref>
1959년 컴퓨터 사용자들, 제조업체들의 대표들이 통일된 사무 언어에 대한 정식 회의를 조성하게 되었고, 영어와 같은 데이터 처리 언어 FLOW-MATIC을 개발한 [[ 그레이스 호퍼 ]]를 포함하여 Jean Sammet, Saul Gorn이 대표로 참석했다.  
 
이 단체는 미국 국방부에 통일된 사무 언어를 만들기 위해 지원해줄 것을 요청하였고, 대표단은 미국 국방부의 데이터 시스템 연구 스태프 총괄을 맡던 찰스 A.필립스에게 감명을 주었는데, 그는 이들이 미국 국방부의 문제들을 꼼꼼하게 이해하였다고 생각하였다.
 
 
 
이러한 이유로 필립스는 이 회의를 지원하는데 동의하였고, 대표단에게 의제의 초안을 작성하는 일을 부여하였다.
 
  
 
== 역사 ==
 
== 역사 ==
* 코볼-60 : 1959년 ~ 1960년 / 사무를 위한 공용 프로그래밍 언어 개발.
+
* 1959년 ~ 1960년 : 코볼-60, 사무를 위한 공용 프로그래밍 언어 개발.
* 코볼-61~ 65 : 1961년 ~ 1965년 / 사양이 명확해지고, 대용량 기억 장치의 파일들과 표를 다룰 수 있는 기능 소개.
+
* 코볼-61 ~ 65 : 1961년 ~ 1965년 / 사양이 명확해지고, 대용량 기억 장치의 파일들과 표를 다룰 수 있는 기능 소개.
 
* 코볼-68 : 1968년 ~ 1972년 / 버전 간 비호환성을 극복하기 위해 코볼을 표준화. 1972년 ISO에 채택.
 
* 코볼-68 : 1968년 ~ 1972년 / 버전 간 비호환성을 극복하기 위해 코볼을 표준화. 1972년 ISO에 채택.
* 코볼-74 : 1970년 ~ 1978년 / 1970년 가장 널리 쓰이는 프로그래밍 언어, 1974년 ANIS (ANS)는 코볼의 개정판을 출판 파일 조직, DELETE 문, 세그먼트 모듈과 같은 새로운 기능들이 포함, 1978년 ISO는 갱신된 표준 채택.
+
* 코볼-74 : 1972년 ~ 1978년 / [[ANIS]]가 코볼의 개정판을 출판. 1978년 ISO 갱신된 표준 채택.
 
* 코볼-85 : 1978년 ~ 1985년 / 범위 종단자, 내재된 프로그램, CONTINUE 문, EVALUTE 문, INITIALIZE 문, 인라인 PERFORM 루프, 참조 수정, 입출력 상태 코드 등과 같은 기능들이 ISO에 채택.
 
* 코볼-85 : 1978년 ~ 1985년 / 범위 종단자, 내재된 프로그램, CONTINUE 문, EVALUTE 문, INITIALIZE 문, 인라인 PERFORM 루프, 참조 수정, 입출력 상태 코드 등과 같은 기능들이 ISO에 채택.
* 코볼-2002 : 1990년대 초 ~ 2002년 / 완전한 리비전의 차기 코볼에 객채 지향을 추가하는 작업.
+
* 코볼-2002 : 1990년대 초 ~ 2002년 / 완전한 리비전의 차기 코볼에 객채 지향을 추가하는 작업 실시. 2002년 ISO에 마지막으로 승인
 
* 코볼-2014 : 2003년 ~ 2009년 / 이식 가능한 산술 결과물들은 IEEE 754 자료형으로 치환, 메소드 오버로딩, 동적 캐퍼시티 테이블, 주된 기능들이 선택 사항이 됨.
 
* 코볼-2014 : 2003년 ~ 2009년 / 이식 가능한 산술 결과물들은 IEEE 754 자료형으로 치환, 메소드 오버로딩, 동적 캐퍼시티 테이블, 주된 기능들이 선택 사항이 됨.
  
== 문법 ==  
+
== 구성 요소 ==
코볼은 영어와 같은 문법을 가지고 있으며, 프로그램 안의 거의 모든 것을 기술하는데 사용된다. 코볼은 300개의 예약어가 있으며, 일부 예약어는 대체가 가능하고 단수 복수를 표현하는 낱말도 마치 영어의 구문처럼 바꾸어 사용할 수 있다.  
+
* '''예약어'''(Reserved Word) : 예약어란 코볼 언어가 미리 의미를 정해 놓는 단어로써 사용자가 본래의 용도로 바꿔 사용할 수 없는 단어를 말한다. 따라서 프로그램을 작성할 때는 예약어는 반드시 본래의 의미로만 사용되어야 한다.
각 코볼은 4개의 어휘 항목을 이루는데 워드, 리터럴, 픽처 문자, 구분자가 포함되고, 워드에는 예약어와 사용자 정의 식별자를 포함한다.
+
 
 +
* '''기본어'''(Key Word) : 기본어란 코볼 프로그램에서 각종 정보를 기술할 경우나 어떤 명령문을 작성할 때 반드시 있어야 하는 단어로서 중심어라고도 부르고,
 +
어느 누가 사용해도 반드시 그 뜻을 전달하기 위해서 기술해야 하는 단어를 기본어라 한다.
  
''' IDENTIFICATION DIVISION '''
+
* '''리터럴'''(Literal) : 리터럴이란 명칭과는 달리 특정 값을 나타내기 위하여 사용된다. 리터럴은 기술되는 내용에 따라 수치 리터럴과 비수치 리터럴로 구분된다.
IDENTIFICATION DIVISION은 다음의 코드 개체를 식별하고 [[ 클래스 ]]나 [[ 인터페이스 ]]의 정의를 포함한다.
 
  
''' ENVIRONMENT DIVISION '''
+
* '''픽처'''(Picture) : 기본 항목에는 Picture문을 써서 항목의 크기나 성질을 반드시 구분해 주어야 한다. 그러나 집단 항목은 기본 항목을 구성하는 항목의 자릿수의 합계이므로 자리수를 쓰지 않는다.
ENVIRONMENT DIVISION에는 CONFIGURATION 섹션과 INPUT-OUTPUT 섹션이 포함되는데, CONFIGURATION 섹션은 통화 기호, 로케일, 문자 집합과 같은 변수 기능들을 지정하는데 사용되고, INPUT-OUTPUT 섹션은 파일 관련 정보를 포함한다.
 
  
''' DATA DIVISION '''  
+
== 구조 ==
DATA DIVISION은 여섯 개의 섹션으로 나뉘며 각기 다른 항목들을 선언한다.  
+
* '''IDENTIFICATION DIVISION''' : IDENTIFICATION DIVISION은 코드 개체를 식별하고 [[클래스]] 나 [[인터페이스]] 의 정의를 포함한다.
* FILE SECTION : 파일 레코드
 
* WORKING-STORAGE SECTION : 정적 변수
 
* LINKAGE SECTION : 매개 변수와 변환값
 
* REPORT SECTION, SCREEN SECTION : 텍스트 기반의 사용자 인터페이스
 
  
''' 자료형 '''
+
* '''ENVIRONMENT DIVISION''' : ENVIRONMENT DIVISION에는 CONFIGURATION 섹션과 INPUT-OUTPUT 섹션이 포함된다.
:{|class=wikitable width=1000
 
  
!align=center | 자료형
+
* '''DATA DIVISION''' : DATA DIVISION은 6개로 나뉘며 다른 항목을 선언한다.
!align=center | 참고
+
:* FILE SECTION : 파일 상세 서술
|-
+
:* WORKING-STORAGE SECTION : 정적 변수
|align=center | 영문자
+
:* LINKAGE SECTION : 매개 변수와 변환값
|align=center | 레터와 공백만 포함
+
:* REPORT SECTION, SCREEN SECTION : 텍스트 기반의 사용자 인터페이스
|-
 
|align=center | 영숫자
 
|align=center | 어떠한 문자도 포함
 
|-
 
|align=center | 불린
 
|align=center | 0과 1이라는 이진 숫자 형태로 저장된 데이터
 
|-
 
|align=center | 색인
 
|align=center | 테이블 요소를 참조하는데 사용
 
|-
 
|align=center | 내셔널
 
|align=center | 영숫자와 비슷하지만 확장 문자 집합을 이용
 
|-
 
|align=center | 숫자
 
|align=center | 숫자만 포함할 수 있음
 
|-
 
|align=center | 오브젝트
 
|align=center | 오브젝트나 NULL을 참조 할 수 있음
 
|-
 
|align=center | 포인터
 
|align=center |
 
|-
 
|}
 
  
== 장점과 단점 ==
+
== 장단점 ==
''' 장점 '''
+
===장점===
* ''' 다른 언어들에 미친 영향 ''' : 코볼의 자료 구조는 후에 만들어진 프로그래밍 언어들에 영향을 주었다. 데이터 베이스 관리 시스템의 개발보다 앞서나갔고, 수집된 데이터는 [[ 포트란 ]]의 배열보다 훨씬 더 앞섰다. 또한 잘 정의된 디비전 구조는 외부 참조 정의를 제한함으로써 플랫폼 변경을 단순화하는 일에 기여하였다.
+
* 학습과 활용에 용이하다. (문법이 영어식 표현 방식이라 배우기 쉽다)
 +
* 컴퓨터 기종 변경에 따른 프로그램의 수정이 거의 필요없이 사용가능. (호환성이 높다)
 +
* 순차 처리와 단순 처리가 모두 가능하여 다른 언어에 비해 파일 처리 기능이 좋다.
 +
===단점===
 +
* 다른 프로그래밍 언어보다 처리 속도가 느리고, 프로그램 작성이 번거롭다.
 +
* 전체적인 구성이 간결하지 못하다.
 +
* 설계 과정이 효과적이지 않다.
 +
* 코볼-85 버전은 이전의 버전들과 호환되지 못해 논란이 있다.
  
''' 단점 '''
+
{{각주}}
* ''' 호환성 문제 ''' : 코볼-85는 이전의 버전들과 호환되지 못해 논란이 있었다.
 
* ''' 문법의 문제 ''' : 코볼 문법은 장황하다는 이유로 비판을 받았다.
 
* ''' 설계 과정에 대한 걱정 ''' : 코볼을 사용하는 작업자들은 설계 과정이 효과적인지에 대한 의구심이 많았다.
 
  
 +
== 참고자료 ==
 +
* 〈[https://terms.naver.com/entry.nhn?docId=1150140&cid=40942&categoryId=32838 COBOL]〉, 《두산백과》
 +
* 〈[https://ko.wikipedia.org/wiki/%EC%BD%94%EB%B3%BC 코볼]〉, 《위키백과》
 +
* 春の熊 ,〈[https://pinglish.tistory.com/entry/COBOL%EC%96%B8%EC%96%B4 COBOL 언어]〉, 《티스토리》 , 2012-10-20
 +
* 〈[http://egloos.zum.com/lucirr/v/2505945 코볼]〉, 《egloos》 , 2004-05-12
 +
* 거지왕자 , 〈[http://m.blog.daum.net/gangseo/17970031 cobol 정리]〉, 《다음블로그》, 2013-02-11
  
 
== 같이 보기 ==
 
== 같이 보기 ==
83번째 줄: 66번째 줄:
 
* [[포트란]]
 
* [[포트란]]
  
{{프로그래밍 언어|토막글}}
+
{{프로그래밍 언어|검토 필요}}

2020년 7월 14일 (화) 18:19 기준 최신판

코볼(COBOL)
코볼(COBOL)
그레이스 머레이 호퍼(Grace Murray Hopper)

코볼(COBOL)은 common business oriented language의 약어로 컴퓨터의 프로그래밍을 쉽게 하기 위하여 고안된 프로그램 언어이다. 포트란(FORTRAN)과 알골(ALGOL)이 과학기술 계산용 언어인 반면, 코볼은 사무처리용으로 만들어진 언어로 미국 국방부을 중심으로 결성된 프로그램 언어로서 그룹 CODASYL(Conference on Data system Language)에 의해 1960년 처음으로 제정되었다.[1]

코볼(COBOL)

개요[편집]

코볼 (COBOL, COmmon Business-Oriented Language, 사무 지향 보통 언어)은 사무용으로 설계된, 영어와 같은 컴퓨터 프로그래밍 언어이다. 절차적, 명령형 언어이고, 2002년부터는 객체 지향 언어이다.코볼은 주로 비즈니스, 금융, 회사/정부 관리 시스템에 주로 사용된다. 1997년 가트너 그룹은 총 200,000,000,000줄의 코볼이 현존하며 모든 비즈니스 프로그램의 80%를 실행한 것으로 예측하였다.코볼은 지금도 메인프레임 컴퓨터의 레거시 응용 프로그램들에 사용되고 있으며 대용량 일괄 처리트랜잭션 처리와 같은 작업에 쓰인다. 그러나 숙련된 코볼 프로그래머가 은퇴하고 인기가 시들어가면서 프로그램들은 새로운 플랫폼으로 이관돼 현대의 언어로 다시 작성되거나 소프트웨어 패키지로 대체되는 추세이다.[2]

배경[편집]

1950년대 사무처리 언어가 개발 업체마다 달라서 문제가 많이 있었다. 이러한 것을 인식한 미국 국방부에서 사무 처리 언어의 통일화를 위하여 사무처리에 대한 언어가 제시되고 CODASYL (Conference On Data Systems Languages, 데이터 시스템즈 언어 협의회)가 설립 되었고, 1959년 펜실베니아 대학교에서 그레이스 호퍼를 포함한 Jean Sammet, Saul Gorn 등 여러 학자들이 참석하여 초안 작성을 시작하였다.[3]

역사[편집]

  • 1959년 ~ 1960년 : 코볼-60, 사무를 위한 공용 프로그래밍 언어 개발.
  • 코볼-61 ~ 65 : 1961년 ~ 1965년 / 사양이 명확해지고, 대용량 기억 장치의 파일들과 표를 다룰 수 있는 기능 소개.
  • 코볼-68 : 1968년 ~ 1972년 / 버전 간 비호환성을 극복하기 위해 코볼을 표준화. 1972년 ISO에 채택.
  • 코볼-74 : 1972년 ~ 1978년 / ANIS가 코볼의 개정판을 출판. 1978년 ISO 갱신된 표준 채택.
  • 코볼-85 : 1978년 ~ 1985년 / 범위 종단자, 내재된 프로그램, CONTINUE 문, EVALUTE 문, INITIALIZE 문, 인라인 PERFORM 루프, 참조 수정, 입출력 상태 코드 등과 같은 기능들이 ISO에 채택.
  • 코볼-2002 : 1990년대 초 ~ 2002년 / 완전한 리비전의 차기 코볼에 객채 지향을 추가하는 작업 실시. 2002년 ISO에 마지막으로 승인
  • 코볼-2014 : 2003년 ~ 2009년 / 이식 가능한 산술 결과물들은 IEEE 754 자료형으로 치환, 메소드 오버로딩, 동적 캐퍼시티 테이블, 주된 기능들이 선택 사항이 됨.

구성 요소[편집]

  • 예약어(Reserved Word) : 예약어란 코볼 언어가 미리 의미를 정해 놓는 단어로써 사용자가 본래의 용도로 바꿔 사용할 수 없는 단어를 말한다. 따라서 프로그램을 작성할 때는 예약어는 반드시 본래의 의미로만 사용되어야 한다.
  • 기본어(Key Word) : 기본어란 코볼 프로그램에서 각종 정보를 기술할 경우나 어떤 명령문을 작성할 때 반드시 있어야 하는 단어로서 중심어라고도 부르고,

어느 누가 사용해도 반드시 그 뜻을 전달하기 위해서 기술해야 하는 단어를 기본어라 한다.

  • 리터럴(Literal) : 리터럴이란 명칭과는 달리 특정 값을 나타내기 위하여 사용된다. 리터럴은 기술되는 내용에 따라 수치 리터럴과 비수치 리터럴로 구분된다.
  • 픽처(Picture) : 기본 항목에는 Picture문을 써서 항목의 크기나 성질을 반드시 구분해 주어야 한다. 그러나 집단 항목은 기본 항목을 구성하는 항목의 자릿수의 합계이므로 자리수를 쓰지 않는다.

구조[편집]

  • IDENTIFICATION DIVISION : IDENTIFICATION DIVISION은 코드 개체를 식별하고 클래스인터페이스 의 정의를 포함한다.
  • ENVIRONMENT DIVISION : ENVIRONMENT DIVISION에는 CONFIGURATION 섹션과 INPUT-OUTPUT 섹션이 포함된다.
  • DATA DIVISION : DATA DIVISION은 6개로 나뉘며 다른 항목을 선언한다.
  • FILE SECTION : 파일 상세 서술
  • WORKING-STORAGE SECTION : 정적 변수
  • LINKAGE SECTION : 매개 변수와 변환값
  • REPORT SECTION, SCREEN SECTION : 텍스트 기반의 사용자 인터페이스

장단점[편집]

장점[편집]

  • 학습과 활용에 용이하다. (문법이 영어식 표현 방식이라 배우기 쉽다)
  • 컴퓨터 기종 변경에 따른 프로그램의 수정이 거의 필요없이 사용가능. (호환성이 높다)
  • 순차 처리와 단순 처리가 모두 가능하여 다른 언어에 비해 파일 처리 기능이 좋다.

단점[편집]

  • 다른 프로그래밍 언어보다 처리 속도가 느리고, 프로그램 작성이 번거롭다.
  • 전체적인 구성이 간결하지 못하다.
  • 설계 과정이 효과적이지 않다.
  • 코볼-85 버전은 이전의 버전들과 호환되지 못해 논란이 있다.

각주[편집]

  1. COBOL〉, 《두산백과》
  2. 코볼〉, 《위키백과》
  3. 春の熊, 〈COBOL 언어〉, 《티스토리》, 2012-10-20

참고자료[편집]

  • COBOL〉, 《두산백과》
  • 코볼〉, 《위키백과》
  • 春の熊 ,〈COBOL 언어〉, 《티스토리》 , 2012-10-20
  • 코볼〉, 《egloos》 , 2004-05-12
  • 거지왕자 , 〈cobol 정리〉, 《다음블로그》, 2013-02-11

같이 보기[편집]


  검수요청.png검수요청.png 이 코볼 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.