프로그래밍 언어 핵

(Hack)은 힙합 가상 머신(HHVM)을 위한 프로그래밍 언어로서, 페이스북PHP의 방언 개념으로 개발한 것이다. 언어 구현체는 오픈 소스이며 BSD 허가서를 통해 배포된다.

프로그래밍 언어 핵
핵 프로그래밍 언어의 로고

핵은 프로그래머들이 동적 타이핑정적 타이핑을 둘 다 사용할 수 있게 한다. 이러한 종류의 자료형 체계는 그래듀얼 타이핑이라고 부르며, 액션스크립트와 같은 다른 프로그래밍 언어에도 구현되어 있다. 핵의 자료형 체계는 함수의 인수, 함수의 반환값, 클래스 속성에 대해 타입을 지정할 수 있게 한다. 그러나 지역 변수의 자료형은 언제나 추론적이므로 지정할 수 없다.

역사

핵은 2014년 3월 20일 선보였다. 새로운 프로그래밍 언어의 발표 이전에 페이스북은 이미 해당 코드를 구현해 놓았고 자사의 웹사이트 중 상당 부분에 배틀 테스트(battle test)를 진행했다.

문법 및 시맨틱

핵 스크립트의 기본 파일 구조는 몇 가지 변경사항이 포함된 PHP 스크립트와 비슷하다. 핵 파일은 PHP 스크립트에 대해 에 반대되는 로 시작한다:

hh echo 'Hello World'; 

PHP와 비슷한 상기의 스크립트는 실행된 이후 다음의 출력을 브라우저로 보낸다:

Hello World 

여기서 중요한 점은 PHP와 달리 핵과 HTML 코드는 서로 섞이지 않는다. 일반적으로 PHP와 HTML 코드를 같은 파일에 다음과 같이 혼재된다:

<html>     <head>         <title>PHP Testtitle>     head>     <body>                   echo '

Hello World

'
; ?> body> html>

이러한 유형의 코드는 핵에 의해 지원되지 않는다. 이 경우 XHP나 다른 탬플릿 엔진의 사용이 필요하다.

함수

핵 언어에서는 함수의 인수, 함수의 반환값에 대해 자료형을 지정할 수 있다. 핵의 함수는 그러므로 다음과 같은 자료형으로 어노테이션(annotation) 처리를 할 수 있다:

hh // Hack functions are annotated with types. function negate(bool $x): bool {     return !$x; } 

같이 보기

각주

외부 링크