◆ Reasons for studying concepts of PLs
- Increased capacity to express ideas
- Improved background for choosing appropriate language
- (적합한 언어를 선택)
- Increased ability to learn and describe new languages
- (새로운 언어를 쉽게 학습, cf. C언어는 알골 계열의 언어)
- Better understanding of the significance of implementation
- 구현의 중요성(컴파일러마다 조금씩 상이)
- Better use of languages that already known
- (이미 알고 있는 언어를 더 잘 사용할 수 있음)
- Overall advancement of computing
- (컴퓨팅하는데에 전반적으로 발전)
◆ Programming Domain (분야)
- 과학기술분야
- 계산
- 사무처리분야
- 자료(레코드) 정리 및 정렬, 출력
- 인공지능분야
- 시스템프로그래밍
- 고급언어로 만드는 OS (과거에는 어셈블리어로 구성, 오늘날은 고급언어. 파일 크기가 커지고 속도가 저급언어에 비해 느리지만, 고급언어로 하면 실수할 확률이 적어지고 코딩하기 용이함)
- 웹 소프트웨어
- 보통 컴파일러보다 인터프리터
- 초고급언어
- 짧은 코드 ( 쓰기 좋다 / 컴파일 후 코드가 길어진다 )
- 특수목적언어
- 특정 상황 모방 ( simulator )
- 객체지향
- JAVA, XML
- 다음은 어떤 분야들이???
- 3대 NEW 패러다임 : 객체지향 / 논리지향 / 함수 지향
◆ Language evaluation criteria
▷ Readability
- writability와 상충 관계
- 너무 많은 개념은 좋지않음
- 중복되는 개념은 좋지 않음
- 연산자가 오버로딩되면 가독성이 떨어짐
(a+1에서 더하기가 정수연산인지 실수연수인지)
- Orthogonality - 직교한다 -> 중복이없다 -> 객체의 역할 분담-> 결합성
- http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=104&docId=64394140&qb=b3J0aG9nb25hbGl0eQ==&enc=utf8§ion=kin&rank=3&search_sort=0&spq=0&pid=g1GdsU5Y7tossvRKtjsssc--263778&sid=T14QAXIPXk8AADUMBM0 참고
- 제어문과 데이터구조를 만드는 요소가 small set-> readability 굿
- 더 orthogonal해질수록 예외가 줄어듬
- 너무 orthogonal해지면 문제를 일으킬 수 있음 (유사 개념)
- 적절한 조화가 필요함 ( simplicity 과 orthogonality)
- 제어문 : 70년대 'go to' 논란
- 데이터 타입과 구조 - 단순
▷ Writability
- 단순성과 직교성
- 추상화 지원
- 표현성
▷ Reliability (신뢰도)
- 타입 체크
- 컴파일 체크/런타임체크
- 예외 처리
- 별칭/별명
- 혼동하기 쉬움(신뢰도 하락, 일관성 X)
- readability와 wirtability (reliability와 상충)
▷ Cost
◆ Influences on language design
▷컴퓨터 구조
- 폰노이만 방식 : 언어 사용하기에 환경/성능이 좋아짐
- 비 폰노이만 방식 : 병렬처리/함수형언어 등에 용이
▷프로그래밍 설계 방법
- 어셈블리 프로그래밍
- 고급언어
- 구조화된 프로그래밍
- 시스템 프로그래밍
- 객체지향 프로그래밍
- 인공지능 프로그래밍
- network transparent 프로그래밍
- 그외
◆ Language categories
- 명령
- 함수
- 논리
- 객체지향
- markup
◆ Language design trade-offs
- 상충관계
- 신뢰성 vs 실행비용
- 가독성 vs wriatability
- 유연성 vs 안전성
◆ Implementation methods
▷컴파일-실행
: 번역->실행(실행속도 빠름) / 컴파일~ *최적화
▷인터프리터
:번역X, 실행(실행속도 느림) / ex. command
◐하이브리드 구현시스템
- 중간정도 분석된 코드를 인터프맅하여 실행 (실행시간 단축)
◐전처리기
- 전처리문,전처리지시어,전처리명령어
- pcc
- RatFOR
- 효과: language extension
◆ Programming environments
- 소프트웨어 개발 도구들 ...
'Computers > Programming Language' 카테고리의 다른 글
ch6-2. Data Type (0) | 2012.03.19 |
---|---|
ch6-1. Data Type (0) | 2012.03.17 |
ch5. Names, bindings, type checking, and scope (0) | 2012.03.16 |
ch4. Lexical and syntax analysis (0) | 2012.03.15 |
ch3. describe syntax and semantics (0) | 2012.03.14 |