প্রোগ্রামিং ভাষার "বৈশিষ্ট্যের জন্য দেশীয় সমর্থন" বলতে কী বোঝায়?


15

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

এক্স ভাষা নেটিভ ওয়াই বৈশিষ্ট্য সমর্থন করে


সত্যিকার অর্থে পাইথন 3 ইউনিকোডকে স্থানীয়ভাবে সমর্থন করে। যেমনটি 2.7।
এনমিকহেলস

উত্তর:


16

এর অর্থ এই যে কোনও প্রদত্ত বৈশিষ্ট্যটিকে সমর্থন করার জন্য, বিকাশকারীকে এমন কোনও উপাদান ব্যবহার করতে হবে না যা ভাষায় নিজেই এম্বেড করা হয় না, যেমন কোনও এক্সটেনশন বা তৃতীয় পক্ষের পণ্য।

উদাহরণস্বরূপ, পিএইচপি-র ইউনিকোডের কোনও নেটিভ সমর্থন নেই, কারণ প্রতিটি ফাংশন যা পিএইচপি-র স্ট্রিংয়ের সাথে কাজ করে তা নিজেই ইউনিকোড সমর্থন করে না। উদাহরণস্বরূপ, একটি স্ট্রিংয়ের জন্য, আপনি ব্যবহার করতে পারবেন না substr, তবে ব্যবহারের প্রয়োজন mb_substr, যার জন্য মাল্টিবাইট স্ট্রিং এক্সটেনশনটি ব্যবহার করা দরকার।

প্রদত্ত বৈশিষ্ট্যের নেটিভ সমর্থন পেতে কেবল উত্স কোড ট্রাঙ্কে কোনও এক্সটেনশন অন্তর্ভুক্ত করা যথেষ্ট নয়। পরিবর্তে, পিএনএইচপি ইউনিকোডের জন্য দেশীয় সমর্থন যদি ইউনিকোড সি # বা জাভা মত ডিফল্ট এনকোডিং হয়।


1
সুতরাং এর অংশটি কি ভাষার অংশ কিনা? আমি বলতে চাইছি যদি তারা mb_stringপিএইচপি উত্সটিতে কার্যকারিতা অন্তর্ভুক্ত করে তবে এটি স্থানীয় হয়ে উঠবে?
lovesh

1
@ লভেশ: এটি এতটা সহজ নয়। যদি তারা পিএইচপি ট্রাঙ্কে এই এক্সটেনশনটি অন্তর্ভুক্ত করে তবে ইউনিকোডটি ডিফল্ট এনকোডিং না করেই আমি নিশ্চিত নই যে এটি স্থানীয় হিসাবে বিবেচিত হবে কিনা। যদি পরিবর্তে, ইউনিকোড সি # এর মতো ডিফল্ট এনকোডিং হয়ে যায়, তবে হ্যাঁ, এটি একটি স্থানীয় সমর্থন হবে।
আর্সেনী মোরজেঙ্কো

অথবা আপনি বলতে পারেন এটি স্থানীয়ভাবে সমর্থিত তবে সাধারণ নয় / ডিফল্ট নয়। এটি কেবল শব্দার্থকতা।
ব্লুরাজা - ড্যানি পিফ্লুঘুফ্ট

2
কোনও ভাষার স্থানীয়ভাবে কিছু ধরণের স্ট্রিং সমর্থন করার জন্য, আমার কমপক্ষে এটির জন্য স্ট্রিং আক্ষরিক জন্য একটি সিনট্যাক্স থাকা প্রয়োজন kind উদাহরণস্বরূপ, এর s = "Müsliriegel"mb;পরিবর্তে এমন s = toMb("Müsliriegel");
কিছুর

11

"এক্স ভাষা স্থানীয়ভাবে Y বৈশিষ্ট্যটিকে সমর্থন করে" এর অর্থ আপনি কোনও এক্সটেনশন বা এটিকে কাজ করার জন্য অন্য কোনও প্রচেষ্টা ছাড়াই Y বৈশিষ্ট্যটি ব্যবহার করতে পারেন। এটি ভাষা থেকে সরাসরি ব্যবহারযোগ্য।

উদাহরণস্বরূপ আপনি এটি বলতে পারেন,

"সি ++ ভাষা নেটিভালি অপারেটর ওভারলোডিংকে সমর্থন করে।"

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


9

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

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


5

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

আইএমএইচও এমন কিছুকে কল করে যা ভাষার ডিফল্ট লাইব্রেরিতে প্রদর্শিত হয় বা কিছু স্থানীয় বা না তৈরি করে না।

কিছু উদাহরণ:

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

যদিও আমি বলব যে সি ++ এর চেয়ে সি এর চেয়ে নেটিভ স্ট্রিং টাইপ নেই। স্ট্যান্ডার্ড লাইব্রেরিতে একটি বেসিক_স্ট্রিং টেম্পলেট রয়েছে তবে এটি কোনও ভাষার সুবিধা নয়।

যদিও সি ++ 11 আসলে ইউনিকোড সমর্থন যুক্ত করেছে বলে মনে হচ্ছে ইউনিকোড মানগুলির সাথে কাজ করার সুবিধার্থে ভাষাতে নতুন কীওয়ার্ড এবং কাঁচা প্রকার যুক্ত করা হয়েছিল।

আশা করি যা আমি দেখছি পার্থক্য স্পষ্ট করে।


আপনার "কাঁচা ধরণের" শব্দগুলির ব্যবহার আমাকে বিভ্রান্ত করে। আপনি কি স্পষ্ট করতে পারেন?
জেরেমি হিলার

পাইথন 3-এ, সমস্ত স্ট্রিং ইউনিকোড (আলাদা bytesধরণের রয়েছে), তাই পাইথন ইউনিকোডকে স্থানীয়ভাবে সমর্থন করে তা বলা উচিত fair
ব্রেন্ডন লং

পাইথন ২ এর পাশাপাশি এটির একটি unicodeপ্রকার রয়েছে, যদিও পাইথন ৩ এর চেয়ে এটি ব্যবহার করা আরও বেদনাদায়ক +
রোবটটি

@ জেরেমি হিলার: এটি "কাঁচা প্রকার" মৌলিক, অ-সংমিশ্রিত, গ্রন্থাগারহীন প্রকারের বলে মনে হয়। উদাহরণ হিসেবে বলা যায়, সি করে একটি স্ট্রিং প্রকার (আছে char[]), এবং এমনকি স্ট্রিং লিটারেল। সমস্ত "কাঁচা ধরণের" এর সাথে মিলের আক্ষরিক প্রয়োজন নেই, উদাহরণস্বরূপ সি-তে পয়েন্টারগুলি নেই। ( NULLকেবলমাত্র রূপান্তরিত হতে পারে int*)
এমএসএল্টার্স

-1

কমপক্ষে ব্যাখ্যাযুক্ত বা জেআইটি-সংকলিত ভাষায় "নেটিভ সাপোর্ট" বলতে সাধারণত কোড বোঝায় যা মূলত দম্পতির নীচে বসে থাকা প্রাকপম্পিল্ড কার্যকারিতার লিংক।

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

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

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


1
এটি ভাষায় স্থানীয় সমর্থন নয়; এটি লাইব্রেরিতে স্থানীয় সমর্থন support
স্ল্যাকস

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