อ่าน 6 นาที
สวัสดีโลก
โปรแกรม " Hello, world " โดยทั่วไปเป็น โปรแกรมคอมพิวเตอร์ แบบง่ายๆ ที่แสดง ข้อความคล้ายกับ "Hello, world" บนหน้าจอ (มักจะเป็น คอนโซล ) โค้ดขนาดเล็กใน ภาษาโปรแกรมทั่วไป ส่วนใหญ่...
สวัสดีโลก
โปรแกรม " Hello, world " โดยทั่วไปเป็นโปรแกรมคอมพิวเตอร์ แบบง่ายๆ ที่แสดง ข้อความคล้ายกับ "Hello, world" บนหน้าจอ (มักจะเป็นคอนโซล ) โค้ดขนาดเล็กใน ภาษาโปรแกรมทั่วไป ส่วนใหญ่ โปรแกรมนี้ใช้เพื่อแสดงไวยากรณ์ พื้นฐานของภาษา โปรแกรมดังกล่าวมักจะเป็นโปรแกรมแรกที่นักเรียนที่เรียนภาษาโปรแกรมใหม่เขียนขึ้น[ 1 ]แต่ยังสามารถใช้เป็นการตรวจสอบความถูกต้องเพื่อให้แน่ใจว่าซอฟต์แวร์คอมพิวเตอร์ที่ตั้งใจจะคอมไพล์หรือรันซอร์สโค้ด ได้รับ การติดตั้งอย่างถูกต้อง และผู้ใช้งานเข้าใจวิธีการใช้งาน
ประวัติศาสตร์

แม้ว่าจะมีโปรแกรมทดสอบขนาดเล็กหลายโปรแกรมมาตั้งแต่การพัฒนาคอมพิวเตอร์ ที่ตั้งโปรแกรมได้ แต่ธรรมเนียมการใช้วลี "Hello, world" เป็นข้อความทดสอบนั้นได้รับอิทธิพลมาจากโปรแกรมตัวอย่างในหนังสือThe C Programming Language ปี 1978 [ 2 ] ซึ่งน่าจะมีการใช้งานมาก่อนหน้านี้ในBCPLโปรแกรมตัวอย่างจากหนังสือจะพิมพ์"สวัสดีโลก"และสืบทอดมาจาก บันทึกภายในของ Bell Laboratories ในปี 1974 โดยBrian Kernighanการเขียนโปรแกรมในภาษา C: บทช่วยสอน : [ 3 ]
main ( ) { printf ( "hello, world" ); }ในตัวอย่างข้างต้นหลัก( )ฟังก์ชัน กำหนดจุด เริ่มต้นการทำงานของโปรแกรมส่วนเนื้อหาของฟังก์ชันประกอบด้วยคำสั่ง เดียว คือการเรียกใช้ฟังก์ชันprintf()ฟังก์ชันนี้ย่อมาจาก " print formatted" ซึ่งจะแสดงผลลัพธ์ ที่ส่งเข้ามาเป็นพารามิเตอร์ในกรณีนี้ คือ สตริง ออกทางคอนโซล"สวัสดีโลก".
เวอร์ชันภาษา C นั้นมีมาก่อนโดยหนังสือ A Tutorial Introduction to the Language B ของ Kernighan เองในปี 1972 [ 4 ]ซึ่งเวอร์ชันแรกที่รู้จักของโปรแกรมพบได้ในตัวอย่างที่ใช้เพื่อแสดงตัวแปรภายนอก:
หลัก( ) { extrn a, b, c; putchar(a); putchar(b); putchar(c); putchar('!*n'); } 'นรก' โค้งคำนับ'; c 'โลก'; โปรแกรมข้างต้นจะพิมพ์ออกมาสวัสดีโลก!บนเทอร์มินัล รวมถึง อักขระขึ้นบรรทัด ใหม่วลีถูกแบ่งออกเป็นตัวแปรหลายตัว เนื่องจากในภาษา Bค่าคงที่อักขระถูกจำกัดไว้ที่ อักขระ ASCII สี่ตัว ตัวอย่างก่อนหน้านี้ในบทช่วยสอนพิมพ์ออกมาสวัสดี!บนเทอร์มินัล และวลีสวัสดีโลก!ได้รับการแนะนำให้เป็นคำทักทายที่ยาวขึ้นเล็กน้อย ซึ่งต้องใช้ตัวอักษรคงที่หลายตัวในการแสดงออก
รายงาน Jargon File ระบุว่าวลี "hello, world!" มีต้นกำเนิดในปี 1967 โดย ใช้ภาษาBCPL [ 5 ]นอกเหนือจากด้านคอมพิวเตอร์ การใช้วลีดังกล่าวเริ่มขึ้นก่อนหน้านั้นกว่าสิบปี โดยเป็นวลีติดปากของดีเจวิทยุในนิวยอร์กชื่อ William B. Williamsตั้งแต่ช่วงปี 1950 [ 6 ]
การเปลี่ยนแปลง

โปรแกรม "Hello, world" มีความซับซ้อนแตกต่างกันไปตามภาษาโปรแกรม ในบางภาษา โดยเฉพาะภาษาสคริปต์โปรแกรม "Hello, world" สามารถเขียนได้ด้วยคำสั่งเดียว ในขณะที่ภาษาอื่นๆ (โดยเฉพาะภาษาโปรแกรมระดับต่ำ ) อาจต้องใช้คำสั่งมากกว่านั้น ตัวอย่างเช่น ในPythonการพิมพ์สตริง "Hello, world" สามารถทำได้ด้วยคำสั่งเดียวสวัสดีโลกตามด้วยขึ้นบรรทัดใหม่ ก็เพียงแค่เขียน. ในทางตรงกันข้าม โค้ดที่เทียบเท่ากันในC++ [ 7 ]ต้องใช้การนำเข้าไลบรารีมาตรฐาน C++การประกาศจุดเริ่มต้น (ฟังก์ชัน main) และการเรียกเพื่อพิมพ์ข้อความหนึ่งบรรทัดไปยังสตรีมเอาต์พุตมาตรฐาน print("Hello, world")

วลี "Hello, world" มีการเปลี่ยนแปลงรูปแบบการใช้ตัวพิมพ์ใหญ่และเครื่องหมายวรรคตอนต่างๆ เช่น การมีหรือไม่มีเครื่องหมายจุลภาคหรือเครื่องหมายอัศเจรีย์ อุปกรณ์บางอย่างจำกัดรูปแบบให้เป็นไปตามรูปแบบเฉพาะ เช่น เวอร์ชันที่เป็นตัวพิมพ์ใหญ่ทั้งหมดบนระบบที่รองรับเฉพาะตัวพิมพ์ใหญ่ ในขณะที่ภาษาโปรแกรม บางภาษา อาจต้องพิมพ์สตริงที่แก้ไขเล็กน้อย ภาษาของมนุษย์อื่นๆ ถูกนำมาใช้เป็นเอาต์พุต ตัวอย่างเช่น บทช่วยสอนสำหรับภาษา Goแสดงผลทั้งตัวอักษร ภาษาอังกฤษและ ภาษาจีนหรือ ญี่ปุ่น ซึ่งแสดงให้เห็นถึง การรองรับUnicodeในตัวของภาษา[ 8 ]อีกตัวอย่างที่น่าสนใจคือภาษา Rustซึ่งระบบการจัดการจะแทรกโปรแกรม "Hello, World" โดยอัตโนมัติเมื่อสร้างโปรเจกต์ใหม่

ภาษาโปรแกรมบางภาษาเปลี่ยนหน้าที่ของโปรแกรม "Hello, world" ในขณะที่ยังคงรักษาเจตนารมณ์ของการแสดงตัวอย่างง่ายๆ ไว้ ภาษา โปรแกรมเชิงฟังก์ชันเช่นLisp , MLและHaskellมักจะแทนที่ "Hello, world" ด้วยโปรแกรม แฟกทอเรียลเนื่องจากภาษาโปรแกรมเชิงฟังก์ชันเน้นเทคนิคการเรียกซ้ำ ในขณะที่ตัวอย่างดั้งเดิมเน้นการรับส่งข้อมูล ซึ่งขัดกับเจตนารมณ์ของภาษาโปรแกรมเชิงฟังก์ชันบริสุทธิ์โดยการสร้างผลข้างเคียงภาษาอื่นๆ ที่สามารถพิมพ์ "Hello, world" ได้ ( ภาษาแอสเซมบลี , C , VHDL ) อาจถูกนำมาใช้ในระบบฝังตัวซึ่งการแสดงผลข้อความทำได้ยาก (ต้องใช้ส่วนประกอบเพิ่มเติมหรือการสื่อสารกับคอมพิวเตอร์เครื่องอื่น) หรือไม่มีเลย สำหรับอุปกรณ์เช่นไมโครคอนโทรลเลอร์ , อาร์เรย์เกตที่ตั้งโปรแกรมได้แบบฟิลด์และอุปกรณ์ลอจิกที่ตั้งโปรแกรมได้ที่ซับซ้อน (CPLD) "Hello, world" จึงอาจถูกแทนที่ด้วยไดโอดเปล่งแสง (LED) ที่กะพริบ ซึ่งแสดงให้เห็นถึงจังหวะเวลาและการทำงานร่วมกันระหว่างส่วนประกอบต่างๆ[ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ]
ระบบปฏิบัติการ Linux DebianและUbuntu มีโปรแกรม "Hello, world" ให้ใช้งานผ่าน ระบบ จัดการแพ็กเกจซอฟต์แวร์ซึ่งสามารถเรียกใช้งานได้ด้วยคำสั่งสวัสดีมันทำหน้าที่เป็นตัวตรวจสอบความถูกต้องและตัวอย่างง่ายๆ ของการติดตั้งแพ็กเกจซอฟต์แวร์ สำหรับนักพัฒนา มันเป็นตัวอย่างของการสร้าง แพ็ก เกจ .debไม่ว่าจะด้วยวิธีดั้งเดิมหรือใช้debhelperและเวอร์ชันของสวัสดีGNU Hello ที่ ใช้เป็นตัวอย่างของการเขียนโปรแกรมGNU [ 14 ]
มีการแสดงโปรแกรม "Hello, world" เวอร์ชันต่างๆ ที่สร้างเอาต์พุตแบบกราฟิก (ตรงข้ามกับเอาต์พุตแบบข้อความ) ด้วยเช่นกัน Sunได้สาธิตโปรแกรม "Hello, world" ในภาษา Javaโดยใช้กราฟิกเวกเตอร์ที่ปรับขนาดได้[ 15 ]และ ภาษาการเขียนโปรแกรม XLมีฟีเจอร์ "Hello, world" โลกหมุนได้โดยใช้กราฟิกคอมพิวเตอร์ 3 มิติ[ 16 ] Mark GuzdialและElliot Solowayได้แนะนำว่าข้อความทดสอบ "hello, world" อาจล้าสมัยไปแล้ว เนื่องจากกราฟิกและเสียงสามารถจัดการได้ง่ายเหมือนกับข้อความ[ 17 ]
ในกราฟิกคอมพิวเตอร์การเรนเดอร์รูปสามเหลี่ยม — "Hello Triangle" — บางครั้งถูกใช้เป็นตัวอย่างเบื้องต้นสำหรับไลบรารีกราฟิก[ 18 ] [ 19 ]
ได้เวลาทักทายโลกแล้ว!
"เวลาในการทักทายโลก" (TTHW) คือเวลาที่ใช้ในการเขียนโปรแกรม "Hello, world" ในภาษาโปรแกรมที่กำหนด นี่เป็นการวัดความง่ายในการใช้งานของภาษาโปรแกรมอย่างหนึ่ง เนื่องจากโปรแกรมนี้มีจุดประสงค์เพื่อเป็นการแนะนำสำหรับผู้ที่ไม่คุ้นเคยกับภาษา ดังนั้นโปรแกรม "Hello, world" ที่ซับซ้อนกว่าอาจบ่งชี้ว่าภาษาโปรแกรมนั้นเข้าถึงได้ยากกว่า[ 20 ]ตัวอย่างเช่น โปรแกรม "Hello, world" แรกที่เป็นที่รู้จักในวงกว้างในภาษา Malbolge (ซึ่งจริงๆ แล้วแสดงผลเป็น "HEllO WORld") ใช้เวลาสองปีในการประกาศ และไม่ได้สร้างขึ้นโดยมนุษย์ แต่สร้างขึ้นโดยตัวสร้างโค้ดที่เขียนด้วยCommon Lisp
แนวคิดนี้ได้รับการขยายออกไปนอกเหนือจากภาษาการเขียนโปรแกรมไปยังAPIโดยใช้เป็นมาตรวัดความง่ายในการที่นักพัฒนาใหม่จะทำให้ตัวอย่างพื้นฐานทำงานได้ ยิ่งเวลาน้อยลง แสดงว่า API นั้นง่ายต่อการใช้งานสำหรับนักพัฒนา[ 21 ] [ 22 ]
บทความวิกิพีเดียที่มีโปรแกรม "Hello, world"
- เอบีเอพี
- อาดา
- อัลดอร์
- อัลโกล
- อัลโกล 60
- แอมเบียนทอล์ค
- อามิกา อี
- Apache Click
- อะปาเช่ เจลลี่
- อะปาเช่ วิคเก็ต
- แอปจาร์
- แอปเปิลสคริปต์
- Applesoft BASIC
- อาร์ค
- โปรแกรมแก้ไขภาษาแอสเซมบลีของ Atari
- ออโต้ลิสป์
- อาวิซินท์
- AWK
- พื้นฐาน
- ภาษาแอสเซมบลีพื้นฐาน
- นักบัลเล่ต์
- บีซีพีแอล
- บีทนิก
- เบฟันจ์
- เบต้า
- บลิทซ์ เบสิก
- สมองบ้า
- ซี
- แคชออบเจ็กต์สคริปต์
- ไคโร
- ซี/แอล
- คาซิโอโน่ เบสิก
- เสน่ห์
- เชอร์รี่พาย
- ทำความสะอาด
- คลิปเปอร์
- ซี++
- ซี#
- โคบอล
- งูเห่า
- ภาษากลางทั่วไป
- ไซธอน
- โผ
- ดาร์วิน
- ข้อมูลทั่วไป โนวา
- ภาษาส่วนขยาย DOORS
- ภาษาการเขียนโปรแกรมที่ง่าย
- Эль-76
- ยาอายุวัฒนะ
- เอนโย
- எழில்
- เอฟ#
- ฟาสต์เอพี
- ฟยอลเนียร์
- ฟลาสก์
- ฟลิกซ์
- ไปข้างหน้า
- ฟอร์แทรน
- ป้อม
- ฟรีเบสิก
- ไป
- ก็อดอต
- อุปกรณ์ของ Google
- GNU Smalltalk
- สับ
- ท่าเรือ
- ฮัสเคลล์
- ฮอลลีวูด
- เอชแอล
- แอปพลิเคชัน HTML
- ไอบีเอ็ม โอเพ่นคลาส
- อิดริส
- อินเตอร์คัล
- หลักสูตรพื้นฐานอินเทอร์เน็ต
- ไอโอ
- IRAF
- เจ
- หยก
- ชวา
- สคริปต์ JavaFX
- เจเฟซ
- เค
- เคอร์เนล
- คิววี่
- โคทลิน
- เค-เมลีออน
- ลิเบรโลโก
- ลิสป์
- ไลฟ์สคริปต์
- ลอลโค้ด
- ลัว
- แม็ค/65
- มาโคร-10
- มาโคร-11
- โกรธ
- แมจิก
- มัลโบลจ์
- MATLAB
- ปรอท
- ไมโครไพธอน
- ไมโครซอฟต์ ขนาดเล็ก พื้นฐาน
- ภาษาสคริปต์ mIRC
- เอ็มมิกซ์
- ม็อกกิโต้
- โมดูลา-3
- โมนาด
- คางทูม
- เนเมอร์เล
- นิวสปีค
- นิม
- ออมนิมาร์ค
- ภาษาธุรกิจขั้นสูงของ OpenEdge
- ภาษาการเขียนโปรแกรมแบบเปิด
- โอเรียล
- พาราเซล
- ภาษาแอสเซมบลี Parrot
- นกแก้วเป็นตัวแทนระดับกลาง
- ปาสคาล
- พีซีคาสเซิล
- พีดีพี-8
- เพิร์ล
- โมดูล Perl
- พีพี
- แพล็ก
- พลัว
- นอกจากนี้
- โพสต์สคริปต์
- พาวเวอร์เบสิก
- บทนำ
- เพียวเบสิก
- ข้อมูลบริสุทธิ์
- เพียวสคริปต์
- ไพจีทีเค
- ไพธอน
- คิว
- คิวบี64
- เร็วเข้า
- อาร์
- แร็ค
- แร็กเก็ต
- ราคุ
- เรคต์เนทีฟ
- เรโบล
- การส่งต่อ
- อาร์จีทีเค2
- โรบอทเฟรมเวิร์ก
- ทับทิม
- สนิม
- ซาโกะ
- บริษัทซาร์ล
- สกาล่า
- สคิแล็บ
- เกา
- ตัวเอง
- เชกสเปียร์
- ซิมูล่า
- สมอลล์เบสิก
- การสนทนาเล็กๆ น้อยๆ
- มาตรฐาน ML
- ชุดเครื่องมือวิดเจ็ตมาตรฐาน
- สวิฟต์
- เท็กซ์
- TI-990
- ทีไอ-เบสิก
- พายุทอร์นาโด
- ทิวริง
- โลโก้ UCB
- อัมเปิล
- อุนแลมบ์ดา
- วี
- วาลา
- วิชวลเบส
- IRC เวอร์ชันภาพ
- เว็บ2พาย
- อินเทอร์เฟซเกตเวย์เว็บเซิร์ฟเวอร์
- พื้นที่ว่าง
- น้ำหนัก
- เอ็กซ์บีไลท์
- โซโจ
- ซิก
ดูเพิ่มเติม
- "เบียร์ 99 ขวด" ในบริบทของวิทยาการคอมพิวเตอร์
- ฟูบาร์
- ร้านขายสัตว์เลี้ยงจาวา
- ก็แค่แฮกเกอร์ Perl อีกคนหนึ่ง
- เค้าโครงของวิทยาการคอมพิวเตอร์
- อัลกอริทึม TPK
- สวัสดีโลก (ภาพถ่าย)
ลิงก์ภายนอก
- คอลเลกชัน Hello World
- "Hello world/Text" . Rosetta Code . 23 พฤษภาคม 2024.
- "GitHub – leachim6/hello-world: โปรแกรมแสดงข้อความ 'สวัสดีโลก' ในทุกภาษาคอมพิวเตอร์ ขอบคุณทุกคนที่ร่วมให้ข้อมูล โปรดดูไฟล์ CONTRIBUTING.md สำหรับคำแนะนำในการให้ข้อมูล!" GitHub 30ตุลาคม 2021
- "วีรบุรุษผู้ไม่ได้รับการยกย่องในวงการไอที: ตอนที่หนึ่ง: ไบรอัน เคอร์นิแกน" TheUnsungHeroesOfIT.com เก็บถาวรจากต้นฉบับเมื่อวันที่ 26 มีนาคม 2016 เรียกดูเมื่อวันที่ 23 สิงหาคม 2014
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ สวัสดีโลก
โปรแกรม " Hello, world " โดยทั่วไปเป็น โปรแกรมคอมพิวเตอร์ แบบง่ายๆ ที่แสดง ข้อความคล้ายกับ "Hello, world" บนหน้าจอ (มักจะเป็น คอนโซล ) โค้ดขนาดเล็กใน ภาษาโปรแกรมทั่วไป ส่วนใหญ่...
ประวัติศาสตร์
แม้ว่าจะมีโปรแกรมทดสอบขนาดเล็กหลายโปรแกรมมาตั้งแต่การพัฒนา คอมพิวเตอร์ ที่ตั้งโปรแกรมได้ แต่ธรรมเนียมการใช้วลี "Hello, world" เป็นข้อความทดสอบนั้นได้รับอิทธิพลมาจากโปรแกรมตัวอย่างในหนังสือ The C Programming Language ปี 1978 [ 2 ] ซึ่ง...
การเปลี่ยนแปลง
โปรแกรม "Hello, world" มีความซับซ้อนแตกต่างกันไปตามภาษาโปรแกรม ในบางภาษา โดยเฉพาะ ภาษาสคริปต์ โปรแกรม "Hello, world" สามารถเขียนได้ด้วยคำสั่งเดียว ในขณะที่ภาษาอื่นๆ (โดยเฉพาะ ภาษาโปรแกรมระดับต่ำ ) อาจต้องใช้คำสั่งมากกว่านั้น ตัวอย่างเช่น ใน Python...
ได้เวลาทักทายโลกแล้ว!
"เวลาในการทักทายโลก" (TTHW) คือเวลาที่ใช้ในการเขียนโปรแกรม "Hello, world" ในภาษาโปรแกรมที่กำหนด นี่เป็นการวัดความง่ายในการใช้งานของภาษาโปรแกรมอย่างหนึ่ง เนื่องจากโปรแกรมนี้มีจุดประสงค์เพื่อเป็นการแนะนำสำหรับผู้ที่ไม่คุ้นเคยกับภาษา ดังนั้นโปรแกรม "Hello,...