프로그래밍 언어 설계 원칙
간결성 (simplicity)
: Pascal의 주된 설계 원칙은 간결성
: 직교성, 일반성, 획일성 : 간결성 보장 못함) Algol 68
: 구성자의 수가 적다고 언어가 간결한 것은 아님.) Lisp, Prolog : 적은 수의 구성자를 가지거나 복잡한 실행시간과 시스템에 의존적
: 과다한 단순성 : 알고리즘 작성 방해, 표현력 부족
표현력(expressiveness)
: 복잡한 과정이나 구조를 표현하는데 용이함을 의미
- c언어 반복문/조건문
: 표현력은 강하나 단순하지 않은 언어 (Lisp, Prolog, Algol 68)
: 간결한 표현력 -c언어 등
정확성(preciseness)
: 언어에 대한 정확한 정의
- 언어의 행위가 예측 가능 : 언어의 신뢰도, 번역기의 신뢰도에 영향
- 예) c언어의 if문에서 else의 모호성 문제
기계 독립성(machine independence)
: 기계 독립적인 언어 정의(호환성 제공)
: 기억 장소 할당과 기계 구조와 별개로 정의된 자료형
안전성(security, reliability)
: 프로그래밍 오류 최소화, 오류 발견 용이한 언어
: 언어의 신뢰성과 정확성에 밀접한 관계
: 언어 설계 시, 자료형/형 검사/변수 선언을 도입
: Strong-typed language(강 타입 언어)
기존 표기 규칙과의 일관성
확장성
제약성, 부분성