코볼(COBOL)은 common business oriented language의 약어로 컴퓨터의 프로그래밍을 쉽게 하기 위하여 고안된 프로그램 언어이다. 포트란(FORTRAN)과 알골(ALGOL)이 과학기술 계산용 언어인 반면, 코볼은 사무처리용으로 만들어진 언어로 미국 국방부을 중심으로 결성된 프로그램 언어로서 그룹 CODASYL(Conference on Data system Language)에 의해 1960년 처음으로 제정되었다.[1]
개요
코볼 (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 버전은 이전의 버전들과 호환되지 못해 논란이 있다.
각주
참고자료
- 〈코볼〉, <<egloos>> , 2004-05-12
- 〈cobol 정리〉, 《개인블로그》, 2013-02-11
같이 보기
이 코볼 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.
|
개발 : 프로그래밍 □■⊕, 소프트웨어, 데이터, 솔루션, 보안, 하드웨어, 컴퓨터, 사무자동화, 인터넷, 모바일, 사물인터넷, 게임, 메타버스, 디자인
|
|
프로그래밍 언어
|
ASP • C 언어 • C++ • C# • CSS • D 언어 • HTML • HTML5 • JSP • PHP • R • XHTML • XML • XSLT • 고(Go) • 고급언어 • 기계어 • 델파이 • 러스트 • 루비 • 루아 • 리액트 • 리퀴디티 • 무브 • 미켈슨 • 베이직 • 브이비스크립트 • 비주얼 C++ • 비주얼베이직(VB) • 비주얼베이직닷넷(VB.NET) • 솔리디티 • 스몰토크 • 스위프트 언어 • 스칼라 • 스크립트 언어 • 알골 • 어셈블리 • 언리얼스크립트 • 얼랭 • 에이잭스(Ajax) • 엠에프씨(MFC) • 오브젝티브-C • 오브젝트 파스칼 • 오카멜 • 웹어셈블리(WASM) • 이와즘(eWASM) • 자바 • 자바스크립트 • 저급언어 • 제이슨(JSON) • 제이쿼리(jQuery) • 카멜 • 코볼 • 코틀린 • 콜드퓨전 • 타입스크립트 • 파스칼 • 파워스크립트 • 파이썬 • 펄(Perl) • 포트란 • 프로씨(Pro-C) • 피엘에스큐엘(PL/SQL) • 피엘원(PL/I) • 하스켈
|
|
개발방법론
|
CBD 개발방법론 • EA • 구조적 개발방법론 • 객체지향 개발방법론 • 라이브러리 • 람다 아키텍처 • 모듈 • 모듈화 • 벤치마킹 • 소프트웨어 개발방법론 • 스크럼 • 스프린트 • 아키텍처 • 아키텍트 • 애자일 • 웹개발방법론 • 정보공학 개발방법론 • 컴포넌트 • 테일러링 • 템플릿 • 폭포수 모델 • 프로젝트 • 프로토타입 • 피드백
|
|
코딩
|
EUC-KR • UTF-8 • 값 • 글루웨어 • 노팔로우 링크 • 두팔로우 링크 • 디버깅 • 디코딩 • 마크업 • 버그 • 부트스트랩 • 세이브포인트 • 소스코드 • 시큐어코딩 • 아스키 • 액티브엑스 • 오픈소스 • 유니코드 • 인코딩 • 재컴파일 • 주석 • 컴파일 • 컴퓨터 프로그램 • 코드 • 코딩 • 태그 • 테스트 • 테이블 • 텍스트 • 파싱 • 퍼블리싱 • 퓨니코드 • 하드코딩 • 하이퍼링크 • 하이퍼텍스트
|
|
프로그래밍
|
C 명령어 • 객체 • 객체지향 • 객체지향 프로그래밍 • 거짓 • 관계연산자 • 기본형 변수 • 널 • 논리 • 논리연산 • 논리연산자 • 다중상속 • 다형성 • 대입 • 대입문 • 대입연산자 • 더블 • 도스 명령어 • 디폴트 • 레지스터변수 • 루프 • 리눅스 명령어 • 리턴 • 메모리 주소 • 메소드 • 멤버 • 명령문 • 명령어 • 무한루프 • 문자 • 문자열 • 바이트 • 반복문 • 배열 • 변수 • 분기 • 분기문 • 불린 • 브레이크 • 비교연산자 • 비트연산자 • 산술연산자 • 상속 • 상수 • 생성자 • 선언 • 선언문 • 설정자 • 속성 • 스위치 • 스태틱 • 시프트연산자 • 실행 • 실행문 • 어노테이션 • 에코 • 역참조 • 연산 • 연산문 • 연산자 • 오버로딩 • 오버라이딩 • 외부변수 • 윈도우 명령어 • 유닉스 명령어 • 인스턴스 • 인스트럭션 • 인클루드 • 인터페이스 • 임포트 • 입력 • 입력문 • 입출력 • 입출력문 • 자료형(데이터 타입) • 자바 명령어 • 자바 예약어 • 자바 컬렉션 • 전역변수 • 접근자 • 접근제어자 • 정보은닉 • 정수형 • 정적변수 • 제어 • 제어문 • 제어자 • 조건 • 조건문 • 조건연산자 • 주소 • 증감연산자 • 지역변수 • 참 • 참조 • 참조변수 • 초기화 • 추상메소드 • 추상클래스 • 추상화 • 출력 • 출력문 • 캡슐화 • 케이스 • 클래스 • 파라미터(매개변수) • 파이널 • 패키지 • 퍼블릭 • 포인터 • 프라이빗 • 프로텍티드 • 필드(멤버변수) • 함수 • 환경변수
|
|
명령어
|
abstract • array • boolean • break • byte • case • char • continue • default • double • do while • echo • elif • else • else if • false • final • float • for • gosub • goto • if • if else • import • include • int • join • long • long long • null • print • printf • println • private • protected • public • return • scanf • short • stdio.h • static • string • switch • temp • then • true • unsigned • void • while
|
|
디자인패턴
|
구조패턴 • 동시성패턴 • 동시실행패턴 • 모델-뷰-컨트롤러 패턴 • 상태패턴 • 생성패턴 • 싱글톤패턴 • 아키텍처패턴 • 전략패턴 • 커맨드패턴 • 행동패턴
|
|
프로그래밍 인물
|
귀도 반 로썸 • 그레이스 머레이 호퍼 • 니클라우스 비르트 • 댄 브릭클린 • 더그 커팅 • 데니스 리치 • 리누스 토르발스 • 리처드 그린블라트 • 마거릿 해밀턴 • 마크 앤드리슨 • 빈트 서프 • 빌 게이츠 • 빌 조이 • 스티브 잡스 • 에이다 러브레이스 • 제임스 고슬링 • 척 벤턴 • 켄 톰슨 • 팀 패터슨
|
|
위키 : 자동차, 교통, 지역, 지도, 산업, 기업, 단체, 업무, 생활, 쇼핑, 블록체인, 암호화폐, 인공지능, 개발, 인물, 행사, 일반
|
|