"হ্যালো, ওয়ার্ল্ড!" প্রোগ্রাম: সংশোধিত সংস্করণের মধ্যে পার্থক্য

বিষয়বস্তু বিয়োগ হয়েছে বিষয়বস্তু যোগ হয়েছে
 
Saiful.cse (আলোচনা | অবদান)
""Hello, World!" program" পাতাটি অনুবাদ করে তৈরি করা হয়েছে
১ নং লাইন:
[[চিত্র:CNC_Hello_World.jpg|ডান|থাম্ব|অ্যাক্রিলিক গ্লাসের উপর কম্পিউটারের তথ্য সংরক্ষের পরীক্ষা]]
#পুনর্নির্দেশ [[“হ্যালো, ওয়ার্ল্ড!” প্রোগ্রাম]]
[[চিত্র:HelloWorld_Maktivism_ComputerProgramming_LEDs.jpg|থাম্ব| "হ্যালো ওয়ার্ল্ড!" বার্তাটি একটি সচল আলোর মাধ্যমে দেখানো হচ্ছে]]
"হ্যালো ওয়ার্ল্ড!" হচ্ছে একটি [[কম্পিউটার]] প্রোগ্রাম যা ব্যবহারকারীকে "হ্যালো ওয়ার্ল্ড!" আউটপুট দেখায়। যেকোনো প্রোগ্রামিং ভাষার ক্ষেত্রে এটি হচ্ছে সবচেয়ে সহজ প্রোগ্রাম। এটা সাধারণত একটি প্রোগ্রামিং ভাষা লিখার মৌলিক নিয়মগুলো ব্যাখ্যা করার জন্য ব্যবহৃত হয়। যখন কেউ নতুন একটি প্রোগ্রামিং ভাষা শিখা শুরু করে, তখন প্রায় সবাই এই প্রোগ্রামটি লিখেই শিখা শুরু করে। 
 
== উদ্দেশ্য ==
"হ্যালো, ওয়ার্ল্ড!" প্রোগ্রামটি সাধারণত শিক্ষানবিশদেরকে কোন নতুন প্রোগ্রামিং ভাষা পরিচয় করিয়ে দেয়ার জন্য ব্যাবহার করা হয়। কোন শিক্ষকের সহায়তায় এই প্রোগ্রামটি অনেক সহজেই বুঝা যায়।
 
এছাড়াও কম্পিউটারের কম্পাইলার এবং একটি প্রোগ্রামিং ভাষা নিয়ে কাজ করার জন্য কম্পিউটারটির সবকিছু ঠিকঠাকমত কাজ করছে কিনা সেটা জানার জন্যেও "হ্যালো, ওয়ার্ল্ড!" প্রোগ্রামটি ব্যাবহার করা হয়। কোন একটি কম্পিউটারে নতুন একটি প্রোগ্রামিং ভাষার জটিল জটিল প্রোগ্রামগুলো ঠিকমত কাজ করতে পারবে কিনা সেটা জানার জন্যেও এটি ব্যাবহৃত হয়। এই কারণেই কোন নতুন টুল চেইন পরীক্ষা করার জন্য এই সহজ প্রোগ্রামটি ব্যাবহার করা হয়।
[[চিত্র:PSP-Homebrew.jpeg|থাম্ব|সত্যতাস্বরূপ সনির পোর্টেবল প্লেস্টেশনে "হ্যালো ওয়ার্ল্ড!" প্রোগ্রামটি দেখানো হচ্ছে ]]
[[হ্যাকার]]<nowiki/>রা কোন একটি ডিভাইসে সিস্টেম ডিজাইনারদের কোডের দুর্বলতার সুযোগ নিয়ে ডিভাইসটি নিজেদের মত করে ব্যাবহার করতে পারবে কিনা সেই ব্যাপারে নিশ্চিত হওয়ার জন্যেও "হ্যালো, ওয়ার্ল্ড!" প্রোগ্রামটি ব্যাবহার করে থাকে। উদাহরণস্বরূপ [[সনি]]<nowiki/>র পোর্টেবল প্লেস্টেশন। এইরকম আরও অনেক ডিভাইসে নিজেদের মত করে কোড  লিখার জন্য এটি হচ্ছে প্রথম ধাপ। 
 
২০১৬ সালে যুক্তরাজ্যের যোগাযোগ সংস্থার গোপন হেডকোয়ার্টার থেকে তাদের প্রথম টুইট হিসেবে "হ্যালো, ওয়ার্ল্ড!" প্রোগ্রামটি ব্যাবহার করেছিল।
<ref>{{Cite tweet|number=732149091476639745|user=GCHQ|title=Hello, world.|date=16 May 2016}}</ref><ref>{{সংবাদ উদ্ধৃতি|url=http://www.bbc.co.uk/news/uk-36300496|title=Hello, world: GCHQ joins Twitter|date=16 May 2016|newspaper=[[BBC News Online]]}}</ref>
 
== ইতিহাস ==
"দ্যা সি প্রোগ্রামিং ল্যাঙ্গুয়েজ" নামক একটি বইয়ে উদাহরণ হিসেবে "হ্যালো, ওয়ার্ল্ড!" প্রোগ্রামটি ব্যাবহার করা হয়েছিল।তার প্রভাবেই ছোট ছোট টেস্ট প্রোগ্রাম দ্বারা কম্পিউটার পরীক্ষা করার জন্য পরীক্ষামূলক ভাবে "হ্যালো, ওয়ার্ল্ড!" প্রোগ্রামটি ব্যাবহারের প্রচলন চলে আসছে। বইটিতে প্রকাশিত "হ্যালো, ওয়ার্ল্ড!" প্রোগ্রামটি  "<code>hello,&nbsp;world</code>" (বিস্ময়বোধক চিহ্ন ব্যাতীত) লিখাটি প্রকাশ করে। ১৯৭৪ সালে ব্রায়ান কার্নিংটন বেল ল্যাবরেটরীর অভ্যন্তরীণ স্মারকলিপি থেকে উত্তরাধিকারসূত্রে এই কোডটি পান। কোডটি হচ্ছে - {{তথ্যসূত্র প্রয়োজন|date=March 2015}}{{তথ্যসূত্র প্রয়োজন|date=March 2015}}<syntaxhighlight lang="text">
#include <stdio.h>
 
main( )
{
printf("hello, world\n");
}
</syntaxhighlight>কার্নিংটনের "অ্যা টিউটোরিয়াল ইন্ট্রোডাকশন টু দ্যা ল্যাঙ্গুয়েজ বি" নামক [[বই]] থেকে কোডটির সি ভার্শন নেয়া হয়েছিল।<ref name="langb">{{ওয়েব উদ্ধৃতি|url=https://www.bell-labs.com/usr/dmr/www/bintro.html|title=The Programming Language B}}</ref> সেখানে থাকা প্রথম ভার্শনটিতে বহিরাগত চলক ব্যাবহার করা হয়েছিল। বি ল্যাঙ্গুয়েজে লিখা কোডটি হচ্ছে - <syntaxhighlight lang="text">
main(){
extrn a,b,c;
putchar(a); putchar(b); putchar(c); putchar('!*n');
}
 
a 'hell';
b 'o, w';
c 'orld';
</syntaxhighlight>এই প্রোগ্রামটি টার্মিনালে ''hello, world!'' লিখাটি একটি নতুন লাইনসহ প্রদর্শন করত। বি ল্যাঙ্গুয়েজে এই শব্দদুটো কয়েকটি চলকে রাখতে হত। কেননা, বি ল্যাঙ্গুয়েজে ক্যারেক্টার ধ্রুবক কেবলমাত্র চারটি "আসকি" অক্ষর রাখতে পারত। পূর্ববর্তী টিউটোরিয়ালের উদাহরণটি টার্মিনালে ''hi!'' শব্দটি প্রিন্ট করে এবং ''hello, world!'' শব্দদুইটি প্রদর্শন করার জন্য কিছু বেশি ক্যারেক্টার ধ্রুবকের দরকার হয়। 
 
কিন্তু দাবী করা হয় যে hello, world শব্দদুইটি ১৯৬৭ সালে বিসিপিএল থেকে এসেছে। <ref>[http://www.catb.org/jargon/html/B/BCPL.html BCPL], ''[//en.wikipedia.org/wiki/Jargon_File Jargon File]''</ref>{{অনির্ভরযোগ্য উৎস?|date=March 2015}} প্রিন্সটন বিশ্ববিদ্যালয়ের অধ্যাপক ব্রায়ান কার্নিংটন এবং [[ক্যামব্রিজ বিশ্ববিদ্যালয়|ক্যামব্রিজ বিশ্ববিদ্যালয়ের]] অধ্যাপক মার্টিন রিচার্ডসের কাছ থেকে এই দাবীটির পক্ষে সমর্থন পাওয়া যায়।
 
আধুনিক ভাষারগুলোতে হ্যালো ওয়ার্ল্ড প্রোগ্রামটি বিভিন্নভাবে লিখা হয়। যেমন, "গো" প্রোগ্রামিং ল্যাঙ্গুয়েজে বিভিন্ন ভাষায় এটি লিখা যায়।<ref>[http://golang.org/doc/go_tutorial.html#tmp_20 A Tutorial for the Go Programming Language.] </ref> আমেরিকার সান মাইক্রোসিস্টেম্‌স নামক কোম্পানিটি [[জাভা প্রোগ্রামিং ভাষা]] ব্যাবহার করে আকার পরিবর্তনযোগ্য ভেক্টর গ্রাফিক্স দ্বারা  "হ্যালো, ওয়ার্ল্ড!" প্রোগ্রামটি তৈরি করে।<ref>{{সংবাদ উদ্ধৃতি|title=Bringing SVG Power to Java Applications|last=Jolif|first=Christophe|date=January 2003|newspaper=Sun Developer Network}}</ref> এবং এক্সএল ([[প্রোগ্রামিং ভাষা]]) ব্যাবহার করে পৃথিবীর মত ঘূর্ননরত অবস্থায় ত্রিমাত্রিকভাবে hello world শব্দটি প্রদর্শন করানো যায়। <ref>{{ওয়েব উদ্ধৃতি|url=http://grenouillebouillie.wordpress.com/2010/07/24/hello-world/|title=Hello world!|last=de Dinechin|first=Christophe|date=July 24, 2010|publisher=Grenouille Bouillie}}</ref> অন্যদিকে, কিছু উন্নত প্রোগ্রামিং ভাষা, যেমন পার্ল, পাইথন এবং রুবিতে কেবলমাত্র একটি বাক্য দ্বারা "hello world" শব্দটি প্রদর্শন করানো যায়। কিন্তু, অন্যান্য পুরাতন প্রোগ্রামিং ভাষা, যেমন অ্যাসেম্বলি ভাষায় অনেকগুলো লাইনের দরকার হয়। মার্ক গ্যাজডিল এবং এলিয়ট সলোওয়ের মতে পরীক্ষামূলক প্রোগ্রাম হিসেবে "hello world" পুরাতন হয়ে গিয়েছে। বর্তমানে সহজেই টেক্সটের বদলে বিভিন্নরকম গ্রাফিক্স এবং শব্দ ব্যাবহার করা যায়।<ref>[http://www.bfoit.org/itp/Soloway/CACM_Nintendo_Generation.pdf Teaching the Nintendo Generation to Program]</ref>
 
== প্রকারভেদ ==
এই প্রোগ্রামটির বিভিন্ন প্রকারভেদ রয়েছে। প্রকারভেদগুলো হল কমার (,) উপস্থিতি কিংবা অনুপস্থিতি,"H" এবং "W" এর মধ্যে যেকোনো একটি কিংবা উভয়টি বড়হাতের নাকি ছোটহাতের অক্ষরে লিখা। কিছু কিছু প্রোগ্রামিং ভাষা সম্পূর্ণ বাক্যটিকে ভিন্নভাবে আউটপুটে দেখায়, যেমন "HELLO WORLD!"। এই পদ্ধতিতে কেবলমাত্র বড়হাতের অক্ষর লিখা যায়। একইভাবে কোন কোন পদ্ধতিতে স্ট্রিঙের সাহায্যে কেবলমাত্র ছোটহাতের অক্ষর লিখা যায়। উদাহরণস্বরূপ, ম্যালবগ প্রোগ্রামিং ভাষায় লিখা সর্বপ্রথম "HEllO WORld" মোটামুটি ভালো হিসেবে ধরা হয় <ref>{{ওয়েব উদ্ধৃতি|url=https://esolangs.org/wiki/Malbolge|title=Malbolge|website=Esolang|publisher=esolangs-wiki|access-date=28 October 2016}}</ref>
 
বিভিন্ন ফাংশনাল প্রোগ্রামিং ভাষা, যেমন [[লিস্প (প্রোগ্রামিং ভাষা)|লিস্প]], এমএল এবং হ্যাসকেল প্রোগ্রামিং ভাষায় বিকল্প হিসেবে [[ফ্যাক্টরিয়াল]] ব্যাবহার করে Hello World প্রোগ্রামটি লিখা যায়। এছাড়াও ফাংশনাল প্রোগ্রামিং ভাষায় রিকার্সিভ কৌশল ব্যাবহার করেও লিখা যায়। কিন্তু এই পদ্ধতিটি মৌলিক ফাংশনাল প্রোগ্রামিং ভাষার বৈশিষ্ট্যের সাথে বিরুদ্ধাচারন করে। অন্যান্য প্রোগ্রামিং ভাষা, যেমন (অ্যাসেম্বলি, সি, [[ভি এইচ ডি এল]]) দিয়ে Hello World বিভিন্ন এমবেডেড সিস্টেম ব্যাবহার করে লিখা হয়। কেননা, এইসব প্রোগ্রামিং ভাষা টেক্সট ইনপুট দেয়া কষ্টকর (অন্য কম্পিউটারের অন্যান্য উপাদান বা যোগাযোগের প্রয়োজন হয়) নাহয় অসম্ভব। মাইক্রোকন্ট্রোলার, [[ফিল্ড-প্রোগ্রামেবল গেইট অ্যারে]] এবং কমপ্লেক্স প্রোগ্রামেবল লজিক ডিভাইসের মত যন্ত্রে "Hello, World" বাক্যটি একটি জ্বলজ্বলে [[LED|লাইট এমিটিং ডায়োড]] দ্বারা প্রতিস্থাপিত হয়। এর দ্বারা যন্ত্র এবং সময়ের মধ্যকার মিথস্ক্রিয়া বুঝা যায়। <ref>{{ওয়েব উদ্ধৃতি|url=http://www.embeddedrelated.com/showarticle/460.php|title=Introduction to Microcontrollers - Hello World|last=Silva|first=Mike|date=11 September 2013|website=EmbeddedRelated.com|access-date=19 May 2015}}</ref><ref>{{ওয়েব উদ্ধৃতি|url=https://electrosome.com/blinking-led-atmega32-avr-microcontroller/|title=Blinking LED using Atmega32 Microcontroller and Atmel Studio|last=George|first=Ligo|website=electroSome|access-date=19 May 2015}}</ref><ref>{{ওয়েব উদ্ধৃতি|url=http://www.tldp.org/HOWTO/Avr-Microcontrollers-in-Linux-Howto/x207.html|title=2. AVR Microcontrollers in Linux HOWTO|last=PT|first=Ranjeeth|website=The Linux Documentation Project|access-date=19 May 2015}}</ref><ref>{{ওয়েব উদ্ধৃতি|url=http://www.rte.se/blog/blogg-modesty-corex/first-altera-fpga-design/3.2|title=3.2 The first Altera FPGA design|last=Andersson|first=Sven-Åke|date=2 April 2012|website=RTE|publisher=Realtime Embedded AB|access-date=19 May 2015}}</ref><ref>{{ওয়েব উদ্ধৃতি|url=http://hackaday.com/2014/04/06/cpld-tutorial-learn-programmable-logic-the-easy-way/|title=CPLD Tutorial: Learn programmable logic the easy way|last=Fabio|first=Adam|date=6 April 2014|website=Hackaday|access-date=19 May 2015}}</ref>
 
[[ডেবিয়ান]] এবং[[উবুন্টু (লিনাক্স ডিস্ট্রিবিউশন)| উবুন্টু লিনাক্স ডিস্ট্রিবিউশনগুলো]] "hello world" প্রোগ্রামটি এপিটি প্যাকেজ আকারে প্রকাশ করে থাকে। এর ফলে ব্যাবহারকারীরা কোনো সফটওয়্যারের সাথে কেবলমাত্র "apt-get install hello" টাইপ করেই প্রোগ্রামটি ইন্সটল করতে পারে। যদিও আপাতদৃষ্টিতে এটিকে নিষ্প্রয়োজন মনে হচ্ছে, কিন্তু নতুনদের জন্য একটি সহজ উদাহরণ হিসেবে কাজ করে। ডেভেলপারদের জন্য এটি অনেক উপকারী। এটি  [[ডেব (ফাইল ফরম্যাট)|.deb]]  প্যাকেজ তৈরী করার জন্য প্রয়োজন হয়। অন্যথায়, গতানুগতিক পুরাতন পদ্ধতিতে নাহয় ডেবহেল্পারের সাহায্যে প্যাকেজ তৈরী করতে হয়।  এছাড়াও লিনাক্সের "জিএনইউ হ্যালো" দ্বারা একটি সাধারণ জিএনইউ প্রোগ্রাম লিখার উদাহরণ পাওয়া যায়। 
 
== আরও দেখুন ==
* "99 Bottles Of Beer" as used in computer science
* [[ফুবার (কম্পিউটার প্রোগ্রামিং)]]
* Just another Perl hacker
* List of basic computer science topics
* Trabb Pardo-Knuth algorithm
 
== তথ্যসূত্র ==
{{reflist|30em}}
 
== বহিঃসংযোগ ==
* {{ওয়েব উদ্ধৃতি|url=http://helloworldcollection.de|title=Hello World Collection|last=Rösler|first=Wolfram|website=helloworldcollection.de}}
* {{ওয়েব উদ্ধৃতি|url=http://rosettacode.org/wiki/Hello_world|title=Hello world/Text|website=[[Rosetta Code]]}}
* {{ওয়েব উদ্ধৃতি|url=http://theunsungheroesofit.com/helloworld/|title=Unsung Heroes of IT / Part One: Brian Kernighan|website=TheUnsungHeroesOfIT.com}}