"Hello, World!" 프로그램.
"Hello, World!" program"Hello, World!" 프로그램은 일반적으로 사용자 입력을 무시한 채 "Hello, World!"와 유사한 메시지를 화면(또는 콘솔)에 출력(또는 표시)하는 간단한 컴퓨터 프로그램입니다. 대부분의 범용 프로그래밍 언어에서 작은 코드 조각인 이 프로그램은 언어의 기본 구문을 설명하는 데 사용됩니다. "Hello, World!" 프로그램은 종종 새로운 프로그래밍 언어를 가진 학생이 처음으로 작성하는 [1]것이지만, 이러한 프로그램은 소스 코드를 컴파일하거나 실행하려는 컴퓨터 소프트웨어가 올바르게 설치되었는지, 그리고 그 운영자가 소스 코드를 사용하는 방법을 이해하는지 확인하기 위한 상태 검사로도 사용될 수 있습니다.
역사
프로그래밍이 가능한 컴퓨터가 개발된 이래로 작은 테스트 프로그램이 존재해 왔지만, "Hello, World!"라는 문구를 테스트 메시지로 사용하는 전통은 1978년 책 C Programming Language의 예시 프로그램의 영향을 받았으며,[2] BCPL에서 더 일찍 사용되었을 가능성이 있습니다. 이 예제 프로그램은 도서 인쇄물의 예시 프로그램으로 1974년 Bell Laboratories 내부 각서에서 Brian Kernighan이 C: A Tutorial:[3]
주된( ) { 활자로 인쇄한("안녕, 세상"); }
위 예제에서 함수는 프로그램 실행을 시작할 위치를 정의합니다. 기능 본체는 "인쇄 형식"을 의미하는 함수에 대한 호출인 단일 문으로 구성됩니다. 이 문은 매개 변수로 전달되는 모든 것(이 경우 문자열)을 콘솔로 출력합니다.
C-언어 버전은 Kernigan의 1972 A Tutorial Introduction to the Language B에 선행되었으며,[4] 여기서 프로그램의 최초의 알려진 버전은 외부 변수를 설명하기 위해 사용된 예제에서 찾을 수 있습니다.
주된( ) { 외부의 a, b, c; 퍼차(a); 퍼차(b); 퍼차(c); 퍼차('!*n'); } a '지옥.'; b 'o, w'; c '천하의';
위의 프로그램은 새로운 라인 캐릭터를 포함하여 단말기에 인쇄합니다. B에서 문자 상수는 4개의 ASCII 문자로 제한되므로 구문은 여러 변수로 구분됩니다. 터미널에 인쇄된 자습서의 이전 예와 문구는 표현을 위해 몇 개의 문자 상수가 필요한 약간 더 긴 인사말로 소개되었습니다.
전문 파일(Jargon File)은 "안녕, 세계"가 1967년 BCPL 언어에서 유래했다고 보고합니다.[5] 컴퓨팅 외부에서 정확한 문구를 사용하기 시작한 것은 10여 년 전부터였는데, 이 문구는 뉴욕 라디오 디스크 자키 윌리엄 B의 캐치프레이즈였습니다. 윌리엄스는 1950년대에 시작했습니다.[6]
변주곡
"헬로, 월드!" 프로그램은 언어마다 복잡성이 다릅니다. 일부 언어, 특히 스크립팅 언어에서는 "Hello, World!" 프로그램을 단일 문으로 작성할 수 있는 반면, 다른 언어(특히 낮은 수준의 언어)에서는 더 많은 문이 필요할 수 있습니다. 예를 들어, Python에서는 문자열을 인쇄한 후 새 행을 인쇄하기 위해 쓰기만 하면 됩니다. print("Hello, World!")
. 반면, C++[7]의 등가 코드는 입출력 소프트웨어 라이브러리의 Import, 엔트리 포인트의 수동 선언, 그리고 출력 문자열을 표준 출력 스트림으로 전송해야 한다는 명시적인 명령을 요구합니다.
"Hello, World!"라는 문구는 선두 H와 W의 대문자화, 쉼표나 느낌표의 존재 등 케이싱과 구두점에서 다양한 편차를 보였습니다. 일부 장치는 대문자만 지원하는 시스템의 모든 대문자 버전과 같은 특정 변형으로 형식을 제한하는 반면, 일부 난해한 프로그래밍 언어는 약간 수정된 문자열을 인쇄해야 할 수도 있습니다. 예를 들어, 최초의 사소하지 않은 말볼지 프로그램이 인쇄되었습니다.""HELLO WORLD", 이것은 충분히 좋다고 결정되었습니다.[8][unreliable source?] 예를 들어 바둑 프로그래밍 언어의 튜토리얼은 영어와 중국어 또는 일본어를 모두 출력하여 프로그래밍 언어의 내장 유니코드 지원을 보여줍니다.[9] 또 다른 주목할 만한 예는 러스트 프로그래밍 언어로, 관리 시스템이 새 프로젝트를 생성할 때 자동으로 "Hello, World" 프로그램을 삽입합니다.
일부 언어는 단순한 예를 보여주는 정신을 유지하면서 "Hello, World!" 프로그램의 기능을 변경합니다. 기능 프로그래밍 언어인 리스프, ML, 하스켈은 재귀적 기법을 강조하는 반면, 원래의 예들은 I/O를 강조하여 부작용을 발생시켜 순수 기능 프로그래밍의 정신을 위배하는 "Hello, World!"를 요인 프로그램으로 대체하는 경향이 있습니다. "Hello, World!"(어셈블리, C, VHDL)를 인쇄할 수 있는 언어는 텍스트 출력이 어렵거나(다른 컴퓨터와의 통신이 필요함) 존재하지 않는 임베디드 시스템에서도 사용할 수 있습니다. 마이크로컨트롤러, 현장 프로그래밍 가능 게이트 어레이 및 CPLD와 같은 장치의 경우 "Hello, World!"를 점멸 LED로 대체할 수 있으며, 이는 구성 요소 간의 타이밍 및 상호 작용을 보여줍니다.[10][11][12][13][14]
데비안 및 우분투 리눅스 배포판은 명령어와 함께 호출할 수 있는 소프트웨어 패키지 관리자 시스템을 통해 "Hello, World!" 프로그램을 제공합니다. 이 제품은 상태 점검 및 소프트웨어 패키지 설치의 간단한 예 역할을 합니다. 개발자들을 위해, 그것은 전통적으로 또는 디헬퍼를 사용하여 .deb 패키지를 만드는 예를 제공하며, 사용된 버전인 GNU Hello는 GNU 프로그램을 작성하는 예의 역할을 합니다.[15]
텍스트 출력과 대조적으로 그래픽 출력을 생성하는 "Hello, World!" 프로그램의 변형도 보여졌습니다. Sun은 확장 가능한 벡터 그래픽을 기반으로 자바에서 "Hello, World!" 프로그램을 시연했으며 [16]XL 프로그래밍 언어는 3D 컴퓨터 그래픽을 사용하여 회전하는 지구 "Hello, World!"를 특징으로 합니다.[17] 마크 구즈다이얼과 엘리엇 솔로웨이는 그래픽과 사운드를 텍스트처럼 쉽게 조작할 수 있는 지금 "안녕, 세상" 테스트 메시지가 구식일지도 모른다고 제안했습니다.[18]
타임 투 헬로 월드
"Time to hello world" (TTHW)는 주어진 프로그래밍 언어로 "Hello, World!" 프로그램을 작성하는 데 걸리는 시간입니다. 이것은 프로그래밍 언어의 사용 편의성을 측정하는 하나의 척도입니다. 프로그램은 언어에 익숙하지 않은 사람들을 위한 소개로 사용되기 때문에 더 복잡한 "Hello, World!" 프로그램은 프로그래밍 언어가 덜 접근적임을 나타낼 수 있습니다.[19] 이 개념은 프로그래밍 언어를 넘어 API로 확장되었습니다. 이는 새로운 개발자가 기본적인 예제를 작업하는 것이 얼마나 간단한지를 측정하기 위한 것입니다. 시간이 짧을수록 개발자가 채택하기 쉬운 API를 나타냅니다.[20][21]
"Hello, World!" 프로그램이 포함된 위키피디아 기사
- ABAP
- 아다
- 알도르
- 알골
- 알골60
- 앰비언트 토크
- 아미가E
- 아파치 클릭
- 아파치 젤리
- 아파치 위켓
- 앱자
- 애플스크립트
- 애플소프트 베이직
- 호
- 아타리 어셈블러 편집기
- 오토리스프
- 아비신스
- AWK
- 기본의
- 기본 어셈블리 언어
- BCPL
- 비트니크
- 베펑
- 베타.
- 블리츠 베이직
- 브레인퍽
- C
- 카셰 오브젝트스크립트
- 카이로
- C/AL
- 탄소
- 카시오 베이직
- 매력
- 체리파이
- 깨끗한
- 클리퍼
- C++
- 다#
- 코볼
- 코브라
- 공통 중급 언어
- 크리스탈
- 싸이튼
- 다트
- 다윈
- 데이터 일반 노바
- 데노
- DOOR 확장 언어
- 쉬운 프로그래밍 언어
- eC
- Эль-76
- 엘릭서
- 에뇨
- 확장 가능한 내장 언어
- எழில்
- 판톰
- FastAPI
- j니르
- 플라스크
- 플릭스
- 포
- 포트란
- 요새
- 프리베이직
- 고돗
- 구글 가젯
- GNU 스몰토크
- 하버
- 해스켈
- 할리우드
- HTML
- HTML 응용프로그램
- IBM 오픈 클래스
- 이드리스
- 인터칼
- 인터넷 기초 수업
- 이오
- IRAF
- J
- 옥
- Jam.py
- 자바
- JavaFX 스크립트
- 자바스크립트
- 제이페이스
- 유도
- K
- 커널
- 키비
- 케이멜레온
- 리브레 로고
- 리스프
- 라이브스크립트
- 롤코드
- 루아
- MAC/65
- MACRO-10
- MACRO-11
- 미친
- 마직
- 말볼게
- 매트랩
- 수성.
- 마이크로 파이썬
- 마이크로소프트 스몰 베이직
- 미들렛 파스칼
- mIRC 스크립트 언어
- MMIX
- 모키토
- 모듈라-3
- 모조
- 모나드
- MUMPS
- MXML
- 네메를레
- 넷와이드 어셈블러
- 뉴스피크
- 님
- NWScript
- 옴니마크
- 오파
- OpenEdge 고급 비즈니스 언어
- 오픈 프로그래밍 언어
- 오리엘
- 파라세일
- 앵무새어셈블리언어
- 앵무새 중간 표현
- 파스칼
- PCASTL
- PDP-8
- 펄
- 펄 모듈
- PHP
- 플랙
- 플루아
- 플러스
- 포스트스크립트
- 파워베이직
- 프롤로그
- 퓨어 베이직
- 순수 데이터
- 퓨어스크립트
- PyGTK
- 파이썬
- Q
- QB64
- 퀵베이직
- 랙
- 라켓
- 라쿠
- 리액트
- 반응 네이티브
- 레볼
- 리팔
- RGtk2
- 로봇 프레임워크
- 루비
- 녹
- SARL
- 스칼라
- 실랩
- 긁다
- 세드
- 자신
- 셰익스피어
- 시뮬라
- 스몰베이직
- 스몰토크
- 표준 ML
- 표준 위젯 툴킷
- TeX
- TI-990
- TI-BASIC
- 토네이도
- 터보 파스칼
- 튜링
- UC블로고
- UEFI
- 울름
- Unit.js
- 언람바
- 발라
- 비주얼 베이직
- 비주얼 IRC
- web2py
- 웹 서버 게이트웨이 인터페이스
- 여백
- 와트
- 엑스블라이트
- 엑스하버
- 조조
- XULJet
참고 항목
- 컴퓨터 과학에서 사용되는 "99병의 맥주"
- 나쁜 사과!!§ 그래픽 및 오디오 테스트로 사용(기존 하드웨어의 경우 "Hello, World!"에 해당하는 그래픽)
- 푸바
- 자바 펫 스토어
- 단지 또 다른 Perl 해커
- 컴퓨터과학개요
- TPK 알고리즘
참고문헌
- ^ James A Langbridge (3 December 2013). Professional Embedded ARM Development. ISBN 9781118887820.
- ^ Kernighan, Brian W.; Ritchie, Dennis M. (1978). The C Programming Language (1st ed.). Englewood Cliffs, NJ: Prentice Hall. ISBN 0-13-110163-3.
- ^ Kernighan, Brian (1974). "Programming in C: A Tutorial" (PDF). Bell Labs. Retrieved 9 January 2019.
- ^ "The Programming Language B". Bell Labs.
- ^ "BCPL". Jargon File.
- ^ "William B. Williams, Radio Personality, Dies". The New York Times. 4 August 1986.
- ^ "C++ Programming/Examples/Hello world". Wikibooks. Retrieved 16 March 2022.
- ^ "Malbolge". Esolang. esolangs-wiki. Retrieved 28 October 2016.
- ^ 바둑 프로그래밍 언어를 위한 자습서. 2010년 7월 26일 Wayback Machine The Go Programming Language에서 아카이브되었습니다. 2011년 7월 26일 회수.
- ^ Silva, Mike (11 September 2013). "Introduction to Microcontrollers - Hello World". EmbeddedRelated.com. Retrieved 19 May 2015.
- ^ George, Ligo (8 May 2013). "Blinking LED using Atmega32 Microcontroller and Atmel Studio". electroSome. Retrieved 19 May 2015.
- ^ PT, Ranjeeth. "2. AVR Microcontrollers in Linux HOWTO". The Linux Documentation Project. Retrieved 19 May 2015.
- ^ Andersson, Sven-Åke (2 April 2012). "3.2 The first Altera FPGA design". Raidió Teilifís Éireann. Archived from the original on 21 May 2015. Retrieved 19 May 2015.
- ^ Fabio, Adam (6 April 2014). "CPLD Tutorial: Learn programmable logic the easy way". Hackaday. Retrieved 19 May 2015.
- ^ "Hello - GNU Project - Free Software Foundation". gnu.org. GNU Project. Archived from the original on 29 May 2014. Retrieved 7 July 2017.
- ^ Jolif, Christophe (January 2003). "Bringing SVG Power to Java Applications". Sun Developer Network.
- ^ de Dinechin, Christophe (24 July 2010). "Hello world!". Grenouille Bouillie.
- ^ "Teaching the Nintendo Generation to Program" (PDF). bfoit.org. Archived from the original (PDF) on 5 May 2016. Retrieved 27 December 2015.
- ^ O'Dwyer, Arthur (September 2017). Mastering the C++17 STL: Make full use of the standard library components in C++17. Packt Publishing Ltd. p. 251. ISBN 978-1-78728-823-2. Retrieved 4 December 2019.
- ^ Wiegers, Harold (28 June 2018). "The importance of "Time to First Hello, World!" an efficient API program".
- ^ Jin, Brenda; Sahni, Saurabh; Shevat, Amir (29 August 2018). Designing Web APIs: Building APIs That Developers Love. O'Reilly Media. ISBN 9781492026877. Retrieved 19 February 2020.
외부 링크
- 헬로 월드 컬렉션
- "Hello world/Text". Rosetta Code.
- "GitHub – leachim6/hello-world: Hello world in every computer language. Thanks to everyone who contributes to this, make sure to see CONTRIBUTING.md for contribution instructions!". GitHub. 30 October 2021.
- "Unsung Heroes of IT / Part One: Brian Kernighan". TheUnsungHeroesOfIT.com. Archived from the original on 26 March 2016. Retrieved 23 August 2014.