카테고리 없음

[Ocaml] Ocaml 들어가기

우당탕탕코딩일기 2024. 3. 8. 11:10

OCaml 은 ML family 에 속하는 프로그래밍 언어이다.

ML 이란, 범용 프로그래밍 언어의 일종으로 안전한 타입 시스템이 특징이다.

OCaml 특징

  • 함수형 프로그래밍 언어이다.
    • 함수가 일등시민 !
  • Strongly typed 언어이다.
    • 모든 변수 및 표현식의 타입이 컴파일 시점에 결정됨.
  • Type inference
    • 타입은 있는데 타입을 우리가 쓸 필요없다. 컴파일러(타입 시스템)가 자동으로 표현식의 타입을 추론해줌.
  • Polymorphism 지원
    • 데이터 구조 및 알고리즘 일반적으로 구현된다.
  • Pattern mathching
    • Case 분석 지원
  • 모듈 시스템
    • 프로그램을 여러 모듈로 나누어 구현
  • Ocaml 은 Caml 에 OOP 개념 추가하여 확장한 것.

OCaml 장점

  • 함수형 언어라 간결함(깔끔함)
    • C++, Java 에서의 람다식 도입
  • 함수형 언어쓰면 알아보기 쉽다(명시적)
  • Ocaml 은 함수형 언어의 대표격이다.

기타 특징들

  • Ocaml 은 확장자로 .ml 을 쓴다.

  • Ocaml 은 main 함수가 없다. (like python)

    • c, java, c++ 은 main 있으나 ocaml 은 python 처럼 없음
  • Ocaml의 컴파일러는 ocamlc

    • C/C++(gcc,clang),Java(javac)
  • Ocaml의 빌드 시스템은 dune

    • C/C++(Bazel,CMake),Java(Maven,Gradle,Ant)
  • Ocaml 은 타입을 값의 집합으로 이해한다

    • 타입을 값의 집합으로 이해함.

    • 3 → int ( 3이라는 녀석이 int 라는 집합의 원소이다.)

    • 변수 x → char (x 에 넣는 것, 혹은 x 에서 뺐을 때 그것은 char 집합의 원소임)

    • 1+2 → int (1+2 계산 결과가 int 의 원소이기 때문에 int)

    • 함수의 리턴타입 → void (함수의 반환 값이 공집합인 void 의 원소이다)

728x90