Loading

블로그채널

Search !

HTML SQL PHP 자바스크립트 어떤 유형의 언어일까?


모 커뮤니티 사이트에 댓글로 대화하다보니 회원님들 중에서 변화하는 인터넷 환경에 대응하고자 여러가지 준비를 한다고 하시는데요, 그런 열정에 박수를 보냅니다. 그런 분 들 보니까 현실에 안주하는
제 자신이 너무 게으른거 아닌가 반성도 하게 되네요. 귀차니즘이 몸에 배어서 말아죠. 열심히 나무만 보고 있을텐데요, 한 번 쯤 숲도 바라보는게 어떨까 하고 몇 자 남깁니다.

 

HTML, SQL, 자바스크립트, PHP 언어가 어떤 유형의 프로그래밍에 속할까요?

HTML SQL PHP 자바스크립트 어떤 유형의 언어일까?

 

명령형 프로그래밍(Imperative programming)
컴퓨터가 수행할 명령을 순서대로 나열하는 형태의 프로그래밍 언어입니다. 함수형 프로그래밍에서 변수란 개념이 존재하지 않지만 명령형 프로그래밍에서는 변수가 매우 중요한 역할을 합니다. 변수의 상태를 입맛에 맛게 바꾸어주는 것이죠. 쉽게 접할 수 있는 언어이므로 설명은 생략합니다.

명령형 프로그래밍은 절차적 프로그래밍과 같은 말로 쓰이기도 합니다. 대표적으로 포트란, C, 파스칼 등이 있습니다. 명령형 프로그래밍은 객체지향 프로그래밍으로 발전하게 됩니다. 객체지향 언어로는 C++, 자바 등이 있습니다. PHP가 명령형에 속하고 C, C++, 펄, 자바에 영향을 받았습니다. 그래서 기본이 되는 언어를 알고 있다면 습득하는데 큰 문제가 없을 것입니다.

펄은 생소할지 모르지만 외국에서는 널리 활용되는 언어입니다. 텍스트 데이터 처리가 뛰어나 생물정보학에서 DNA 및 RNA 정보를 다룰 때 매우 각광받고 있는 언어입니다.

명령형 프로그래밍(Imperative programming)

명령형 프로그래밍(Imperative programming)

 


 

선언형 프로그래밍(Declarative programming)
- 함수형 프로그래밍 언어 Functional programming
수학 수식이 기본이 되는 언어입니다. 최근 만들어지는 언어 대부분이 함수형 언어에 영향을 받고 있습니다. 간단하게 말하면 팩토리얼을 for문 대신 함수로 구현한다고 보시면 됩니다. 패러다임이 완전 다른 언어라 장벽이 매우 높은 언어입니다. 

 

변수가 없이 어떻게 프로그램하나요? 함수형 언어에서는 그게 가능하죠. 수학적 아름다움이 살아 있는 언어이고 실생활에 쓰이지 않을 것 같은 라틴어 같은 느낌이 드는 언어입니다. 하지만 side effect가 없기 때문에 병렬 프로그래밍 할 때 각광받는 언어입니다.
  > LISP, Skim, F#, Haskel, Erlang

 

- 논리형 프로그래밍 언어 logic programming
논리 문장을 만들어서 표현하고 계산하는 언어입니다. 수학책에 나오는 집합 부분이 논리형 언어가 되는 것이지요. 간단하게 이야기하면 A or B  A와 B의 합집합, A and B 교집합 등등 이런식으로 표현이 됩니다. 논리가 기본이 되며 이산 수학 같은 느낌이 드는 언어입니다.
  > Prolog, SQL

 

- 제한형 프로그래밍 언어 Constraint programming
위키피다이에 선언형 프로그래밍의 한 종류로 분류되어있는데 자세히 모르겠네요.
아시는 분은 설명 부탁드립니다.

 

특수 분야 언어 DSL, Domain-specific languages
일반적인 프로그랭 언어(GPL, General Purpose Language)와 다르게 도메인(영역) 특화된 언어입니다. 특별한 문제를 해결하기 위해 만든 특별한 언어인 셈이지요. GPL에 반대되는 개념이라 매우 광범위 합니다.

 

예를 들어 3D MAX에 애니메이션을 제어하기 위한 스크립트가 있다면 DSL에 해당하는 것이지요. 게임 엔진(퀘이크, 언리얼, 크라이엔진 등)에서 제공하는 스크립트 언어도 여기에 해당됩니다. OpenGL ES 2.0을 기반으로 한 WebGL도 마찬가지입니다. 

 

HTML도 해당 분야에만 사용할수 있으므로 DSL에 속합니다. SQL도 마찬가지로 데이터베이스 질의를 위해 만들어진 특별한 언어이므로 DSL에 해당하지요. 자바스크립트도 특별한 목적으로 만들었으니 DSL에 속합니다.

명령형 DSL과 선언형 DSL로 나뉩니다. 여기서 선언형 DSL에 해당하는 언어는 HTML과 SQL입니다.

 

멀티 패러다임
여러가지 좋은 개념들을 짬뽕처럼 만들어 놓은 언어입니다.  짬뽕 참 맛있지 않습니까? C++언어는 객체지향 언어지만, 점차 STL(Standard Template Library)을 발전시키면서 함수형 패러다임을 차용해 오기도 했어요.

외국에서 각광받는 언어 파이썬 또한 멀티 패러다임 언어입니다. 거의 모든 개념이 다 들어가 있네요. 명령형, 함수형, 객체지향형 개념이 다 들어가 있습니다. 자바스크립트도 마찬가지입니다. 명령형, 함수형, 객체지향형의 패러다임이 모두 들어가 있습니다. 여기서 쓰이는 함수형 언어 개념은 흉내만 냈을 뿐입니다. 그래서 side effect를 처리할 순 없죠.

 

멀리가시는 분들은 나무만 보지말고 때로는 숲도 한번 보시고 가시면 좋겠습니다. 심각하게 볼 필요 없고 이런 것이 있구나 하고 가볍게 지나가시면 될 것 같습니다. 이 글은 위키피디아 글을 보고 쓴 감상문에 지나지 않으며 저는 프로그래밍 언어에 대해 문외한임을 밝힙니다.

 

 [Copyright ⓒ 블로그채널 무단전재 및 재배포 금지]