본문내용
1. 프로그래밍 언어의 발전 및 특징
1.1. 1950년대 프로그래밍 언어: ALGOL
1950년대에는 기계에 종속되지않는 프로그래밍 언어의 필요성이 증가하여 미국과 유럽의 공동 위원회가 International Algorithmic Language(IAL)를 개발하게 되었고, ALGOL이라는 이름으로 바뀌었다. 이후 ALGOL58이 나와 해당 문서가 발표되자 많은 사람들이 이를 이용하여 번역기를 만들어내는 성과를 보였다. 그러나 FORTRAN의 IBM투자로 완벽하고 에러 없는 언어가 개발되었고, ALGOL은 당시 초안 형태라 1960년에 위원회는 ALGOL60을 개발해내게 되었다.
ALGOL은 과학기술 계산용 프로그래밍 언어로 산법을 나타내기 위한 알고리즘 언어이며, 문법구조가 Backus-Naur Form(BNF)에 의해 기술된 언어이다. BEGIN으로 시작해서 END로 끝나는 하나의 블록으로 구성되어 있고, 각 블록들은 선언부, 실행부로 나뉘어 구성된다. 각 블록안에 여러 개의 블록을 작성할 수 있고, 블록은 변수선언으로 이루어지는 BEGIN 블록과 서브프로그램 블록의 두가지로 이루어지는데, BEGIN블록은 해당 구조가 변수선언과 복합문장들로 구성하고 END로 블록을 끝내도록 하며, 서브프로그램은 블록은 서브프로그램에서 설명하도록 한다. 단점은 어셈블리어처럼 데이터 처리의 다양한 융통성을 가지고 있지는 못하다고 할 수 있다.
1.2. 1970년대 프로그래밍 언어: PASCAL
1970년대 프로그래밍 언어인 PASCAL은 컴퓨터 과학자인 니클라우스 위스(버트) 교수에 의해 제안 및 개발되었고 1971년에 작동되었다. PASCAL은 전산학 교육용 언어로 유용하게 활용되며 자연어에 가깝게 설계되어 있다.
PASCAL의 데이터 구성은 데이터 길이의 제약이 없고 다양한 형식 및 구조를 사용할 수 있다. 또한 if, then, else과 같은 조건문, do, while 같은 반복문 등 많은 제어구조를 가지고 있어 구조화 프로그래밍의 개념을 쉽게 적용할 수 있다. 프로그램 헤더부분은 생략이 가능하고 사용하는 주변의 장치를 기술할 수 있다. 실행부에서 프로그램이 실행되는데, 프로그램의 논리적인 흐름을 제어하고 BEGIN에서 END까지 작성한다. 선언부 부분은 프로시저와 함수를 작성하며, 프로시저는 결과값을 리턴해주지 않고 함수는 결과값을 리턴해준다. 다만 어셈블리어와 같이 데이터 처리의 다양한 융통성을 가지고 있지는 않다.
1.3. 1990년대 이후 프로그래밍 언어: JAVA
1990년대 이후 프로그래밍 언어로 자바(JAVA)는 1991년 미국 선마이크로시스템즈 사의 James Gosling에 의해 개발되었다. 처음에는 Oak라는 이름으로 탄생되었으나 1994년에 커피의 속어인 JAVA로 이름을 바꾸었다. 초기에는 가전제품의 기능을 프로그램으로 제공 및 네트워크화 할 수 있도록 설계되었으며, 이후 자바애플릿을 이용해서 자료 검색 또는 멀티미디어를 통한 인트라넷, 게임, 광고, MIS, 교육 등 다양한 분야에서 응용되어 사용되고 있다.
자바는 작고 단순하며 효율적인 형태로 번역되어 실행되는 언어이다. C++의 에러가 되는 포인터와 GOTO문을 배제하고 예상치 못한 에러 등을 처리하는 방법을 제공한다. 비교적 타 언어에 비해 코딩을 간단하게 작성할 수 있으며, 모든 것이 객체지향적이라 행동과 상태를 지니고 있다. 또한 네트워크 분산 환경도 지원하는데, TCP/IP 라이브러리가 기본적으로 들어가 있어서 분산 환경에서도 자바를 실행할 수 있는 장점이 있다.
자바의 실행 방식은 인터프리터 언어인데, 컴파일 과정을 기존 Basic 언어와 같이 한 라인씩 처리하는 인터프리터 방식을 사용한다. 컴파일 방식은 텍스트를 2진으로 만들면 런타임이 클래스 파일을 인터프리트하면서 실행되는 것이다. 이를 통해 2진 파일로 시스템에 무관하도록 하여 컴파일에 가까운 속도와 시스템 독립성의 장점을 가지게 되었다.
언어 자체가 정말 강력한데, 컴파일 할 때 에러를 막고 도구들이 명확하게 유형 선언을 할 수 있도록 하는 특징을 가지고 있다. 이러한 특징들로 인해 자바는 1990년대 이후 다양한 분야에서 널리 사용되고 있으며, 현재까지도 주요 프로그래밍 언어 중 하나로 자리매김하고 있다.
2. 프로그래밍 언어 표현 방식
2.1. BNF(Backus-Naur Form)
BNF(Backus-Naur Form)은 프로그래밍 언어의 문법을 표현하는 데 사용되는 메타 언어이다. 이는 프로그래밍 언어의 문법을 표현하는 규칙 체계로, 언어의...