본문으로 이동
주 메뉴
주 메뉴
사이드바로 이동
숨기기
둘러보기
대문
최근 바뀜
요즘 화제
임의의 문서로
sitesupport
사용자 모임
사랑방
사용자 모임
관리 요청
편집 안내
소개
도움말
정책과 지침
질문방
한울위키
검색
검색
보이기
로그인
개인 도구
로그인
HQ9+ 문서 원본 보기
문서
토론
한국어
읽기
원본 보기
역사 보기
도구
도구
사이드바로 이동
숨기기
동작
읽기
원본 보기
역사 보기
일반
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
보이기
사이드바로 이동
숨기기
←
HQ9+
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
일반 사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
'''HQ9+'''는 몇몇 종류의 [[컴퓨터 프로그램]]을 만드는 데 매우 효과적인, 간단하고 세련된 [[난해한 프로그래밍 언어]]이다. 클리프 비플(Cliff L. Biffle)가 [[2000년]]경에 만들었다. 언어의 이름에서 알 수 있듯이, 이 언어는 네 개의 한 글자 명령어, 즉 H, Q, 9, +를 가지고 있다. * H 명령은 ‘[[Hello world 프로그램|Hello, world!]]’를 출력한다. * Q 명령은 프로그램의 [[소스 코드]]를 출력한다. ([[콰인 (전산학)|콰인]]의 역할을 한다) * 9 명령은 [[99병의 맥주]](99 Bottles of Beer on the Wall) 노래의 가사를 출력한다. * + 명령은 [[가산기]]를 증가시킨다. 그러나 가산기의 값에 접근할 방법이 없어 입출력 관점으로는 [[NOP]] 명령과 동일하며, 그 다음에 나올 언어 HQ9++의 '++' 명령도 마찬가지다. 예를 들어서 <code>HHQ+HQ++</code>라는 코드는 올바른 HQ9+ 프로그램이다. 이 프로그램은 <pre>Hello, world! Hello, world! HHQ+HQ++ Hello, world! HHQ+HQ++</pre>를 출력하면서 가산기를 세 번 증가시킬 것이다. 실제로 HQ9+로 유용한 프로그램을 만들 수는 없으며, [[난해한 프로그래밍 언어]]로 분류된다. 각각의 명령들은 새로운 [[프로그래밍 언어]]를 배우는 초보자들이 하는 공통적인 과제를 표시한다. 예를 들어서, ‘[[Hello world 프로그램|Hello, world!]]’라는 문장을 만드는 프로그램은 언어를 처음 배울 때 하는 과제인데, 몇몇 [[프로그래밍 언어]]는 이런 일을 하기가 상당히 어렵지만 HQ9+에서는 H 명령으로 해결할 수 있는 매우 기초적인 과제이다. 많은 프로그래밍 언어에서 가장 어려운 과제는 [[콰인 (전산학)|콰인]], 즉 자기 자신의 소스 코드를 출력하는 프로그램을 만드는 것이지만 HQ9+에서는 이 또한 자명하다. HQ9+ [[인터프리터]]는 만들기 매우 쉬우며, 여러 언어로 많이 만들어져 있다. 하지만 HQ9+ 프로그램은 입력을 받을 수 없기 때문에 HQ9+로 HQ9+ 인터프리터나 컴파일러를 만드는 것은 불가능하다. == HQ9++ == '''HQ9++'''는 데이비드 모르간-마르(Davia Morgan-mar)에 의해 만들어진 HQ9+의 확장이다. 이 언어는 HQ9+와 하위 호환성을 유지하는 [[객체 지향 프로그래밍|객체 지향적]]인 언어이다. 여기에는 [[가산기]]를 두 번 증가시키면서 객체의 새 인스턴스를 만드는 새로운 명령 <code>++</code>이 추가되었으며, [[정보 은닉]]의 원리에 따라서 이 객체에 접근하는 것은 불가능하다. == HQ9+- == '''HQ9+-'''는 이반 멜리캠프(Ivan Meilkamp)에 의해 만들어진 HQ9++의 확장이다. HQ9+ 및 HQ9++와 하위 호환성을 유지한다. HQ9++의 다섯 명령을 모두 가지고 있으며, 여기에 오류를 일으키는 새로운 명령어 <code>-</code>가 추가되었다. 이것의 기능은 선행하는 연산자에 따라 달라진다. * 프로그램의 처음에 올 경우, 그것은 [[구문 오류]]이다. * H 명령어의 다음에 올 경우, 입출력 오류를 일으킨다. * Q 명령어의 다음에 올 경우, [[무한 피드백]]에 빠진다. * 9 명령어의 다음에 올 경우, [[무한 루프]]에 빠진다. * + 명령어의 다음에 올 경우, 1을 0으로 나눈다. * ++ 명령어의 다음에 올 경우, 객체가 상위 클래스를 하위 클래스로 가지게 된다. 정보 은닉의 원리에 따라 이것을 막는 것은 불가능하다. == 외부 링크 == * {{언어링크|en}} [https://web.archive.org/web/20041214033417/http://www.cliff.biffle.org/esoterica/hq9plus.html HQ9+] * {{언어링크|en}} [http://www.dangermouse.net/esoteric/hq9plusplus.html HQ9++] * {{언어링크|en}} [http://www.dangermouse.net/esoteric/ DM's Esoteric Programming Languages] * {{언어링크|en}} [http://melikamp.com/features/hq9pm.shtml HQ9+-] {{위키데이터 속성 추적}} [[분류:난해한 프로그래밍 언어]]
HQ9+
문서로 돌아갑니다.
검색
검색
HQ9+ 문서 원본 보기
새 주제