ABOUT ME

Today
Yesterday
Total
  • [프로그래밍 언어론] Language Design Issues
    프로그래밍 언어론 2025. 3. 20. 17:36

    프로그래밍 언어의 역할

    • Man-machine interface
    • Man-man interface

     

    프로그래밍 언어의 분류

    • 문제영역에 따른 분류 (business, scientific, system, AI, web)
    • 패러다임에 따른 분류 (절차 언어, 함수형 언어, 논리 언어, 객체지향 언어)
    • 계산모델에 따른 분류 (명령형 언어, 함수형 언어, 논리 언어)

    좋은 언어의 조건

    1. 명료성, 간결성, 일관성
    2. 직교성
    3. 응용 분야 지원
    4. 추상화 지원
    5. 테스트 용이성
    6. 프로그래밍 환경
    7. 이식성
    8. 비용 (수행, 번역, 작성, 관리, 학습 등)

    직교성

    - 몇 개의 다른 기능을 예외없이 임의로 조합할 수 있는 기능

    - 기능들의 독립성이 보장되어 있다는 의미이다.

     

    응용 분야 지원 ( lanuage features)

    - 필요한 것(data structure etc)을 지원하고 없으면 만들 수 있도록 한다.

     

    명령형 언어

    - 계산 모델 : 상태전이 기계(state transition machine)

    - ex) FORTRAN, COBOL, C, Pascal

     

    함수형 언어

    - 계산 모델 : 함수

    - 변수도 없고 대입 연산도 없음

    - 함수 합성이 주요 수단

    - ex) LISP, Scheme, ML, Haskell

     

    논리 언어 (규칙기반 언어)

    - 계산 모델 : 논리규칠에 입각한 추론

    - 입력 : 명제의 조합

    - 출력 : 추론 결과 얻은 명제 또는 명제의 일부

    - ex) Prolog

     

    객체지향 언어

    - 계산 모델을 가정하고 있지 않지만, 주로 명령형 패러다임 언어로 구현됨

    - ex) Smalltalk, C++, Java

     

    구조화 프로그래밍

    - 이론적 기반

    • 순차구조
    • 선택구조
    • 반복구조

    분리 컴파일

    - 분리 컴파일 시 공유되어야 하는 정보

    • 서브 프로그램 호출 정보
    • 공유되는 변수의 타입
    • 공동으로 사용해야 할 타입의 정의

    - 분리 컴파일 지원을 위한 방법

    1. 필요한 것을 다시 선언하도록 함
    2. 특정 순서로 컴파일 되도록 함
    3. 관련 정보를 라이브러리 형태로 참조할 수 있도록 함

    독립 컴파일 : 각 컴파일 단위가 독립적 -> 1번 방법과 동일한 것임

     

Designed by Tistory.