프로그래밍 언의 구현 총정리
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 (리스크 안에 리스트)
아직도 넓게 사용 , 효율적
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 현재까지도 사용
'공부 > 프로그래밍 언어론' 카테고리의 다른 글
[프로그래밍 언어론 과제] 7. Prolog 로 팩토리얼 구현 (0) | 2021.05.21 |
---|---|
[프로그래밍 언어론] 10. 구문론2 (0) | 2021.04.14 |
[프로그래밍 언어론] 10. 구문론 (1) | 2021.04.13 |
[프로그래밍 언어론] 6. 프로그래밍 언어의 발전 3 (0) | 2021.04.13 |
[프로그래밍 언어론] 2. 언어의 기능 (0) | 2021.04.12 |