맨위로가기

핵 (프로그래밍 언어)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

Hack은 2014년 3월에 페이스북에서 개발한 프로그래밍 언어이다. PHP와 원활하게 상호 운용되도록 설계되었으며, 정적 타이핑을 도입하여 타입 힌트를 확장한다. PHP 7에도 영향을 미쳐, 동일한 구문의 형식 시스템을 탑재하고 있다. Hack은 PHP 스크립트와 유사한 파일 구조를 가지며, 함수 인수와 반환값에 자료형을 지정할 수 있다.

더 읽어볼만한 페이지

  • 2014년 개발된 프로그래밍 언어 - 스위프트 (프로그래밍 언어)
    2014년 애플 세계 개발자 컨퍼런스에서 처음 공개된 스위프트는 크리스 래트너가 개발한 애플의 범용 프로그래밍 언어로서, Objective-C를 대체하며 다양한 플랫폼 지원, 모던 문법, 안정성, 인터랙티브한 개발 환경, SwiftUI 등의 특징을 가진다.
  • 페이스북 - 해시태그
    해시태그는 2007년 트위터에서 관심 주제를 묶기 위해 제안되어 마이크로블로깅 네트워크에서 널리 사용되기 시작했으며, 다양한 분야에서 활용되고 언어학적 분석의 대상이 되기도 한다.
  • 페이스북 - 페이스북 워치
    페이스북 워치는 페이스북에서 제공하는 주문형 비디오 서비스로, 오리지널 프로그램과 라이선스 콘텐츠를 제공하며 광고 수익을 창출한다.
  • PHP 소프트웨어 - HHVM
    HHVM은 페이스북에서 개발한 PHP 및 Hack 언어 실행 엔진으로, JIT 컴파일을 통해 높은 성능을 제공하며 웹 개발 분야에 새로운 가능성을 제시했다.
  • PHP 소프트웨어 - 텍스트큐브
    텍스트큐브는 태터툴즈에서 발전한 블로그 엔진으로, OpenID, BlogAPI 지원, 1-user-multi-blog, multi-user-1-blog 기능 등을 제공하며, 소셜 네트워크 연동, 반응형 스킨 및 모바일 지원 강화 등의 버전 업데이트를 거쳤다.
핵 (프로그래밍 언어) - [IT 관련 정보]에 관한 문서
개요
Hack 로고, 검은색 배경에 흰색 소문자
Hack 로고
설계자줄리엔 베를라게, 알록 멩라자니, 드류 파로스키, 기타
개발자메타 플랫폼스
발표일2014년
최신 안정화 버전 날짜}}
유형 체계정적 타이핑, 동적 타이핑, 약한, 점진적
플랫폼교차 플랫폼
라이선스MIT
웹사이트Hack 공식 웹사이트
영향을 받은 언어PHP, OCaml, Java, C#, Scala, 하스켈
프로그래밍 패러다임
패러다임다중 패러다임: 명령형, 함수형, 객체 지향, 절차적, 반사적
계열PHP

2. 역사

핵은 2014년 3월 20일에 공개되었다.[23] 새로운 프로그래밍 언어 발표 이전에 페이스북은 이미 해당 코드를 구현하여 자사 웹사이트의 상당 부분에 대해 배틀 테스트(battle test)를 진행했다.[23][7][14] 핵은 공개 이전부터 Meta(구 Facebook) 내부에서 널리 사용되었으며, 회사의 실제 환경에서 엄격한 테스트를 거쳐 개발되었다.[14]

핵의 등장은 PHP에도 영향을 주었으며, 2015년 12월에 출시된 PHP 7은 핵과 동일한 구문의 형식 시스템을 탑재하고 있다.

3. 특징

핵(Hack)은 널리 사용되는 오픈소스 스크립팅 언어이며 웹 개발에 중점을 두고 HTML에 포함될 수 있는 PHP와 원활하게 상호 운용되도록 설계되었다. 유효한 PHP 스크립트 대부분은 핵에서도 유효하지만, 자주 사용되지 않는 많은 PHP 기능과 언어 구성 요소는 핵에서 지원되지 않는다.[8]

핵은 정적 타이핑을 도입하여 PHP 5에서 사용 가능한 타입 힌트를 확장한다. 스칼라 타입(예: 정수 또는 문자열)에 대한 새로운 타입 힌트를 추가하고, 클래스 속성이나 함수 반환 값 등에 대한 타입 힌트 사용을 확장한다. 그러나 지역 변수의 타입은 지정할 수 없다.[6] 핵은 점진적 타이핑 시스템을 사용하므로, 기본 모드에서는 타입 주석이 추론할 수 없는 경우에도 필수적이지 않다. 타입 시스템은 작성자가 올바르다고 가정하고 코드를 허용한다.[9] 그러나 해당 주석을 요구하고 따라서 완전히 정확한 코드를 적용하는 "엄격한" 모드를 사용할 수 있다.[10]

핵의 특징으로는, 웹 개발에서 널리 사용되는 PHP와 매끄럽게 연동될 수 있다는 점을 가장 먼저 들 수 있다. PHP로 작성된 대부분의 스크립트는 그대로 핵 스크립트로 실행 가능하다.[15] 핵의 형식 시스템에서는 함수의 인수와 반환값, 클래스의 프로퍼티에 형식을 지정할 수 있다(지역 변수는 불가능).[16][17]

4. 문법 및 시맨틱

핵 스크립트의 기본적인 파일 구조는 PHP 스크립트와 거의 같지만 몇 가지 다른 점이 있다. PHP가 `[11]

```php


echo 'Hello World';

```

위 스크립트는 PHP와 매우 유사하며, 실행하면 다음과 같은 출력이 브라우저에 표시된다.

```text

Hello World

```

핵 코드는 PHP와 달리 HTML에 포함할 수 없다. PHP에서는 다음과 같이 PHP와 HTML을 하나의 파일에 작성할 수 있다.

```php





PHP Test





Hello World

'; ?>





```

하지만 핵에서는 이 구문을 지원하지 않는다. 이러한 경우에는 Meta가 개발한 XHP나 별도의 템플릿 엔진을 사용해야 한다.[15]

4. 1. 함수

핵에서는 함수의 인수와 반환값에 자료형을 지정할 수 있다. 자료형 지정은 다음과 같이 한다.

```php


// Hack 함수에서는 다음과 같이 자료형을 지정한다.

function negate(bool $x): bool {

return !$x;

}

참조

[1] 웹사이트 Where Credit Belongs for Hack http://www.serpentin[...] 2014-03-28
[2] 웹사이트 facebook/hhvm: hhvm, hphp, hack, License https://github.com/f[...] Meta Platforms 2018-04-11
[3] 웹사이트 Facebook's Hack, HHVM, and the future of PHP http://radar.oreilly[...] O'Reilly Media 2014-04-03
[4] 웹사이트 Facebook Introduces 'Hack,' the Programming Language of the Future https://www.wired.co[...] Wired 2014-03-20
[5] 웹사이트 The Ins and Outs of Gradual Type Inference https://www.cs.umd.e[...] Association for Computing Machinery (ACM) 2012-01-01
[6] 웹사이트 Hack Manual: Hack and HHVM – Type Annotations https://docs.hhvm.co[...]
[7] 웹사이트 Hack: a new programming language for HHVM https://code.fb.com/[...] Facebook 2014-03-20
[8] 웹사이트 Inconsistencies: Introduction https://docs.hhvm.co[...]
[9] 웹사이트 Hack Manual: Partial Mode https://docs.hhvm.co[...]
[10] 웹사이트 Hack Manual: Strict Mode https://docs.hhvm.co[...]
[11] 웹사이트 HHVM 4.0.0 https://hhvm.com/blo[...] 2019-02-11
[12] 웹사이트 Contributors to facebook/hhvm https://github.com/f[...] Github.com
[13] 웹사이트 Facebook Introduces 'Hack,' the Programming Language of the Future http://www.wired.com[...] wired.com 2014-03-20
[14] 웹사이트 Hack: a new programming language for HHVM https://code.faceboo[...] Code.facebook.com
[15] 웹사이트 Hack and HHVM: Unsupported PHP Features in Hack - Manual http://docs.hhvm.com[...] Docs.hhvm.com
[16] 웹사이트 Hack and HHVM: Type Annotations - Manual http://docs.hhvm.com[...] Docs.hhvm.com
[17] 웹사이트 Hack and HHVM: Type Inference - Manual http://docs.hhvm.com[...] Docs.hhvm.com
[18] 웹인용 facebook/hhvm: hhvm / hphp / hack / LICENSE https://github.com/f[...] Facebook 2014-03-20
[19] 웹인용 Facebook’s Hack, HHVM, and the future of PHP http://radar.oreilly[...] 오라일리 미디어 2014-04-03
[20] 웹인용 Facebook Introduces 'Hack,' the Programming Language of the Future https://www.wired.co[...] Wired 2014-03-20
[21] 웹인용 The Ins and Outs of Gradual Type Inference https://www.cs.umd.e[...] ACM 2012-01-01
[22] 웹인용 Hack Manual: Hack and HHVM – Type Annotations https://docs.hhvm.co[...]
[23] 웹인용 Hack: a new programming language for HHVM https://code.faceboo[...] 페이스북
[24] 웹인용 Hack Manual: Hack and HHVM – Unsupported PHP Features in Hack https://docs.hhvm.co[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com