맨위로가기

HQ9+

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

1. 개요

HQ9+는 문자열 "Hello, world!"를 출력하는 H, 소스 코드를 출력하는 Q, "99 Bottles of Beer" 가사를 출력하는 9, 누산기를 증가시키는 +의 네 가지 명령어를 가진 난해한 프로그래밍 언어이다. HQ9+는 파생 언어로 HQ9++, HQ9+-, HQ9F+가 존재한다. HQ9+ 인터프리터는 간단하게 구현될 수 있으며, 파이썬, C, 자바스크립트 등으로 작성된 예시가 있다.

2. 명령어

H 명령어는 문자열 "Hello, world!"를 출력한다. Q 명령어는 프로그램의 소스 코드를 출력한다(쿼인 (프로그래밍)). 9 명령어는 『99 Bottles of Beer』의 가사를 출력한다. 이 노래는 미국의 숫자 세기 노래로, 프로그래밍 예제로 자주 이용된다. \+ 명령어는 누산기를 1만큼 증가시킨다.

2. 1. H

H 명령어는 문자열 "Hello, world!"를 출력한다.

```source

  • H 명령어는 문자열 "Hello, world!"를 출력한다.
  • Q 명령어는 프로그램의 소스 코드를 출력한다(참고: 쿼인 (프로그래밍)).
  • 9 명령어는 『''''』(미국의 숫자 세기 노래로, 프로그래밍의 예제로 자주 이용된다)의 가사를 출력한다.
  • + 명령어는 누산기를 증가(1만큼 증가)시킨다.


HQ9+의 프로그램은, 예를 들어 다음과 같다.

HHQ+HQ++

이 프로그램은 "Hello, world! Hello, world! HHQ+HQ++ Hello, world! HHQ+HQ++"를 표시하고, 누산기를 세 번 증가시킨다.

2. 2. Q

HQ9+에서 Q 명령어는 프로그램의 소스 코드를 출력한다(쿼인 (프로그래밍)). 예를 들어, `HHQ+HQ++` 프로그램을 실행하면 "Hello, world! Hello, world! HHQ+HQ++ Hello, world! HHQ+HQ++"가 출력된다.

2. 3. 9

9 명령어는 『99 Bottles of Beer』의 가사를 출력한다. 이 노래는 미국의 숫자 세기 노래로, 프로그래밍 예제로 자주 이용된다.

2. 4. +

\+ 명령어는 누산기를 1만큼 증가시킨다.

```

  • H 명령어는 문자열 "Hello, world!"를 출력한다.
  • Q 명령어는 프로그램의 소스 코드를 출력한다(참고: 쿼인 (프로그래밍)).
  • 9 명령어는 『''''』(미국의 숫자 세기 노래로, 프로그래밍의 예제로 자주 이용된다)의 가사를 출력한다.
  • + 명령어는 누산기를 증가(1만큼 증가)시킨다.


HQ9+의 프로그램은, 예를 들어 다음과 같다.

HHQ+HQ++

이 프로그램은 "Hello, world! Hello, world! HHQ+HQ++ Hello, world! HHQ+HQ++"를 표시하고, 누산기를 세 번 증가시킨다.

3. 파생 언어

3. 1. HQ9++

HQ9++는 데이비드 모르간-마르(David Morgan-Mar)가 만든 HQ9+의 확장판이다. HQ9+와 하위 호환성을 유지하는 객체 지향적인 언어이다. `++` 명령어가 추가되었으며, 가산기를 두 번 증가시키고 객체의 새 인스턴스를 생성한다. 정보 은닉의 원리에 따라 이 객체에 접근하는 것은 불가능하다.

3. 2. HQ9+-

'''HQ9+-'''는 이반 멜리캠프(Ivan Meilkamp)에 의해 만들어진 HQ9++의 확장이다. HQ9+ 및 HQ9++와 하위 호환성을 유지한다. HQ9++의 다섯 명령을 모두 가지고 있으며, 여기에 오류를 일으키는 새로운 명령어 `-`가 추가되었다. 이것의 기능은 선행하는 연산자에 따라 달라진다.

  • 프로그램의 처음에 올 경우, 그것은 구문 오류이다.
  • H 명령어의 다음에 올 경우, 입출력 오류를 일으킨다.
  • Q 명령어의 다음에 올 경우, 무한 피드백에 빠진다.
  • 9 명령어의 다음에 올 경우, 무한 루프에 빠진다.
  • + 명령어의 다음에 올 경우, 1을 0으로 나눈다.
  • ++ 명령어의 다음에 올 경우, 객체가 상위 클래스를 하위 클래스로 가지게 된다. 정보 은닉의 원리에 따라 이것을 막는 것은 불가능하다.

3. 3. HQ9F+

4. 예제

5. 구현

HQ9+의 명령 체계는 프로그램 초보자나 새로운 프로그래밍 언어를 학습하는 프로그래머들이 자주 사용하는 예제 그 자체이다. 예를 들어 "문자열 'Hello, world!'를 출력한다"라는 예제는 매우 일반적인 것이지만, 이러한 종류의 처리를 수행하는 것이 매우 어려운 프로그래밍 언어도 존재한다. 하지만 HQ9+에게는 극히 쉬운 문제로, 단순히 "H"라고 명령하기만 하면 된다 (라고 하지만, 문제의 정답 자체가 언어 사양에 포함되어 있다). 또한, "자신의 소스 프로그램을 출력한다"라는 예제는 많은 프로그래밍 언어에게 가장 어려운 과제 중 하나이지만, 이 또한 HQ9+에게는 아무것도 아닌 문제이다 (이 또한 문제를 풀고 있는 것이 아니라, 언어 사양에 정답이 포함되어 있을 뿐이다).

HQ9+의 인터프리터를 작성하는 것은 매우 간단하기 때문에, 다수의 HQ9+ 처리계가 존재한다. 예를 들어, 어떤 인터프리터는 파이썬으로 작성되었으며, 작성 시간은 약 5분, 크기는 단 18행이다. 또한 C 언어로 작성된 컴파일러는 HQ9+ 프로그램을 C 코드로 변환하며, 크기는 약 40행이다. 그리고 이 인터프리터는 자바스크립트로 작성되었으며, 단계별 실행이 가능하다.

HQ9+에는 입력 기능이 없기 때문에, HQ9+의 인터프리터나 컴파일러를 HQ9+ 자체로 작성하는 것은 불가능하다.



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

문의하기 : help@durumis.com