나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2025-02-24 01:00:38

GHC


Haskell
문법 · 특징(모나드) · 개발 환경(GHC) · 학습 · 도서 · 사용 소프트웨어 · 사용 기업
<colcolor=#fff> GHC
Glasgow Haskell Compiler
파일:Haskell 로고.svg파일:Haskell 로고.svg
<colbgcolor=#5e5086> 종류 Haskell 컴파일러
최초 개발자 Simon Marlow, Simon P Jones
촐시 1992년 12월
안정 버전 v9.12.1 (2024년 12월 16일)
언어 Haskell, C
라이선스 BSD 라이선스
링크 # Git
1. 개요2. 백엔드3. GHCi4. GHC 확장5. 관련 문서

[clearfix]

1. 개요

프로그래밍 언어 Haskell컴파일러 구현체.

2. 백엔드

기본적으로 각 플랫폼에 맞는 네이티브 코드로 컴파일되지만, JavaScript 등 다른 언어로 컴파일하는 것도 가능하다.[1] 내부적으로 하스켈 코드를 Cmm이라는 중간 언어로 번역한 후 이를 타켓으로 지정된 백엔드에서 알맞은 최종 결과물로 변환한다. 이는 -f 플래그로 변경 가능하며, 지원 가능한 백엔드 구현체는 다음과 같다.

3. GHCi

interactive GHC의 약자[3]로 터미널 환경에서 사용할 수 있는 REPL 및 기초적인 디버거 구현체이다. 일반적으로 ghci 명령어로 실행할 수 있지만 Stack과 같이 사용하는 경우 stack repl을 입력해도 GHCi를 실행한다.

하스켈 코드 및 표현식 외에도 GHCi에서만 사용할 수 있는 간단한 명령어가 있으며, :으로 시작한다.

4. GHC 확장

GHC has more flags than the UN.
GHC 플래그가 UN 깃발 수보다 많다.
- shapr[4]

GHC 확장(extension)은 하스켈 컴파일러 GHC에서 제공하는 추가 기능이다. 소스 코드 상단에 선언해서 확장을 사용할 수 있다. 예를 들어 FooBar라는 이름의 확장을 사용하려면 아래처럼 적는다.
{-# LANGUAGE FooBar #-}
GHCi 인터프리터에서 확장을 사용하려면 아래와 같이 입력한다.
:set -XFooBar
다음과 같은 목록 등이 있다. 확장의 종류가 너무 많아서 여기에 모두 적기는 곤란하다.
한편 언어 에디션(language edition)은 여러 GHC 확장의 묶음이다. 언어 에디션별로 지원하는 확장의 개수는 아래 표와 같다.[5]
에디션 확장 개수 GHC 버전
Haskell98 10
Haskell2010 7
GHC2021 47 9.2.1부터
GHC2024 54 9.10.1부터

파일:CC-white.svg 이 문단의 내용 중 전체 또는 일부는
문서의 r548
, 15번 문단
에서 가져왔습니다. 이전 역사 보러 가기
파일:CC-white.svg 이 문단의 내용 중 전체 또는 일부는 다른 문서에서 가져왔습니다.
[ 펼치기 · 접기 ]
문서의 r548 (이전 역사)
문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

5. 관련 문서


[1] 다만 JavaScript backend는 현재 preview 기능으로, 일반적으로 배포되는 GHC에서는 쓸 수 없다.[2] generally not included any more having been deprecated around GHC 7.0. #[3] The “i” stands for “Interactive” #[4] QuotesPage하스켈 위키[5] Controlling editions and extensionsGHC 깃랩