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)       기술용어해설 소액 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"