Programming Language   프로그래밍 언어

(2023-12-24)

Language , 언어 , 프로그래밍 언어 종류, 고급 언어, 저급 언어, 스크립트 언어, Declarative Language, 선언형 언어


1. 언어 (Language) 이란?

  ㅇ 사상,생각,감정을 나타내고 의사 소통을 위한 기호 체계

     - 자연 언어 (Natural Language)    : 한국어,영어,독어,일본어 등
     - 인공 언어 (Artificial Language) : 에스패란토오어, 프로그래밍 언어 등
     - 형식 언어 (Formal Language)    : 언어문법 구조를 수학적 측면에서 형식화한 인공 언어
 

2. 프로그래밍 언어 (Programming Language)프로그래밍 언어 이란?
     - 프로그램 작성용 언어
        . 프로그램을 작성하기 위한 일종의 표기법(notation)
     - 프로그래밍 의도를 추상화시켜, 컴퓨터에 전달하는 도구

  ㅇ 프로그래밍 언어학습해야 하는 이유
     - 새로운 프로그래밍 언어를 더 잘 배우기 위해
     - 지금 사용하는 프로그래밍 언어를 더 잘 이해하기 위해
     - 새로운 프로그래밍 언어설계하기 위해

  ㅇ 프로그래밍 언어론 (Programming Language Theory, PLT)
     - 프로그래밍 언어의 구조,설계 방식에 대해 다루는 학문 분야


3. 프로그래밍 언어의 분류  :  처리 (추상화) 수준에 따른 분류

  ㅇ 고급 언어 (High-level Language)
     - 일상적인 언어 수준에 가까운 고수준 언어
        . 例) C 언어, Java 언어 등

  ㅇ 저급 언어 (Low-level Language)
     - 기계어와 1:1 대응되는 언어 (기계 중심적 언어)
        . 例) 어셈블리어(Assembly Language) 등

  ㅇ 기계어 (Machine Language)
     - 기계가 직접 이해할 수 있는 2진수 언어
        . 데이터비트 수준으로 보이고, 기계 명령을 직접 표현함
        . 기계 종속적 (다른 종류의 기계에서 사용 불가) 


4. 프로그래밍 언어의 분류  :  처리계에 의한 분류인터프리터 언어 또는 스크립트 언어
     - 인터프리터에 의해 프로그램 소스를 한 줄 씩 해석해가며 실행하는 부류
     - 例) PHP, Perl, Python, Javascript, VBScript 등

  ㅇ 컴파일러 언어
     - 컴파일러에 의해 프로그램 소스를 실행 환경에 맞춰 해석,변환한 후 실행하는 부류
     - 例) C 언어, Java 등

  ※ 프로그래밍 언어를 만든다는 것은,
     - 결국, 인터프리터 또는 컴파일러설계,구현하는 것을 말함


5. 프로그래밍 언어의 분류  :  형태(패러다임)적 분류 

  ※ ☞ 프로그래밍 방법론 (프로그래밍 패러다임) 참조
     - 프로그램을 개발/구축해 나아갈 때, 쓰이는 고급 프로그래밍 기법명령형 프로그래밍 언어 (Imperative Programming Language) 
     - 순차적 명령 수행을 기본으로 함
        . 절차식 프로그래밍 언어 또는 프로시저 지향 프로그래밍 언어 라고도 함
     - 例) FORTRAN, Pascal, C 언어 등

  ㅇ 객체지향 프로그래밍 언어 (OOP Language)
     - 모든 것을 객체로 표현하고 객체를 조립해가며 프로그램을 완성하게 됨
     - 例) Java, Ruby, C++ 언어 등

  ㅇ 함수프로그래밍 언어 (Functional Programming Language)
     - 함수들의 집합/조합으로써 프로그램을 구성
     - 例) LISP, Scheme, Haskell 등

  ㅇ 선언형 프로그래밍 언어 (Declarative Programming Language)
     - 주어진 문제에 정형화된 범용 문제 해결 알고리즘을 적용하는 방식
        . 원하는 데이터가 무엇인지 만 제시하고, 
        . 결과를 얻기위한 정확한 절차/단계를 명시하지 않고,
           .. 즉, `어떻게(=로직)/어떤 절차로` 얻을 것인지가 중요하지 않음 
        . 단지 `무엇`을 할 것인지 만을 정의하는 방식을 이용함
        . 즉, 내부 코드를 어떻게 구현했는지, 데이터 흐름을 어떻게 제어하는지 등을 밝히지 않음
     - 例) SQL 등 

  ㅇ 논리형 프로그래밍 언어 (Logical Programming Language)
     - 기호 논리학에 기반을 두고, 데이터 간의 관계와 논리를 설명해 나가는 언어
        . 프로그램을 기호 논리의 형식으로 표현하고,
           .. 결과 도출을 위해, 논리적 추론을 사용 함
     - 절차적 이라기 보다는 선언적 이므로, 선언언어 라고도 함
     - 例) Prolog

  ※ 크게 대별하면,
     - 절차식 언어 : Pascal, C 언어 등
     - 비 절차식 언어 : 객체지향 언어, 함수형 언어, 선언형 or 논리형 언어


6. [참고용어]

  ※ ☞ 구문(Syntax), 어휘 구조(Lexical Structure), 의미(Semantic) 등 참조
     - 구문/구조/형식(통사론) : 언어가 구성되는 방법/구조 (언어의 구조)
     - 어휘(형태론)           : 구문에 기반을 두고있는 구성요소들 (토큰의 구조)
     - 의미(내용)             : 표현식,문장,프로그램 단위 등이 주는 의미(Meaning)

프로그래밍 언어론
   1. 프로그래밍 언어   2. 프로그래밍 언어론 용어  
프로그래밍언어 종류
   1. 프로그래밍 언어  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"