본문 바로가기
공부/프로그래밍 언어론

[프로그래밍 언어론] 4. 프로그래밍 언어의 발전 1

by 맑은청이 2021. 4. 12.
728x90
반응형

프로그래밍 언의 구현 총정리

Language design trade-offs

- 어떤 언어 속성은 서로 상충 

- 작성력과 가독성, 강건성과 효율성, 안정성과 유연성등은 서로 상충 할 수 있음

Language implementation methods

- 언어는 컴퓨터를 바라보는 가상 환경으로 간주 가능

- 언어 구현 방법은 컴파일러와 해석기, 이 둘의 혼합 구현 있음

- 컴파일러 방법은 번역 비용이 높지만 수행 속도가 빠르며 해석기 방법은 반대

 

Programming Environments

- 통상 IDE라고 하면 편집기, 컴파일러 혹은 해석기, 디버거를 한 화면에 제공

- 문서 생성기, 테스트 패턴 생성기, 프로파일러, 형상 관리 도구 등이 구비된 환경은 CASE 도구의 범주에 포함됨 

 

 


What to Learn 

- 계통도

- 첫 유명 언어 : Fortran, Algol, LISP, COBOL

- 베이직은 교육용으로 나옴

- 스크립트 언어는 빠름  

노란 부분 함수형 패러다음 초록은 객체지향 파랑은 논리 


IBM 704 and FORTRAN

 

하드웨어 환경에 영향을 많이 받음

컴퓨터를 동작하기 위해 언어를 개발해야함

과학 게산에 먼저 이용되었음

기계 효율성이 가장 중요한 요소 였음 

 

FORTRAN 0 

디자인이 되고 구현은 안됐음 

 

 

FORTRAN 0

- J.Backus 제작

- 1957

- 변수의 길이 6개

- formatted I/O 나옴  (서식 규정 디렉터리)

- 서브 루틴

- arithmetic IF 

- DO loop

- 변수 선언 없었고 명시적 데이터 타입

- 400라인 넘으면 컴파일 잘 안 됐음 

 

 

포트란은 계속 발전 했음

 

FORTRAN 90 

- 모듈 포함

- 병렬화

- obsolescent 는 사라진 거 

최초의 널리 사용된 언어

Static allocation 

 


LISP 

- John McCarthy 존 맥컬시 (1959) 초기 해커 

- atoms 과 list 만 있었음 

- 함수형 프로그래밍

- Generalized list (리스크 안에 리스트) 

 

아직도 넓게 사용 , 효율적

generalized list 

 

LISP 는 다이나믹 scope 인데 Scheme 는 정적 scope 

CLOS 는 LISP 에서 객체지향 을 해서 유명

ML, Miranda, Haskell 도 있음 

 


 

알고리즘을 나타낼 언어 

수학적인 표기법에 가깝게 

머신 언어로 컴파일 할 수 있게 하자 

 

변수며 아무렇게, 파라미터 모드, 복합문 개념 처음, else-if , I/O 뺐음 

 

 

 

 

 

성공, BNF 정의, Pass by name 난해함


 

 FORTRAN은 공식을 나타내기 위해 

LISP 는 AI 를 나타내기 위해

근데 Business를 나타낼 게 없네? 해서 만들어진 언어가 COBOL임

 

COBOL은 플로우 매틱과 유사하게 제작 

데이터와 코드를 분리시킴

모든 문자는 동사로 

 

CBC 

디자인 목표는 단순한 영어, 쉬운 사용, 구현 문제 없어야함 

 

매크로, 자료구조, 큰 이름 지원, 파일 기록, DoD 현재까지도 사용 

 


 

 

728x90
반응형