আমার প্রোগ্রামিং বন্ধুরা আমাকে সর্বদা বলছে যে এইচটিএমএল একটি মার্কআপ ভাষা এবং সি ++ একটি প্রোগ্রামিং ভাষা। আমি যখন তাদের জিজ্ঞাসা করি তফাত কী, তারা কখনই আমাকে যুক্তিসঙ্গত উত্তর দেয় না।
কীভাবে একটি কল সি ++ এ প্রোগ্রামিং ভাষা এবং HTML নয়?
আমার প্রোগ্রামিং বন্ধুরা আমাকে সর্বদা বলছে যে এইচটিএমএল একটি মার্কআপ ভাষা এবং সি ++ একটি প্রোগ্রামিং ভাষা। আমি যখন তাদের জিজ্ঞাসা করি তফাত কী, তারা কখনই আমাকে যুক্তিসঙ্গত উত্তর দেয় না।
কীভাবে একটি কল সি ++ এ প্রোগ্রামিং ভাষা এবং HTML নয়?
উত্তর:
প্রোগ্রামিং ল্যাঙ্গুয়েজ হ'ল একটি মেশিনে নির্দেশাবলী সরবরাহ করার জন্য ডিজাইন করা একটি স্বরলিপি। এই সংজ্ঞা অনুসারে সি ++ এবং এইচটিএমএল উভয়ই প্রোগ্রামিংয়ের ভাষা, যেমন 1801 সালে তার তাঁতদের প্রোগ্রাম করার জন্য জোসেফ মেরি জ্যাকার্ড ব্যবহৃত হয়েছিল ।
তথ্যের কাঠামো এবং / বা বর্ণনা করতে ব্যবহৃত ভাষাগুলির বিস্তার সহ, প্রোগ্রামিং ভাষার সংজ্ঞা পরিবর্তিত হয়েছে কেবলমাত্র সেই ভাষাগুলিতে যা আলগোরিদিম প্রকাশে সক্ষম include এটি আজ আরও সাধারণ সংজ্ঞা এবং এটি এইচটিএমএল বা এক্সএমএল এর মতো ভাষা বাদ দেয়।
বর্তমান সংজ্ঞার কেন্দ্রবিন্দুতে রয়েছে টুরিং সম্পূর্ণতার ধারণা । বেশিরভাগ প্রোগ্রামিং ল্যাঙ্গুয়েজ টিউরিং সম্পূর্ণ, এবং ট্যুরিং সম্পূর্ণতা প্রায়শই এমন একটি সমালোচনামূলক বৈশিষ্ট্য হিসাবে উদ্ধৃত হয় যা কোনও প্রোগ্রামিং ভাষা অন্য কম্পিউটারের ভাষা থেকে পৃথক করে। এটি থাম্বের সাধারণ নিয়ম হিসাবে যথেষ্ট ভাল তবে সম্পূর্ণ সঠিক নয়:
প্রসঙ্গের উপর নির্ভর করে, আপনি যে কোনও সংজ্ঞা চান তা বেছে নিতে পারেন।
সম্পাদনা:
এটিকে আরও জানা যাক, কোনও ভাষা প্রয়োগের ফলে ভাষাতেই বৈশিষ্ট্যগুলি অর্পণ করা হয় না, উদাহরণস্বরূপ: একটি ভাষার অনুমান একটি টুরিং সম্পূর্ণ ভাষা সংজ্ঞায়িত করতে পারে, কেউ এটিকে অযৌক্তিকভাবে সম্পূর্ণরূপে সম্পূর্ণরূপে ছেড়ে দিয়ে প্রয়োগ করতে পারে। এই বাস্তবায়ন নন-টিউরিং সম্পূর্ণ হওয়ার অর্থ এই নয় যে ভাষা নিজেই সম্পূর্ণ টিউরিং করছে না (বরং এটির অর্থ সম্ভবত বাস্তবায়ন অ-সঙ্গতিপূর্ণ নয়)। কোনও ভাষার বিবরণ এবং কোনও ভাষার বিশেষায়িত প্রয়োগের বিশদ আলাদা আলাদা জিনিস হিসাবে স্বীকৃতি পেতে হয়, এ কারণেই কোনও ভাষার ব্যাখ্যা বা সংকলন ইত্যাদি বলা ভুল নয় why
"আমি যখন এটি দেখি তখনই আমি এটি জানি" এই বাক্যাংশটি এমন এক কথাবার্তা যা একটি স্পিকারের দ্বারা পর্যবেক্ষণযোগ্য ঘটনা বা ঘটনাকে শ্রেণিবদ্ধ করার চেষ্টা করে, যদিও বিভাগটি সাবজেক্টিভ বা স্পষ্টভাবে সংজ্ঞায়িত পরামিতিগুলির অভাব রয়েছে। এই শব্দগুচ্ছটি মার্কিন যুক্তরাষ্ট্রে সুপ্রিম কোর্টের বিচারপতি পটার স্টুয়ার্ট জ্যাকবেলিস বনাম ওহিওতে (১৯ 19৪ ) অশ্লীলতার জন্য তার প্রান্তিক পরীক্ষার বর্ণনা দিতে বিখ্যাতভাবে ব্যবহার করেছিলেন ।
- "উইকিপিডিয়া নিবন্ধটি যখন আমি এটি দেখি তখন আমি এটি জানি।"
অশ্লীলতার মতো, আমি মনে করি আমরা যখন একটি দেখি তখন আমরা সকলেই একটি প্রোগ্রামিংয়ের ভাষা জানি। স্পষ্টতই ওপি হ'ল, যেহেতু আপনি ইতিমধ্যে সি ++ কে প্রোগ্রামিং ভাষা হিসাবে এবং এইচটিএমএলটি এক না হওয়ার জন্য বিচার করেছেন।
তাহলে আনুষ্ঠানিক সংজ্ঞা অনুসরণ করার লক্ষ্যটি কী? সবচেয়ে জনপ্রিয় সংজ্ঞা, টিউরিং সম্পূর্ণতা কেন ত্রুটিযুক্ত তা ইতোমধ্যে ইয়ান্নিস একটি দুর্দান্ত রানডাউন দিয়েছে: এটি শ্রেণিবিন্যাসের দিকে পরিচালিত করে যা "যখন আমি এটি দেখি" তখন পরীক্ষাটিকে অস্বীকার করে।
আমি এটি তোমাদের সামনে করা যে কোন সংজ্ঞা আপনি কিছু কিছু ভাষায় যা আমরা সব অনুভূতি হয় হতে হবে সঙ্গে আসা পর্যন্ত করতে পারেন না "প্রোগ্রামিং" ভাষায় তাই হচ্ছে শ্রেণীকরণ করা হবে; বা এমন কিছু ভাষায় যা আমরা সবাই অনুভব করি যে "প্রোগ্রামিং" ভাষাগুলি তেমন না হিসাবে শ্রেণিবদ্ধ করা হবে ।
কেন শুধু আপনার পেটের সাথে যেতে হবে না ? আমি একটি সাধারণ শব্দতাত্ত্বিক ব্যবহার করি: প্রোগ্রামিং ভাষা হল এমন একটি ভাষা যা প্রাথমিকভাবে আমার মতামত এবং আমার পর্যবেক্ষণ অনুসারে প্রোগ্রাম লিখতে হয় write বিষয়বস্তু চিহ্নিত করতে না। এক্সএমএল রূপান্তর করতে নয়। সাধারণ উদ্দেশ্যে প্রোগ্রাম লিখতে। আনুষ্ঠানিক সংজ্ঞাটি নখতে চেষ্টা করার চেয়ে আমি যখন এটি দেখি তখন আমি কেবল এটি জানতাম এবং এমন সংজ্ঞা দেওয়ার চেষ্টা করে আসা কোনও আসল মান আমি দেখতে পাই না।
মার্কআপ ভাষাগুলি মূলত কীভাবে তথ্য প্রদর্শিত হয় তা মোকাবেলা করে এবং সাধারণত ভেরিয়েবল, গণিত, তুলনা, সিদ্ধান্ত নেওয়ার (যদি ... তবে), লুপগুলি (যখন, তখন) ইত্যাদির প্রোগ্রামিং অবকাঠামোতে তাদের ঘাটতি থাকে
এইচটিএমএল নিজেই স্থির; এটি হ'ল অনেকটা ওয়ার্ড-প্রসেসরের মতোই, তথ্যটি যেমন রয়েছে তেমন উপস্থাপন করা। কেবল কিছু প্রোগ্রামিং ভাষার (সাধারণত স্ক্রিপ্টিং ভাষা যেমন জাভাস্ক্রিপ্ট, পিএইচপি ইত্যাদি) যুক্ত করার সাথে এইচটিএমএল ওয়েব পৃষ্ঠাগুলিতে একটি "পরিবর্তনশীল" সামগ্রী থাকতে পারে। স্ক্রিপ্টিং ভাষাগুলি ভেরিয়েবল, গণিত, তুলনা, সিদ্ধান্ত গ্রহণ, লুপ ইত্যাদির সাথে "প্রোগ্রামিং" সম্ভাবনা সরবরাহ করে
এইচটিএমএল একটি ঘোষিত ভাষা। এটি নিজের থেকে খুব বেশি কিছু করে না, এটি কেবল একটি দস্তাবেজ এবং এর সামগ্রীর বর্ণনা দেয় (এমন ট্যাগ ব্যবহার করে যার অর্থার্থিক অর্থ রয়েছে)।
অন্যদিকে সি ++ কিছু করে। এটি ফাংশন এবং ক্লাসগুলি সংজ্ঞায়িত করে তবে এটি কীভাবে এই ফাংশনগুলি একসাথে কাজ করা উচিত, কীভাবে তাদের ইনপুট এবং আউটপুটগুলি অর্থবহ উপায়ে বাঁধা হয় এবং কীভাবে অ্যাপ্লিকেশন সামগ্রিকভাবে চালানো উচিত তাও বর্ণনা করে।