프로그래밍[Univ]/프로그래밍 언어론

[프로그래밍 언어론] 프로그램 언어의 탄생과 기여 Part 2

Cloud Travel 2011. 9. 19. 21:34
1. PL/I
 - 65년 프로그램언어의 양분화 현상(과학용/비지니스용)
 - 서로의 다른 면을 바라 보고 프로그램이 모든 컴퓨터에서 하나의 언어로 하는 것을 목표로 개발
 - 특징
  ⓐ 동시에 실행하는 테스크 생성 허용
  ⓑ 예외 탐지 가능(최초)
  ⓒ 재귀함수의 사용이 허용됨
  ⓓ 다차원 배열에서의 특정원서 지정이 가능해짐
  ⓔ 포인터 사용 가능
 - 과학용언어와 비지니스언어의 합침으로인해 복잡해지고, 잘못된 디자인도 발생됨.
  > 대중성이 떨어짐

2. Dynamic Language 부류의 탄생
 - static language(ex:c언어)와 반대대는 것으로 변수의 type이 지속적인 변화가 가능
 - 수행 속도가 느림
 - Dynamic Language의 시초
  ⓐ APL : 구문예 → X[ㅁX+,=''';] / 막강한 operator제공 But, 가독성 문제가 심함.
  ⓑ SNOBOL : String사용에 주를 둔 언어  
 
3. SIMULA 67
 - 데이터 추상화의 탄생(class의 탄생 : 사용자가 사용할 데이터를 생성)
 - 크루틴 : 호출과 피호출이 모두 가능한 형태
  > 서브 프로그램으로 보기 힘든 특징

4. Pascal
 - ALGOL68의 영향을 받아 탄생한 언어
 - 컴퓨터 공학을 공부하는 학생을 위한 교육용 언어로 규모가 작고 단순하다.

5. C언어
 - 시스템 프로그램을 위한 언어로 실행의 효율성에 중점을 둠
 - 강력한 오퍼레이터제공 / 타입체킹을 하지 않는 단점을 가짐
 - 유닉스의 보편화로 대중화가 됨
 - 영향받은 언어에서 효율을 떨어 뜨리는 것을 모두 제외 / 유연성을 향상

6. prolog
 - 로직 프로세싱 언어(논리 언어)
 - 지능형 데이터베이스 시스템과 비슷한 형태
 - 논리를 주고, 명제를 주면 알고 싶은 것을 알 수 있음
 - 현존하는 유일한 논리 언어

7. Ada
 - 역사상 가장 공이 들어간 언어로 미국 국방부 (DoD)에서 만듬
  > 국방부에 납품하는 언어/프로그램의 통일화를 위해 연구함
 - 특징
  ⓐ package로 데이터 추상화 제공
  ⓑ 예외 처리 가능
  ⓒ generic package > 일반적으로 하는 일이 같으면 역할 통일
   > c++의 템플릿 기능에 영향을 줌
  ⓓ 동시 수행 수단 제공
  ⓔ 언어의 특징과 공학적 특징을 두루 가춘 언어로 대중성을 얻었다.
   > 완벽에 가까운 언어

8. small talk
 - 객체지향을 완벽 지원해주는 처음으로 나온 언어
  > 스몰톡 이외에는 객체 지향을 모두 지원해주지 않는다.
   ex) 데이터 추상화 방법이 객체 지향 이외에도 존재 / c++은 구조체와 클래스로 데이터 추상화를 구현한다.
 - 상속 지원

9. C++
 - C와 SIMULA의 영향을 받음
  > 그냥 C+SIMULA라고 생각하면 됨
 - c의 대중성에 의해 C++도 많이 사용 됬다.
 
10. JAVA
 - c++을 단순화 하면서 포인터 사용을 금지시함
 - 쓰레드 제공