প্রোগ্রামিং ভাষার ক্ষেত্রে প্রথম / দ্বিতীয় / তৃতীয় শ্রেণির মানগুলির জন্য গণিতের ভিত্তি কী?


19

যোগ করা হয়েছে

সবেমাত্র দুটি সম্পর্কিত প্রশ্ন পাওয়া গেছে

/math//q/1759680/1281

/programming//a/2582804/156458


মাইকেল স্কটের প্রোগ্রামিং ল্যাঙ্গুয়েজ প্র্যাকমেটিক্স থেকে প্রোগ্রামিং ভাষায়

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

লেবেলগুলি বেশিরভাগ প্রোগ্রামিং ভাষায় তৃতীয় শ্রেণির মান, তবে আলগোলে দ্বিতীয় শ্রেণির মান। সাবরুটাইনগুলি সর্বাধিক ভিন্নতা প্রদর্শন করে। এগুলি সমস্ত কার্যকরী প্রোগ্রামিং ভাষা এবং সর্বাধিক স্ক্রিপ্টিং ভাষার প্রথম স্তরের মান। এগুলি সি # তে প্রথম শ্রেণীর মান এবং ফোরট্রান, মডিউলা -2 এবং -3, অ্যাডা 95, সি, এবং সি ++ সহ কয়েকটি অন্যান্য আবশ্যিক ভাষায় কিছু সীমাবদ্ধতার সাথে রয়েছে। 11 এগুলি বেশিরভাগ অপরিহার্য ভাষায় দ্বিতীয় শ্রেণির মান এবং অ্যাডা 83 এ তৃতীয় শ্রেণির মান।

  1. প্রোগ্রামিং ভাষার ক্ষেত্রে প্রথম / দ্বিতীয় / তৃতীয় শ্রেণির মানগুলির জন্য গণিতের ভিত্তি কী?

    পরিভাষাটি আমাকে প্রথম / দ্বিতীয় অর্ডার যুক্তির স্মরণ করিয়ে দেয় তবে সেগুলি কি সম্পর্কিত?

  2. আমার কাছে মনে হয় যে তাদের মধ্যে পার্থক্যটি হ'ল কোন নির্দিষ্ট ক্ষেত্রে কোনও মান ব্যবহার করা যেতে পারে

    • একটি পরামিতি হিসাবে পাস,
    • একটি subroutine থেকে ফিরে, বা
    • একটি পরিবর্তনশীল মধ্যে বরাদ্দ।

    অন্যান্য মামলার উল্লেখ না করে কেন নির্দিষ্ট মামলাগুলি গুরুত্বপূর্ণ?

ধন্যবাদ।


23
প্রথম / দ্বিতীয়-শ্রেণিতে মানগুলিকে শ্রেণিবদ্ধ করা ভাষা দৃষ্টান্তগুলিতে শ্রেণিবদ্ধ করার মতোই ফলহীন। আপনি যে সমস্তটি শেষ করবেন তা হ'ল অস্পষ্ট সাধারণীকরণ যা ছবিটিকে গোলমাল করে। প্রোগ্রামিংয়ের ভাষা বোঝার জন্য এটি সঠিক পদ্ধতি নয়। ভাষার সিনট্যাক্স, স্ট্যাটিকস এবং ডায়নামিক্স বোঝার জন্য গুরুত্বপূর্ণ বিষয়গুলি, তবে কোনও মন্তব্যে
যাওয়াটা

3
একদিকে: পিএল / আমি প্রথম শ্রেণীর হিসাবে লেবেলের একটি উদাহরণ হতে পারি। পিএল / আইতে আপনি লেবেলে টাইপ করা ভেরিয়েবলগুলি ঘোষণা করতে পারেন, তাদের কোডের অবস্থান নির্ধারণ করুন এবং সেগুলি যাও। আপনি সেগুলি পরামিতি হিসাবে পাস করতে পারেন এবং এমনকি তাদের অ্যারে তৈরি করতে পারেন।
থেরোট

@ থেরাট: সম্ভবত আমি নিজের সাথে ডেটিং করছি, তবে আমিই কি কেবলমাত্র ফরটারনে নিযুক্ত এবং গণিত জিওটিও নিয়ে কাজ করতে হয়েছিল? এবং না, আমি @ $% লিখিনি! কোড, আমি আটকে ছিল এটি পুনরায় ইঞ্জিনিয়ারিং।
jamesqf

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

উত্তর:


45

কোনও নেই, এবং এটি বেশ স্বেচ্ছাচারিতা।

প্রথম শ্রেণি এবং অন্য সকলের মধ্যে একমাত্র কার্যকর পার্থক্য। "অন্যান্য" বন্ধনীতে থাকা প্রতিটি ক্ষেত্রে প্রতিটি ক্ষেত্রে তার নিজস্ব স্বতন্ত্র বিধি থাকে এবং সেগুলি একসাথে লম্পিং করা খুব সহায়ক নয়। "প্রথম শ্রেণীর" অর্থ "আপনাকে নিয়মগুলি সন্ধান করতে হবে না", মূলত এবং "অন্যান্য" "আপনাকে নিয়ম শিখতে হবে"।

উদাহরণস্বরূপ সি ++ এ পৃথক ফাংশনগুলি হ'ল প্রথম শ্রেণীর মান, যতক্ষণ না তারা রাষ্ট্রবিহীন থাকে। ওভারলোড সেটগুলি কিন্তু ল্যাম্বডাস নয়। সি # ফাংশনে সাধারণত প্রথম শ্রেণীর মান হয় তবে কিছু বিশ্রী ঘটনা ঘটে যা টাইপ অনুক্রমের সাথে কাজ করার সময় দেখা দেয় যা এগুলিকে সব ক্ষেত্রেই হতে বাধা দেয়।


10
+1, যদিও প্রোগ্রামিং ল্যাঙ্গুয়েজ প্রাগম্যাটিক্সের মতো একটি বইয়ের প্রসঙ্গে যা প্রচুর ভাষার বহু সংখ্যক নির্মাণের সাথে তুলনা করে এবং গভীরতার মধ্যে মিল এবং পার্থক্য এবং নিদর্শনগুলির বিশ্লেষণ করে, আমি মনে করি এই সংক্ষিপ্তরূপটি কার্যকর হতে পারে। (কেবলমাত্র অন্যান্য লোকেরা "সেকেন্ড হ্যান্ড" এবং "তৃতীয় হাত" নির্দিষ্ট জিনিসগুলির অর্থ বোঝার আশা করে ঘুরে
বেড়াবেন না

(উহ, যেখানে "দ্বিতীয় সরাসরি" এবং "তৃতীয় হাত" আমি অবশ্যই গড় "দ্বিতীয় শ্রেনীর" এবং "তৃতীয় শ্রেণী" :-P দ্বারা।)
ruakh

3
আপনি যদি সেকেন্ড হ্যান্ড ফাংশনগুলির সাথে বাণিজ্য করতে চান তবে ফাংশনগুলি প্রথম শ্রেণির নাগরিক এমন ভাষায় আপনার পক্ষে আরও ভাল হবে। ^^
5gon12eder

@ 5gon12eder: "সেকেন্ড হ্যান্ড ফাংশনগুলি" আপনি কি তৃতীয় পক্ষের লাইব্রেরি থেকে ফোন করবেন, না?
জামেস্কেফ

11

আমি ডেডএমজির সাথে একমত, গুরুত্বপূর্ণ পার্থক্যটি প্রথম শ্রেণির এবং "অন্য কিছুর মধ্যে"। তবে পার্থক্যটিকে শ্রেণিবদ্ধ করার আরও একটি উপায় আছে।

প্রথম শ্রেণির মানগুলি হ'ল ডেটা, অন্যগুলি কোড। (মোটামুটিভাবে বলতে: আমি নিশ্চিত যে ব্যতিক্রমগুলি রয়েছে But তবে এটি একটি সত্যিকারের ভাল অনুমান যা সত্য-বিশ্বের ভাষাগুলির জন্য ধারণ করে))

কিছু ভাষায় আপনি কোডটিকে ডেটা হিসাবে বিবেচনা করতে পারেন। কার্যকরী ভাষাগুলি এর জন্য বিখ্যাত: তাদের মধ্যে কিছু আপনাকে প্রোগ্রামের চলমান চলাকালীন কোড পরিবর্তন করতে দেয় ( জেনেটিক প্রোগ্রামিংয়ের ভিত্তি )।

সি এবং সি ++ এর মতো ভাষা আপনাকে ফাংশনের ঠিকানা নিতে দেয়: আপনি এগুলি সংশোধন করতে না পারলে আপনি অন্যান্য ফাংশনগুলিতে পরামিতি হিসাবে ফাংশনগুলি পাস করতে পারেন। সি ++ এও ফান্টাকারের সিনট্যাকটিক চিনি রয়েছে । ধারণাটি একটি সম্পূর্ণ অবজেক্ট তৈরি করা যা তলদেশে, কোনও ফাংশনের মতো আচরণ করে এবং এটি ডেটা বলে মনে হয় পাস করা যায়। অন্যথায় যা নিম্ন-শ্রেণীর মান তা প্রথম শ্রেণির মান হিসাবে বিবেচনা করা যেতে পারে।

গাণিতিকভাবে, আমি মনে করি সর্বোত্তম উপায় হ'ল কোনও প্রোগ্রামের এএসটি ভাবা । সাধারণত, প্রতিটি টোকেনের একটি নির্দিষ্ট ধরণের থাকে যা অন্য ধরণের সাথে সামঞ্জস্যপূর্ণ বা নাও হতে পারে। এল-মান, আর-মান এবং সি ++ তে মান ধরণের অন্যান্য পুরো গণ্ডগোলটি ভাবেন । তারপরে কীওয়ার্ডগুলিতে যুক্ত করুন, চিহ্নগুলি যা ফাংশন হয় ইত্যাদি these এগুলির কয়েকটি ভাষার উপর নির্ভর করে প্রথম, দ্বিতীয় বা তৃতীয় শ্রেণির মান হতে পারে।

আমি নিশ্চিত নই যে মূল্যমানের "শ্রেণি" জেনে রাখা একাডেমিক পরিবেশ ব্যতীত সমস্ত গুরুত্বপূর্ণ। রিয়েল-ওয়ার্ল্ডে, জেনে রাখা গুরুত্বপূর্ণ বিষয়টি হল আপনি কীভাবে কোডটি পাস করতে পারেন, এটি ডেটার মতো চিকিত্সা করে: ফান্টেক্টর, ল্যাম্বডাস / ক্লোজার্স, ফাংশন পয়েন্টার ইত্যাদি ing


2
নন- ...কোডবিহীন প্রথম-শ্রেণীর মানটির উদাহরণ: লুয়ার একটি বিশেষ "ভেরিয়েবল" রয়েছে যা ভারার্গ ফাংশন পরামিতি বোঝাতে ব্যবহৃত হয়। আপনি এটি অনেকগুলি এক্সপ্রেশনে ব্যবহার করতে পারেন যেন এটি একটি মান তালিক (যেমন print(...)বা local args = {...}) তবে কিছু জিনিস রয়েছে যা আপনি এটির সাথে করতে পারেন না, যেমন এটি ক্লোজারে উল্লেখ করুন ( function(...) return function() return ... end end)।
কর্নেল তিরিশ দুই

8

ডোনোটেশনাল সেমেন্টিকস প্রোগ্রামিং ভাষায় মান এবং ভেরিয়েবল কীভাবে কাজ করে তা বর্ণনা করার জন্য একটি গাণিতিক বেস সরবরাহ করে। এটি আমার কম্পিউটার সায়েন্স ডিগ্রিতে এত ভালভাবে ব্যাখ্যা করা হয়েছিল যে আমি ডেনোটেশনাল সেমেন্টিক্স পরীক্ষায় শীর্ষ স্থান পেয়েছি, তারপরে বেশিরভাগটি ভুলে গিয়েছিলাম এবং এটি একটি প্রোগ্রামার হিসাবে 20 বছরের জীবনে কখনও ব্যবহার করার প্রয়োজন হয়নি।

আপনি একটি ভাল সংজ্ঞায়িত গাণিতিক ভিত্তি ব্যবহার করতে বেছে নিতে পারেন, বা আপনি "প্রথম শ্রেণির অবস্থা" এর মতো অনানুষ্ঠানিক পরিভাষা ব্যবহার করতে পারেন। কোর্সটি স্কট এর প্রোগ্রামিং ল্যাঙ্গুয়েজ প্র্যাকমেটিক্স ভিত্তিক করা থাকলে আমি আরও অনেক কিছু জানতে পারতাম, তবে প্রোগ্রামিং ভাষার নকশায় পিএইচডি করতে যাওয়া এমন ব্যক্তির জন্য প্রথাগত গণিতের প্রয়োজন।

আপনি যদি বেশিরভাগ প্রোগ্রামিং ভাষার জন্য স্পেসিফিকেশনটি পড়েন তবে আপনি ডেনোটেশনাল শব্দার্থবিজ্ঞানের একটি অসম্পূর্ণ অভাব লক্ষ্য করবেন, তবে বেশিরভাগ ভালভাবে ডিজাইন করা ভাষাগুলিতে এমন একটি দল রয়েছে যা প্রোগ্রামিং ভাষার নকশায় দক্ষ, তাই ডেনোটেশনাল শব্দার্থকে ভালভাবে বোঝে।

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

নোট করুন যে মাইকেল এল। স্কট কম্পিউটার সায়েন্সের একজন শীর্ষস্থানীয় গবেষক, তাই এটি আনুষ্ঠানিক গণিতগুলি ব্যবহার করে বুঝতে এবং খুব খুশি হবেন, তবে সেরা গবেষকদের মতো তিনি আমাদের বাকী অংশেও গবেষণার প্রয়োগ ব্যাখ্যা করার ক্ষেত্রে দক্ষ।


ধন্যবাদ। আপনার ক্লাসে কোন বই ব্যবহৃত হত? আপনি এখন কোন বইয়ের সুপারিশ করবেন? আমি স্ব-শিক্ষানবিশ
টিম

@ টিম, আমি আমার ক্লাস 20 বছর আগে করেছি! আমি প্রত্যাশা করি যে মিশেল স্কট এর বইটি অন্যতম সেরা এবং আপনি পিএইচডি স্তরের গবেষণা না করতে চাইলে আপনার আরও বেশি কভার হবে cover
ইয়ান

3

না, "প্রথম-শ্রেণীর" এবং "প্রথম-ক্রমে" "প্রথম" শব্দের অর্থ ভিন্ন জিনিস।

তবে হ্যাঁ, "প্রথম-শ্রেণি" এবং "প্রথম-আদেশ" এর ধারণাগুলি সম্পর্কিত। তারা উভয় শ্রেণিবদ্ধকরণ সম্পর্কে যা কোন ধারণা যে কোনও ভাষা ভাষার বর্ণনা দিতে পারে তাও বিমূর্ত করতে পারে।

কোনও ভাষার সাধারণ বিমূর্তকরণ প্রক্রিয়া যদি সেই ধারণাকে বিমূর্ত করতে পারে তবে একটি ধারণাটি প্রথম শ্রেণীর

উদাহরণস্বরূপ, জাভা প্রোগ্রামিং ল্যাঙ্গুয়েজ পূর্ণসংখ্যার বর্ণনা দিতে পারে এবং পূর্ণসংখ্যার উপর বিমূর্তকরণের জন্য (পদ্ধতি প্যারামিটার হিসাবে তাদের গ্রহণ করে, ফাংশন ফলাফল হিসাবে তাদের ফিরিয়ে দেওয়া, ডেটা স্ট্রাকচারে স্টোর করে রাখা, ...) পূর্ণসংখ্যার জন্য কাজ করে all

কোনও ধারণাকে ফার্স্ট অর্ডার দেওয়া হয় যদি এটি নিজের উপর বিমূর্ত ব্যবহার করতে না পারে।

উদাহরণস্বরূপ, আবার জাভাতে, আমরা কিছু জিনিসের উপর বিমূর্তকরণের জন্য পদ্ধতিগুলি ব্যবহার করতে পারি। তবে আমরা পদ্ধতির উপর বিমূর্তকরণের জন্য পদ্ধতিগুলি ব্যবহার করতে পারি না, কারণ কোনও পদ্ধতির নামটি পদ্ধতি প্যারামিটার হিসাবে পাস করা যায় না। এটি জাভাস্ক্রিপ্টে পৃথক, যেখানে আপনি কোনও স্ট্রিং হিসাবে কোনও বস্তুর নাম ব্যবহার করে তার ব্র্যাককেট স্বরলিপি ব্যবহার করতে পারেন এবং আপনি স্ট্রিংগুলিতে বিমূর্ত করতে পারেন।

কোনও ধারণাটি দ্বিতীয়-ক্রম হয় যদি এটি নিজের প্রথম অর্ডার ব্যবহারের উপর বিমূর্ত করতে ব্যবহৃত হয় তবে দ্বিতীয়-ক্রমের ব্যবহারের চেয়ে বেশি নয়।

উদাহরণস্বরূপ, জাভাতে, আপনি জেনেরিক্সগুলি প্রকারের (যেমন হিসাবে class Foo<T> { public List<T> content; }) বিমূর্ত করতে ব্যবহার করতে পারেন । তবে জেনেরিক্সের (যেমন রয়েছে class Bar<T> { public T<Int> content; }) বিমূর্ত করার জন্য আপনি জেনেরিকগুলি ব্যবহার করতে পারবেন না । স্কালায় এটি আলাদা।

কোনও ধারণাটি তৃতীয়-ক্রম হয় যদি এটি নিজের প্রথম অর্ডার এবং দ্বিতীয়-ক্রমের ব্যবহারগুলিতে বিমূর্ত ব্যবহার করতে ব্যবহৃত হয় তবে দ্বিতীয়-আদেশ ব্যবহারের চেয়ে বেশি নয়।

ইত্যাদি।

অবশেষে, কোনও ধারণাই হ'ল -অর্ডার হয় যদি এটি নিজেরাই স্বেচ্ছাসেবী ব্যবহারের বিমূর্ত ব্যবহার করতে ব্যবহৃত হয়।

সংক্ষিপ্তসার: যদি কোনও বিমূর্ত বৈশিষ্ট্যটি প্রথম শ্রেণির হয় তবে এটি উচ্চতর-অর্ডারও। এবং যদি কোনও বিমূর্ত বৈশিষ্ট্যটি প্রথম-ক্রম হয় তবে এটি প্রথম শ্রেণির হতে পারে না।


1
আপনি জাভাতে করতে পারেন List<List>, যদিও। আপনি এই অংশটি দিয়ে কী বোঝাতে চেয়েছেন তা স্পষ্ট করে বলতে পারেন?
২:24

1
ভাল যুক্তি. আমি বলতে চাচ্ছি: class Foo<A> { A<Int> ... }। অর্থাত, জেনেরিক শ্রেণির হিসাবে জেনেরিক ধরণের পরামিতি ব্যবহার করার অর্থ। তারপর, Foo<List>instantiate হবে A<Int>থেকে List<Int>। জাভাতে, এটি সম্ভব নয়। আমি পরে উত্তর এটি সম্পাদনা করার চেষ্টা করব।
Toxaris

আসলে, এটি সম্ভব নয় not

আমি এখন বিভ্রান্তিকর List<List>উদাহরণটি প্রতিস্থাপন করেছি । এই সমস্যাটি দেখানোর জন্য ধন্যবাদ, পলিগনোম।
টক্সারিস

@ টোকারিস আমার মনে হয় এটি আপনার নিজের দ্বারা তৈরি করা কেবল আইডিয়াসাইক্রেটিক পরিভাষা। একটি 'ধারণা' প্রথম-আদেশ বা দ্বিতীয়-আদেশ নয়, একটি লজিকাল কোয়ানটিফায়ার।
মাইলস রাউটিং

2

প্রোগ্রামিং ভাষার ক্ষেত্রে প্রথম / দ্বিতীয় / তৃতীয় শ্রেণির মানগুলির জন্য গণিতের ভিত্তি কী?

আমি যে সম্পর্কে সচেতন কিছুই।

পরিভাষাটি আমাকে প্রথম / দ্বিতীয় অর্ডার যুক্তির স্মরণ করিয়ে দেয় তবে সেগুলি কি সম্পর্কিত?

আসলে তা না.

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

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

অন্যান্য মামলার উল্লেখ না করে কেন নির্দিষ্ট মামলাগুলি গুরুত্বপূর্ণ?

আপনাকে লেখককে একটি সুনির্দিষ্ট উত্তর চাইতে হবে।

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


2

"প্রথম-শ্রেণীর মান", এই প্রসঙ্গে, প্রোগ্রামিং ভাষা তত্ত্বের আদর্শ পরিভাষা। একটি প্রথম শ্রেণির মান এমন একটি ভাষা যা ভাষার সাধারণ মান হিসাবে চালিত হতে পারে, এমন একটি বিষয় যা রানটাইমের সময় গণনা করা যায়। অবশ্যই ভাষাটির জন্য শব্দার্থবিজ্ঞানের সংজ্ঞা না দেওয়া পর্যন্ত এটি একটি টোটোলজিকাল সংজ্ঞা এবং তারপরে শব্দার্থকরা যে মান হিসাবে সংজ্ঞা দেয় তা একটি মান। ধারণার মূল বিষয়টি হ'ল প্রত্যক্ষভাবে অপ্রত্যক্ষভাবে অ্যাক্সেসের বিপরীতে সরাসরি কী কী কারসাজি করা যায় তা চিহ্নিত করা।

উদাহরণস্বরূপ, প্রায় প্রতিটি প্রোগ্রামিং ল্যাঙ্গুয়েজে বাউন্ডেড মাপের মেশিন ইন্টিজারগুলি (যেমন 8-বিট ইন্টিজার, বা 32-বিট ইন্টিজার, বা 64-বিট ইন্টিজার ইত্যাদি) প্রথম শ্রেণীর মান। আপনি এগুলিকে ভেরিয়েবলে সংরক্ষণ করতে পারেন, এগুলি পাস এবং ফাংশনগুলিতে ফিরিয়ে দিতে পারেন ইত্যাদি most বেশিরভাগ ভাষায় তবে অ্যাসেম্বলি এবং সি এর মতো নিম্ন-স্তরের ভাষাগুলি নয়, স্ট্রিংগুলি প্রথম শ্রেণির মান but তবে সি তে, সেগুলি নয়, আপনি কেবল স্ট্রিং পয়েন্টার পেতে। সি তে স্ট্রিং এবং অ্যারেগুলি প্রথম শ্রেণীর মান নয়: উদাহরণস্বরূপ আপনি কোনও ফাংশনে অ্যারে পাস করতে পারবেন না, আপনি অ্যারে ভেরিয়েবলের জন্য কোনও অ্যারে বরাদ্দ করতে পারবেন না ইত্যাদি ইত্যাদি সিতে, ফাংশনগুলি প্রথম শ্রেণির মান নয় হয়: আপনি একটি চলক একটি ফাংশন সংরক্ষণ করতে পারবেন না, একটি ফাংশন শুধুমাত্র পয়েন্টার। বিপরীতে, স্ট্রিং এবং ফাংশনগুলি হ'ল বেশিরভাগ উচ্চ-স্তরের প্রোগ্রামিং ভাষাগুলিতে প্রথম-শ্রেণীর মান: আপনি এগুলি স্ট্রিং ইত্যাদিতে সঞ্চয় করতে পারেন etc.

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

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.