প্রোগ্রামিং ভাষা ঠিক কী? এমন ভাষায় আমাদের কী লিখতে সক্ষম করে?


26

ঠিক আছে আমি প্রোগ্রামিংয়ে নতুন এবং আমি স্বীকার করি এটি মোটামুটি বিমূর্ত প্রশ্ন।

আমরা প্রতিদিন যে প্রাকৃতিক ভাষা বলি তা বিদ্যমান কারণ মানুষ একে অপরকে বুঝতে পারে। কম্পিউটারগুলি একটি নির্দিষ্ট ভাষায় লেখা আমার কোড কীভাবে বুঝতে পারে?

ধরা যাক মিঃ এ একটি নতুন ভাষা তৈরি করে। কীভাবে এটি মেশিন দ্বারা গৃহীত হয়? নতুন ভাষা তৈরি করতে মেশিনের ভাষা ব্যবহার করে কি নির্মাতাকে মেশিনের সাথে যোগাযোগ করতে হবে? মেশিনটি সঠিকভাবে বুঝতে পেরে আমরা কোন ভাষায় কী লিখতে পারি তার গ্যারান্টি কী?


1
এমন ভাষায় আমাদের কী লিখতে সক্ষম করে? - "মস্তিস্ক: নতুন বিস্ময়কর মাথা ফিলার!" - স্পাইক মিলিগান।
স্টিফেন সি

6
কিছুটা বিস্তৃত, তবে একটি ভাল প্রশ্ন। তারা কীভাবে কাজ করে তা ভেবে ভেবে অনেক লোক কেবল ভাষা ব্যবহার করে। ভাল যে আপনি কৌতূহলী।
রিওয়ালক

4
এটি উইকিপিডিয়া দ্বারা সহজে এবং তুচ্ছ উত্তর দেওয়া একটি সাধারণ রেফারেন্স প্রশ্ন ।
অ্যারোনআউট

উত্তর:


39

আপনি "সংকলক" শব্দটি দিয়ে আপনার প্রশ্নের সেটগুলির পুরো উত্তরটি যোগ করতে পারেন । সংকলক একটি বিশেষ প্রোগ্রাম যার কাজটি ইনপুট হিসাবে উত্স কোড গ্রহণ করা, কোডটির অর্থ কী তা বোঝার জন্য ভাষা ডিজাইনার দ্বারা নির্ধারিত ভাষা বিধি প্রয়োগ করা এবং আউটপুট হিসাবে অন্য ভাষায় একই অর্থ সহ কোড উত্পাদন করা। এটি সাধারণত মেশিন কোড বা বাইটকোডের কিছু ফর্ম (ভার্চুয়াল মেশিনের জন্য "মেশিন কোড") থাকে, যদিও কোডগুলি অন্যান্য উচ্চ-স্তরের ভাষায় অনুবাদ করে এমন বিশেষ সংকলক উপস্থিত থাকে। যদিও তারা এই প্রশ্নের আওতার বাইরে।

সমস্ত ভাষার একটি সংকলক নেই। এর পরিবর্তে তাদের মধ্যে কিছু সংখ্যক দোভাষী রয়েছে , যা সংকলক করে একই কাজ করে, প্রোগ্রামটির অর্থ নির্ধারণের পরে মেশিন কোড তৈরি না করে কেবল তাৎক্ষণিকভাবে প্রোগ্রামটি কার্যকর করে। তবে কোডটি পার্সিং (পড়া) এবং এর অর্থ কী তা নির্ধারণের মূল নীতিগুলি একই।

এর থেকে আরও গভীরতার সাথে উত্তর দেওয়া সংকলক তত্ত্বের সাথে যুক্ত হবে, যা একটি খুব বিস্তৃত বিষয়। আপনি যদি বিষয়টিতে আগ্রহী হন, আপনার "সংকলক" এর জন্য উইকিপিডিয়া নিবন্ধটি পড়া এবং এটি থেকে লিঙ্কগুলি পরীক্ষা করে শুরু করা উচিত এবং যদি আপনার নির্দিষ্ট প্রশ্ন থাকে তবে এগুলিতে এখানে নির্দ্বিধায় জিজ্ঞাসা করুন।


11
+1 - আমি আরও যুক্ত করব যে আপনি যখন নতুন ভাষা লিখছেন তখন আপনাকে অন্য কোনও ভাষায় সংকলক বা দোভাষী লিখতে হবে। সংকলক বা দোভাষীর পরবর্তী সংস্করণগুলি তারপরে ভাষার পূর্ববর্তী সংস্করণগুলিতে লেখা যেতে পারে এবং পুরানো সংকলক সহ সংকলিত হতে পারে। খুব প্রথম এসেমব্লার মেশিন কোডে লেখা হয়েছিল। প্রথম সি সংকলকটি সমাবেশে লেখা হয়েছিল (সম্ভবত সম্ভবত) ইত্যাদি
স্কট হুইটলক

1
আমি সংকলক সংজ্ঞা পরিবর্তন করতে হবে। তারা সমস্ত মেশিন কোড নির্গত করে না। বিশেষত আজকাল অনেক সংকলক এমএসআইএল এর মতো "ইন্টারমিডিয়েট কোড" নির্গত করে। এমন কি এমন সংকলক রয়েছে যা জাভাস্ক্রিপ্ট নির্গত করে!
নিল এন

3
আমি বলতে দ্বিধা বোধ করব যে সংকলকগণ সংজ্ঞা দিয়ে মেশিন কোড তৈরি করে, এমনকি কোনও শিক্ষানবিশকে ব্যাখ্যা করার সময়ও। এটি ফাংশনগুলি আসল সংখ্যাগুলি, একটি অর্থহীন ওভারসিম্প্লিফিকেশন ফিরিয়ে দেওয়ার মতো বলে like সকল কম্পাইলার নির্মাণ ঝুলিতে যখন কোডটি একটি কম্পিউটার আসলে সিলিকন থেকে নির্মিত কিন্তু শুধুমাত্র abstractly সংজ্ঞায়িত নয় উত্পাদক (এটি একটি VM অথবা একটি উচ্চ পর্যায়ের ভাষা হতে; একটি কারণ এটা বলেন সি মান একটি সংজ্ঞায়িত এর বিমূর্ত মেশিন , এবং একটি হল কম্পাইলার খুব নিম্ন স্তরের LLVM আইআর friggin করতে 'জাভাস্ক্রিপ্ট) থেকে। প্রাথমিকভাবে এটি পাওয়া দরকার, যত তাড়াতাড়ি তত ভাল।

2
সর্বাধিক সংকলক বইগুলি যে সরলিকরণটি ব্যবহার করে তা হ'ল একটি সংকলক একটি উত্স ভাষা থেকে আউটপুট হিসাবে লক্ষ্য ভাষায় রূপান্তর করতে ভাষার নিয়ম প্রয়োগ করে। (সি তে সংকলন করা অস্বাভাবিক কিছু নয়, উদাহরণস্বরূপ, বিশেষত একটি পরিচিতি কোর্সের জন্য)।
জেসনট্রু

4
@ ডেলান, আরও - প্রতিটি ভাষা তার নিজস্ব বিমূর্ত মেশিনের জন্য একটি মেশিন কোড । ভাষাটি কতটা উচ্চ স্তরেরই হোক না কেন।
এসকে-যুক্তি

11

আপনি উল্লেখ করেছেন যে, মানুষ একে অপরের মধ্যে ইংরেজি, ফরাসী, জার্মান এর মতো একটি "প্রাকৃতিক" ভাষার মাধ্যমে যোগাযোগ করে। এগুলিকে প্রাকৃতিক বলা হয় কারণ আমরা ইচ্ছাকৃতভাবে তাদের আবিষ্কার করার চেয়ে প্রাকৃতিকভাবে সেগুলি অর্জন করি (এস্পেরান্তো ব্যতিক্রম হিসাবে)।

একটি আনুষ্ঠানিক ভাষা হ'ল একটি উদ্ভাবিত হয় কোনও উদ্দেশ্যে বা অন্য উদ্দেশ্যে। উদাহরণস্বরূপ, সি এর মতো একটি প্রোগ্রামিং ভাষা হ'ল প্রোগ্রামিং কম্পিউটারগুলির উদ্দেশ্যে উদ্ভাবিত একটি আনুষ্ঠানিক ভাষা।

সমস্ত ভাষা, ব্যাকরণ ব্যবহার করে বর্ণনা করা যায়। ১৯৫6 সালে নোম চমস্কি দ্বারা ব্যাকরণের একটি শ্রেণিবিন্যাস বর্ণনা করা হয়েছিল। এটি নিম্নলিখিত স্তরগুলি নিয়ে গঠিত:

প্রকার -0 ব্যাকরণ (সীমাহীন ব্যাকরণ)। এগুলি সর্বাধিক সাধারণ এবং একটি ট্যুরিং মেশিনের সমতুল্য। সেই হিসাবে, প্রদত্ত স্ট্রিং একটি সীমিত ব্যাকরণের অংশ কিনা তা সিদ্ধান্ত নেওয়ার সমস্যাটি অনস্বীকার্য।

প্রকার -১ গ্রামার (প্রসঙ্গ-সংবেদনশীল ব্যাকরণ)। প্রায় সব প্রাকৃতিক ভাষা যেমন ইংরেজি ইংরেজি প্রসঙ্গ সংবেদনশীল। ইংরেজিতে প্রসঙ্গ-সংবেদনশীলতার উদাহরণ দুটি বাক্য: "সময় তীরের মতো উড়ে যায়।" এবং "ফলগুলি কলার মতো উড়ে যায়।" সাধারণভাবে, কম্পিউটারগুলির পক্ষে প্রসঙ্গ-সংবেদনশীল ভাষা বোঝা কঠিন।

প্রকার -২ ব্যাকরণ (প্রসঙ্গমুক্ত)। প্রসঙ্গমুক্ত ভাষা হ'ল বেশিরভাগ প্রোগ্রামিং ভাষার বাক্য গঠনের তাত্ত্বিক ভিত্তি।

প্রকার -3 গ্রামার (নিয়মিত ব্যাকরণ)। নিয়মিত ভাষাগুলির পরিবার নিয়মিত প্রকাশের মাধ্যমে পাওয়া যায়। নিয়মিত ভাষাগুলি সাধারণত অনুসন্ধানের নিদর্শনগুলি এবং প্রোগ্রামিং ভাষার সংক্ষিপ্ত কাঠামো সংজ্ঞায়িত করতে ব্যবহৃত হয়।

টাইপ 2 (প্রসঙ্গমুক্ত) এবং টাইপ 3 (নিয়মিত) ব্যাকরণ কম্পিউটারগুলি দ্বারা প্রায়শই হয় কারণ তাদের জন্য পার্সারগুলি কার্যকরভাবে প্রয়োগ করা যেতে পারে।

বিএনএফ (ব্যাকাস নরমাল ফর্ম বা ব্যাকাস – নওর ফর্ম) প্রসঙ্গমুক্ত ব্যাকরণগুলির জন্য একটি স্বরলিপি কৌশল, প্রায়শই কম্পিউটিংয়ে ব্যবহৃত ভাষার সিনট্যাক্স বর্ণনা করতে ব্যবহৃত হয়।

উদাহরণস্বরূপ একটি সনাক্তকারী হিসাবে বর্ণিত হতে পারে:

<identifier> ::= <letter> { <letter> | <digit> }

যার অর্থ এটি অবশ্যই একটি অক্ষর দিয়ে শুরু হবে এবং এতে অতিরিক্ত অক্ষর বা সংখ্যা থাকতে পারে।

আগে, একটি অক্ষর একটি 'a' সংজ্ঞায়িত করা হয় | 'খ' | 'সি' ইত্যাদি, এবং অঙ্কটি একই ধরণের স্বরলিপি ব্যবহার করে '9' এর মাধ্যমে '0' হিসাবে সংজ্ঞায়িত করা হয়।

এসি "ফর" বিবৃতি হিসাবে সংজ্ঞায়িত হতে পারে:

 <for_statement> ::=
    'for' '(' <expression> ';' <expression> ';' <expression> ')' <statement> 

লেক্সিকাল বিশ্লেষক এবং পার্সার (সংকলক বা দোভাষীর প্রথম পর্যায়ে) তখন কোনও নির্দিষ্ট ভাষার জন্য বিএনএফ দ্বারা বর্ণিত নির্দিষ্ট ব্যাকরণ গ্রহণ করার জন্য নির্মিত হয়। লেক্সিকাল অ্যানালাইজারগুলি সাধারণত কোনও ভাষার বিভিন্ন টোকেনকে আলাদা করার জন্য ব্যবহৃত হয় (যেমন একটি কীওয়ার্ড, সনাক্তকারী বা একটি নম্বর), এবং পার্সারটি কীভাবে টোকেনগুলি একসাথে কাজ করে তা নির্ধারণ করতে ব্যবহৃত হয়, যেমন "" জন্য "বিবৃতিটি কীভাবে তৈরি করা হয় ।


+1 দুর্দান্ত লেখার আপ। তবে আমি অবাক হই না যে এটি উত্তর হিসাবে গ্রহণ করা হয়নি। এটিই আমি ভেবেছিলাম যে ওপি জিজ্ঞাসা করছে, তবে তারা যে উত্তরটি বেছে নিয়েছিল তার ভিত্তিতে মনে হয় তারা আরও কিছু উচ্চ স্তরের চেয়েছিল।
ম্যাথু রোডাস

5

প্রথমে আসুন "ভাষা" এটি কী সেটির দিক দিয়ে সংজ্ঞায়িত করা যাক। ভাষার জন্য প্রথমে একটি শব্দভান্ডার (শব্দগুলির একটি তালিকা যা ধারণার সংজ্ঞা দেয় যা ধারণার সংজ্ঞা দেয়) এবং তারপরে একটি বাক্য গঠন ("প্রাইমার" বা নিয়মের সেট যা যোগাযোগের কাঠামোর সংজ্ঞা দেয়) প্রয়োজন হয় requires

এই সর্বাধিক প্রাথমিক স্তরে, সি # সমস্তই ইংরেজির চেয়ে আলাদা নয়। সি # কে "প্রোগ্রামিং ল্যাঙ্গুয়েজ" কী তৈরি করে তা এর উদ্দেশ্য এবং তাই এর নকশা; এটি পৃথক নিম্ন-স্তরের কমান্ডগুলিতে হজম করার জন্য ডিজাইন করা হয়েছে। যেমন, পূর্বনির্ধারিত শব্দভাণ্ডার সীমাবদ্ধ, বাক্য গঠনটি খুব কঠোরভাবে প্রয়োগ করা হয়েছে এবং পুরো ভাষাটি তার "শ্রোতা" (কম্পিউটার; আরও সঠিকভাবে সংকলক দ্বারা ডাইজেস্ট করা হবে) দ্বারা খুব সুপরিচিত পূর্বনির্ধারিত উপায়ে গ্রাস করার জন্য নকশা করা হয়েছে which সরল কমান্ডগুলির "মধ্যবর্তী ভাষা" তে উত্স কোড যা পরে "রানটাইম" দ্বারা মেশিন কোডে আরও অনুবাদ করা যেতে পারে)। আপনি সি # তে গদ্য বা কবিতা লেখেন না; আপনি কম্পিউটারকে সবচেয়ে অস্পষ্টভাবে কোনও কাজ করতে বলছেন।

কম্পিউটারগুলির জন্য, হ্যাঁ, একটি সরঞ্জাম, সাধারণত সংকলক বলা হয়, আপনি কোডে যা লেখেন তা গ্রহণ এবং কম্পিউটারটি যে নির্দেশাবলী ব্যবহার করতে পারে সেগুলিতে রূপান্তরিত করতে হবে। কম্পিউটার বিজ্ঞান, বেশিরভাগ প্রযুক্তির মতোই অন্তর্নিহিত পুনরাবৃত্তি, "স্তরযুক্ত" প্রক্রিয়া। কম্পিউটারগুলি প্রথম আবিষ্কার করা হয়েছিল, বাইনারি নির্দেশাবলী ম্যানুয়ালি প্রবেশ করে সেগুলি প্রোগ্রাম করা হয়েছিল। এই নির্দেশাবলী প্রতিটি প্রসেসরের জন্য হেক্সাডেসিমাল "মেশিন কোড" রূপান্তরিত হয়েছে; পার্থক্য কেবলমাত্র বাইনারি ডিজিটগুলি মানুষের প্রদর্শিত হওয়ার জন্য ভাগ করে নেওয়া হয় in তারপরে, এসেম্বলারের কোডে, কমান্ডের তালিকা এবং কিছু প্রাথমিক সনাক্তকারী যেমন রেজিস্টার নামগুলি প্রোগ্রাম লেখার সময় তাদের হেক্সাডেসিমাল কোডগুলির জন্য প্রতিস্থাপিত হয়েছিল; এএসএম এখনও 1: 1 কে দেশীয় মেশিন কোডে রূপান্তর করতে পারে। কোয়ান্টাম লিপ ছিল তৃতীয় প্রজন্মের "অত্যাবশ্যক" প্রোগ্রামিং, যা মূলত ভেরিয়েবল এবং লজিক লুপের মতো আরও মানব-বোধগম্য, বিমূর্ত ধারণা গ্রহণ করে এবং কীওয়ার্ড এবং বাক্যবিন্যাসের উপর ভিত্তি করে নিদর্শনগুলি ব্যবহার করে তাদের স্থানীয় নির্দেশাবলীতে হজম করে। সিওবিএল, ফোরট্রান, পাস্কাল এবং সি এর মতো প্রাথমিক ভাষাগুলি এখনও একটি বিশেষ যন্ত্রের ভাষায় (সাধারণত 8086 এএসএম) কোনও মানুষ অনুবাদ করতে পারে। তারপরে অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের বিপ্লব এলো, যা মূলত অতিরিক্ত সংশ্লেষের নিয়ম যা কোডকে সংজ্ঞায়িতভাবে "অবজেক্ট" -র সাথে সংযুক্ত করে যা রাষ্ট্র এবং যুক্তির কিছু সংমিশ্রণ হিসাবে সংজ্ঞায়িত করে। কোনও মানুষের দ্বারা একটি নির্দিষ্ট মেশিনের ভাষায় (সাধারণত 8086 এএসএম)। তারপরে অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের বিপ্লব এলো, যা মূলত অতিরিক্ত সংশ্লেষের নিয়ম যা কোডকে সংজ্ঞায়িতভাবে "অবজেক্ট" -র সাথে সংযুক্ত করে যা রাষ্ট্র এবং যুক্তির কিছু সংমিশ্রণ হিসাবে সংজ্ঞায়িত করে। কোনও মানুষের দ্বারা একটি নির্দিষ্ট মেশিনের ভাষায় (সাধারণত 8086 এএসএম)। তারপরে অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের বিপ্লব এলো, যা মূলত অতিরিক্ত সংশ্লেষের নিয়ম যা কোডকে সংজ্ঞায়িতভাবে "অবজেক্ট" -র সাথে সংযুক্ত করে যা রাষ্ট্র এবং যুক্তির কিছু সংমিশ্রণ হিসাবে সংজ্ঞায়িত করে।

আজকাল, আমরা ভাষাগুলির "চতুর্থ প্রজন্ম" এর মধ্যে আছি, যা সরাসরি মেশিনের পরিবর্তে অন্যান্য প্রোগ্রামের সাথে যোগাযোগের সংজ্ঞা দেওয়ার জন্য রচিত ভাষাগুলি। বিস্তৃতভাবে সংজ্ঞায়িত করা হয়েছে, এর মধ্যে XML / HTML এর মতো "মার্কআপ" ভাষা রয়েছে, জাভাস্ক্রিপ্ট এবং এসকিউএল এর মতো "স্ক্রিপ্টিং" ভাষা এবং জাভা এবং .NET ফ্রেমওয়ার্কের মতো বেশিরভাগ "স্যান্ডবক্স" ভাষা রয়েছে (যা একটি আইএলকে সংকলন করে যা এর পরে আরও ব্যাখ্যা করা যায়) একটি রানটাইম যা মেশিন এবং প্ল্যাটফর্ম-নির্দিষ্ট বিশদ বিমূর্ত করে)। আপনি এটি বলতে পারেন যে এটি কার্যকরী প্রোগ্রামিং ভাষার ক্ষেত্রগুলিকে অন্তর্ভুক্ত করে, যা কেবলমাত্র মেশিন-নির্দিষ্ট বিশদ নয়, অপারেশন-নির্দিষ্ট বিবরণের বিমূর্ততা সরবরাহ করার জন্য একটি রানটাইমের উপর নির্ভরশীল। এই চতুর্থ প্রজন্মের ভাষা স্থানীয় মেশিনের নির্দেশাবলীগুলিতে অনুবাদ করার জন্য মানুষের পক্ষে কম-বেশি অপরিহার্য are এবং মুল বক্তব্যটি হ'ল এটি একটি সার্থক প্রচেষ্টা হবে না; এই ভাষাগুলির শক্তি হ'ল স্তরযুক্ত প্রক্রিয়া যা শেষ পর্যন্ত কোনও কম্পিউটারকে নিম্ন স্তরে কী করতে হবে তা জানাতে ব্যবহৃত হয়।


ধন্যবাদ। প্রোগ্রামিং ভাষার বিবর্তনের ইতিহাসে আমার এক ঝলক আছে।
এরিকা Xu 21

2
@ কিথস: আপনি কিছুটা আরও পঠনযোগ্য করার জন্য শেষ অনুচ্ছেদে পুনরায় ফর্ম্যাট করতে চাইতে পারেন।
ইভান ভুইকা

4

এটি একটি ভাল প্রশ্ন। একটি সঠিক উত্তর "কম্পিউটার বিজ্ঞান" বলা হয় যার একটি ভাল অর্ধেক গঠন করে।

স্টার্টারের জন্য, আমি ডিনোটেশনাল এবং অপারেশনাল শব্দার্থকগুলির মাধ্যমে স্কিমিংয়ের পরামর্শ দেব এবং তারপরে এই বইটি পড়ব । এটি আপনাকে প্রোগ্রামিং ভাষা কী এবং এটি কীভাবে আনুষ্ঠানিকভাবে সংজ্ঞায়িত করা যেতে পারে তার কম-বেশি দৃ understanding় ধারণা দেবে।

উপরেরটি যদি কিছুটা বেশি একাডেমিক হয় তবে আপনি পেটজোল্ড, "কোড" দিয়ে শুরু করতে পারেন এবং তারপরে শব্দার্থে ফিরে আসতে পারেন।


1
আপনি কি সত্যিই এই প্রশ্নের উত্তর দেওয়ার জন্য 18 টি ইয়ো নুব কিছু ভারী তত্ত্ব পড়বেন বলে আশা করছেন?
চাকরী

2
@ জোব, তার আগের প্রশ্ন অনুসারে তিনি বিশ্ববিদ্যালয়ে স্কিমের (এবং সম্ভবতঃ এসআইসিপি) ডোজ পাচ্ছেন। তখন কিছুটা শব্দার্থক দিয়ে ভাল হয়ে যাওয়া উচিত। যাইহোক, ভারী তত্ত্ব ব্যতীত এই প্রশ্নের সঠিক কোনও উত্তর নেই।
এসকে-যুক্তি

"কোড" উল্লেখ করার জন্য +1। সেই বইটি প্রতিটি প্রবেশ-স্তরের সিএস শিক্ষার্থীর জন্য পড়া দরকার reading
ড্যানিয়েল প্রাইডেন

4

আপনি যদি কোনও প্রোগ্রামিং ভাষায় একটি প্রোগ্রাম লিখেন, একটি আলাদা প্রোগ্রাম আপনার প্রোগ্রামের প্রতীকগুলিকে কম্পিউটার বোঝে এমন প্রতীকগুলিতে রূপান্তরিত করবে। কখনও কখনও এটি বিভিন্ন পদক্ষেপ নেয়। সি হিসাবে উদাহরণস্বরূপ:

  1. ব্যবহারকারী উচ্চ-স্তরের ভাষায় (সি) প্রোগ্রাম লেখেন যা সিপিইউ দ্বারা বোঝা যায় না, তবে প্রোগ্রামার দ্বারা সরাসরি বোঝা যায় (আমরা আশা করি!)!

  2. সংকলক সি কে অসমেবিলি ভাষায় রূপান্তর করে, যা সরাসরি সিপিইউ দ্বারা বোঝা যায় না তবে এটি অন্য কোনও কিছুতে রূপান্তর করা সহজ।

  3. এসেম্প্লার সমাবেশকে বাইনারি কোডগুলির ক্রমে রূপান্তরিত করে যা সরাসরি সিপিইউ দ্বারা বোঝা যায়। কিছু সংকলক উপরের পদক্ষেপটি ছেড়ে যান (পদক্ষেপ 2) এবং উত্স কোড থেকে সরাসরি সংকলিত বাইনারি উত্পাদন করে।

গ্যারান্টিটি দেওয়ার জন্য যে কম্পিউটারটি আপনার প্রোগ্রামটি বোঝে, সংকলক বা দোভাষী আপনাকে একটি ত্রুটি দেবে এবং সাধারণত যদি এটি সংকলনযোগ্য নয় এমন কোনও সমস্যার সম্মুখীন হয়, যেমন একটি সিনট্যাক্স ত্রুটি। যদি আপনার প্রোগ্রামটি সংকলিত না করা যায় তবে এটি কখনই এমন পর্যায়ে পৌঁছতে পারে না যেখানে আপনার প্রোগ্রামটি এটি চালানোর চেষ্টা করবে এবং ব্যর্থ হবে কারণ এটি এটি "বুঝতে" পারে নি।

একটি নতুন ভাষা তৈরি করতে, আপনাকে প্রথমে আপনার উচ্চ-স্তরের ভাষা ডিজাইন করতে হবে এবং তারপরে আপনাকে আপনার নতুন ভাষার প্রতীকগুলি ম্যাপ করার একটি উপায় খুঁজে বের করতে হবে আপনার সিপিইউ বোঝে এমন সংসদীয় ভাষা কমান্ডগুলিতে।


2
আসলে তা না; আধুনিক সংকলকগণ পদক্ষেপ 2 না করে এবং সরাসরি বাইনারি কোড উত্পাদন করে। তবে সমাবেশ এবং বাইনারি কোড যাইহোক প্রায় সমতুল্য; আপনি খুব উচ্চ বিশ্বস্ততার সাথে বিচ্ছিন্ন করতে পারেন (বাইনারি কোডটি আবার সমাবেশে রূপান্তর করুন)।
এমসাল্টাররা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.