이번 장에서는 디지털 컴퓨터 이전의 언어에 대해 알아볼 것이다.
ℓ 디지털 컴퓨터 이전의 언어
주요 고급 언어의 계보의 그림이다.
10년 주기로 프로그래밍 언어의 발전사를 설명할 것이다.
ℓ 1950년대 : 최초의 프로그래밍 언어
1950년 초반 당시의 프로그래밍은 주로 기계어로 작성되었으나, 뒤이어 어셈블리 언어가 탄생하였다.
어셈블리 언어는 기계어 코드를 대신할 기호나 연상기호를 사용할 수 있었다.
하지만 어셈블리 언어 역시 기계 의존적이며 자연언어와는 차이가 큰 구문을 사용했기에 때때로 저급 언어라 불린다.
이후 최초의 고급 언어는 1954년에서 1957년 사이에 IBM의 John Backus가 중심이 되어 만든 Fortran이다.
Fortran 컴파일러는 효율적인 기계어 코드를 생성하여서 오랫동안 살아남았다.
이후 Fortran 언어는 배열, 반복 구조, 분기문, 부프로그램 등은 이후 언어의 큰 영향을 미쳤다.
ℓ 1960년대 : 프로그래밍 언어의 폭증
1960년 프로그래밍 언어 몇 개가 성공을 이루자 많은 사람들이 언어를 만들기 시작했다.
너무 많이 만들어져서 이런 그림까지 생겨나기도 했다.
많이 생긴만큼 많이 실패했지만 그 중에서 성공한 작품 몇 개를 고르자면
Algol 68, Snobol(StriNg Oriented symbOlic Language), Simula 67, Basic가 있다.
Simula 67은 객체 지향 언어의 기본이 되는 클래스 개념을 도입하여 객체 개념과 자료 추상화를 인식시키는 데 크게 기여하였다.
ℓ 1970년대 : 간결성, 추상화, 연구 사항
1970년에는 간결하고 일관성을 추구하는 언어가 많이 생겼다.
대표적으로 Pascal(함수형 언어), C언어가 생겼다.
Pascal은 작고, 간결하고, 효율적이고 구조적이며 프로그래밍 교육용으로 만들어졌다.
C언어는 운영체제 UNIX를 만들기 위해 생겼다.
그리고 UNIX를 만들고 대중화에 성공하며 C 언어가 대중화 되었다.
효율성과 간결성을 목적으로 둔 언어라서 다른 언어에 비해 기능은 부족하긴 하다.
ℓ 1980년대 : 통합과 새로운 방향
1980년은 객체 지향 언어에 대한 활발한 연구가 이뤄졌다.
그 중에서 대표하는 언어는 Ada언어가 있다.
Ada 언어는 자료 추상화, 타입 메커니즘, 병행 처리, 예외처리기 도입 하였다.
그리고 디자인이 꼼꼼하고 상세하다.
Ada 언어 이외에는 Modula-2, ML, Common Lisp, Prolog, Smalltalk, C++ 등이 있다
ℓ 1990년대 : 웹을 위한 언어
1990년대에는 실사용자가 자신의 문제를 직접 프로그래밍 할 수 있으며, 데이터베이스를 쉽게 처리할 수 있는 언어가 발전했다.
대표적으로 C++에서 발전한 Java, HTML언어 등이 있다.
Java는 웹프로그래밍 언어이며 내장 가전제품(대화형 TV 등) 장치를 위한 언어로 시작했다.
Java의 특징은 이식성(다른사람이 만든 프로그램을 내 컴퓨터에서 돌려도 상관 X)이 높다.
그리고 자료형과 클래스가 있으며 다중 상속 불가능 하였지만, 인터페이스를 사용하여 다중상속의 장점을 보완했다.
이외에도 묵시적 기억장소 회수, 묵시적 형변환 등이 있다.
HTML은 JavaScript, PHP가 있다.
JavaScript는 Java와 구문만 비슷하지 전혀 다른 언어이다.
동적 타입 언어이며 Java(정적 타입 언어)랑 실행 시간을 기준으로 나뉜다.
웹브라우저에 의해 실행된다.
PHP 또한 HTML에 포함되며 서버 측 스크립트 언어이며 웹브라우저는 PHP 코드를 볼 수 없다는 특징이 있다.
PHP도 동적 타입 언어이다.
PHP코드는 웹 서버상에서 해석, 결과로 HTML 코드 생성하여 PHP 코드를 대체한다.
데이터베이스에 웹 접근을 필요로 하는 프로그램을 제작하는 데 적합하다.
ℓ 2000년대 : C#, 마크업 언어
2000년대에는 .NET의 개발과 함께 C#이 마이크로소프트사에서 발표되었다.
주로 대두되었던 언어는 C#, XSLT, JSP가 있다.
C#의 특징은 다중상속을 제외하고 포인터, 구조체, enum 타입, 연산자 중복, goto 문장 등 지원하게 되었다.
XSML 언어는 XML(마크업 언어) 문서를 화면 표시하기 위해 다른 형태의 마크업 언어로 변환한다.
JSP는 Java Sever Pages로 흔히 알고 있는 백엔드에 가까운 언어다.
HTML 문서의 형태인 서블릿의 결과는 요청 페이지로 반환되어 보여준다.
HTML 문서의 보안을 위해 관리하고 사용자에게 필요할 때 보여준다.
'컴퓨터 과학 > 프로그래밍 언어 개념' 카테고리의 다른 글
함수 호출 방식에 대한 이해: Python, C, C++, Java 비교 (1) | 2024.09.29 |
---|---|
프로그래밍 언어 개념 Chapter 1.1 :: 프로그래밍 언어 소개 (0) | 2023.09.11 |