검수요청.png검수요청.png

카멜

해시넷
218.146.11.79 (토론)님의 2019년 8월 21일 (수) 09:30 판
이동: 둘러보기, 검색

카멜(Caml)은 다중 패러다임, 범용 프로그래밍 언어이다. 1985년 컴퓨터과학 및 응용수학 분야를 연구하고 있는 프랑스 연구소 인리아(INRIA)에 의해 개발 배포되었다.

개요

  • 카멜(Caml)은 "Categorical Abstract Machine Language"(범주형 추상 기계 언어)의 약자로, 프로그램의 안전과 신뢰성을 최우선으로 두고 설계된 범용 프로그래밍 언어이다. 표현력이 뛰어나면 배우기 어렵다는 보통의 언어와 다르게, 카멜은 표현력이 뛰어나면서 동시에 배우고 사용하기 쉽다. 카멜은 기능적, 명령형 및 객체 지향 프로그래밍 스타일을 지원한다.[1]
  • 대문자로 된 단어를 통합하거나 단어의 하나 이상의 구성 요소를 대문자로하여 만든 새 텍스트 기호이며 이러한 식별자의 모양은 낙타의 개요와 유사하다.

[2]

카멜의 코딩 스타일이라 함은 기본적으로 소스 코드를 작성할 때의 불문율적인 편집 규약에 가깝다. 이런 것 때문에, 거대한 프로젝트는 미리 지켜야 할 코딩 스타일을 정의해놓기까지 한다. 여러 단어를 연달아 사용할 때 각 단어의 첫 글자를 대문자로 적되, 맨 앞에 오는 글자는 소문자로 표기한다. 코딩 이후 모습이 낙타의 등에 있는 혹과 같다고 하여 카멜(Camel) 표기법이라고 부른다. 예로는 camelVariable과 같은 식으로 쓴다. Java의 권장 표기법이다.[3]

특징

  • 구조체와 클래스 이름의 첫 글자는 대문자로, 나머지 글자는 소문자로 작성한다.
  • 2개 이상의 복합 단어는 단어별로 끊어 첫 글자는 대문자로, 나머지는 소문자로 작성한다.
  • 이미 축약된 약어는 모두 대문자로 작성 가능하다.
  • 프로퍼티나 메소드를 선언할 때는 소문자로 시작한다.
  • 언더바( _ ) 로 단어를 연결하는 방식은 지양한다.

(참고: 객체 내에 사용되는 프로퍼티, 메소드 이름을 쓸 때에는 첫 글자를 소문자로 쓰며 단어 구분만 대문자로 표시해준다고 한다. 예를 들어, personName 이런 식으로 쓴다.[4])

종류

  • 상단 낙타 케이스 - PascalCase : ThisIsAnExample. thisIsNotAnExample이다.
  • 낮은 낙타 경우 - thisIsAnExample. 티hisIsNotAnExample이다.

[5]

강점

강력한 타입 시스템 parametric polymorphism을 구비하고 있다. 때문에 프로그램 작성에 있어서 용이한 부분이 많다. 또 사용자 정의 대수 데이터 유형 및 패턴이 매칭되며, 자동으로 메모리를 관리하는 기능도 제공한다. 독립 실행형 응용프로그램의 개별 컴파일이 가능하고, 정교한 모듈 시스템을 갖추고 있어서 프로그래머에게 편의성을 제공한다. 표현형 객체 지향 계층 언어이며, 효율적인 네이티브 코드 컴파일러를 제공한다.

역사

카멜 언어는 1987년 프랑스 과학 기술원 인리아(INRIA)의 연구원에 의해 처음 만들어졌다. 이후 카멜에 객체지향, 모듈 시스템 등을 추가한 오카멜(OCaml)이 출시되었고, 카멜 언어를 경량화시켜 구현한 카멜 라이트(Caml Light)도 만들었으나 현재는 일반적으로 오카멜만 사용하고 있다.


각주

  1. Caml, "caml", Caml language home, 2018-11-16
  2. * 위키 , 〈낙타 케이스
  3. * 위키백과, 〈[1]
  4. sibalja, 〈카멜표기법이란 무엇인가?〉, 프로그래밍 관련, 2016-05-16
  5. * 위키 , 〈낙타 케이스

참고자료

같이 보기


  검수요청.png검수요청.png 이 카멜 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.