1.3. The Evolution of Programming Languages


1940년에 전기 컴퓨터가 처음 나왔는데 0과 1의 순서로 프로그램이 되었다.

low level operation은 location 이동, 레지스터 2개 내용 추가, 값 2개 비교 등을 함.

하지만 느리고, 지루하고, 에러 발생이 쉬웠다.

그리고 한번 작성하는 것에 있어서 이해와 수정이 어려움.


1.3.1. The Move to High-level Languages


- 1950년에 인간과 친한 assembly language 개발됨.

- assembly languages는 처음에 단순 기계언어를 기억하는 용도였다.

- 하지만 나중에 assembly에 macro 기술이 추가되서 프로그래머가 parameterized shrothands for frequently used sequnces of machine language를 정의 가능해졌음.

- 1950년 후반에 과학적인 계산 : Fortan 개발. 이는 

- bussniess data processing : Cobol 개발.

- 상징적인 계산 Lisp 개발

- 이러한 언어철학은 high-level notations이 되었다.

- 쉬운 숫자 계산, 비즈니스 응용, 상징적 프로그램

- 여전히 요즘에도 성공적으로 사용됨.


이후에 쉽고 자연스럽고 robust한 언어들이 만들어짐

나중에 우리는 현재 PL에 대해서 배움.


1세대 : 기계어

2세대 : 어셈블리

3세대 : Fortan, Cobol, C, Java, ...

4세대 : SQL, NOMAD, Postscript


폰노이만 언어는 계산적인 모델의 기초가 되었음.  ->  폰노이만 아키텍처

오늘날의 많은 언어들의 기초.


기능언어 : ML, Haskell, Prolog


객체지향 언어 : Simula67, Smalltalk


스크립트 언어 : 고급 연산자를 사용해서 해석 ( Awk, PHP, Javascript, Python, ...)

보통 짧은 코드를 구성해서 사용.



1.3.2. Impacts on Compilers


- Programming Language와 Compiler는 밀접한 관계다. 그래서 Programming Language 기술은 compiler writer에게 새로운 기술을 요구한다.

- 1940년 이후 Compiler writer는 새로운 PL을 알아야할 뿐만 아니라 하드웨어의 기능을 최대한 끌어내는 알고리즘을 창작해야 한다.

그래서 어려운듯. 

- 컴파일러는 (overhead를 최소화 시킨)high-level languages 사용을 촉진한다.

- high-performance를 만드는 것에 있어서도 Compiler의 기능을 최대한 끌어내는 것이 중요.


1.3.3. Exercise for section 1.3.



+ Recent posts