লোকেরা যখন "এক্স রচনা করে না" বলে, তখন তাদের "রচনা" বলতে যা বোঝায় তার অর্থ "একসাথে রাখা" এবং আপনি কী এবং কীভাবে তাদের একসাথে রেখেছিলেন তা "এক্স" ঠিক কী তার উপর নির্ভর করে খুব আলাদা হতে পারে।
এছাড়াও, যখন তারা "রচনা করেন না" বলে তারা কিছুটা আলাদা জিনিস বোঝাতে পারে:
- আপনি পিরিয়ড এ দুটি এক্স একসাথে রাখতে পারবেন না।
- আপনি করতে পারেন দুই XS একত্র করা, কিন্তু এর ফলে একটি এক্স নাও হতে পারে (IOW: এক্স নয় রচনা অধীনে বন্ধ ।)
- আপনি দুটি এক্স একসাথে রাখতে পারেন, তবে ফলাফলযুক্ত এক্স আপনার প্রত্যাশা মতো কাজ করতে পারে না।
# 1 এর উদাহরণস্বরূপ স্ক্যানার / লেক্সার যুক্ত পার্সার। আপনি "স্ক্যানার / লেক্সারগুলি রচনা করেন না" কথাটি শুনতে পাবেন। এটি আসলে সত্য নয়। তাদের অর্থ "পার্সার যা আলাদা লেক্সিং স্টেজ ব্যবহার করে তা রচনা করে না" is
আপনি কেন পার্সার রচনা করতে চান? ঠিক আছে, কল্পনা করুন যে আপনি জেটব্রেইনস, ইক্লিপস ফাউন্ডেশন, মাইক্রোসফ্ট বা এমবারকাডেরোর মতো আইডিই বিক্রেতা এবং আপনি ওয়েব ফ্রেমওয়ার্কের জন্য একটি আইডিই তৈরি করতে চান। সাধারণ ওয়েব বিকাশে আমরা প্রায়শই ভাষা মিশ্রিত করি। আপনার কাছে <script>
ECMAScript রয়েছে এমন উপাদান সহ HTML ফাইল রয়েছে<style>
সিএসএসযুক্ত উপাদানসমূহ। আপনার এইচটিএমএল, কিছু প্রোগ্রামিং ল্যাঙ্গুয়েজ এবং কিছু টেমপ্লেট ল্যাঙ্গুয়েজ মেটাসিসট্যাক্সযুক্ত টেম্পলেট ফাইল রয়েছে। আপনি "পাইথন", "পাইথনটি একটি টেম্পলেটে এম্বেড করা", "সিএসএস", "এইচটিএমএল এর মধ্যে সিএসএস", "ইসিএমএএসক্রিপ্ট", "এইচটিএমএল-র মধ্যে ইসমাস্ক্রিপ্ট", "এইচটিএমএল", "এইচটিএমএল এর মধ্যে বিভিন্ন সিনট্যাক্স হাইলাইটার লিখতে চান না একটি টেম্পলেট "এবং আরও অনেক কিছু। আপনি পাইথনের জন্য একটি সিনট্যাক্স হাইলাইটার লিখতে চান, এইচটিএমএল জন্য একটি, টেম্পলেট ভাষার জন্য একটি এবং তারপরে তিনটি একটি টেম্পলেট ফাইলের জন্য একটি সিনট্যাক্স হাইলাইটারে রচনা করুন।
তবে, কোনও লেসচার পুরো ফাইলটিকে টোকেনের একটি স্ট্রিমে পার্স করে, যা কেবলমাত্র একটি ভাষার জন্যই বোধগম্য। অন্যান্য ভাষার পার্সার টোকেন নিয়ে কাজ করতে পারে না লেক্সার এটি পাস করে। উদাহরণস্বরূপ, পাইথন পার্সারগুলি সাধারণত এমনভাবে লিখিত হয় যাতে লেক্সার ইনডেন্টেশন ট্র্যাক করে রাখে এবং নকল INDENT
এবং DEDENT
টোকেনকে টোকেন প্রবাহে ইনজেক্ট করে , এভাবে পার্সারটিকে প্রসঙ্গমুক্ত করতে দেয় যদিও পাইথনের সিনট্যাক্সটি আসলে তা নয়। এইচটিএমএল লেক্সার তবে পুরোপুরি হোয়াইটস্পেসকে উপেক্ষা করবে, কারণ এইচটিএমএল এর কোনও অর্থ নেই।
একটি স্ক্যানারবিহীন পার্সার, যা কেবল অক্ষরগুলি পড়ে, অক্ষর প্রবাহটি আলাদা আলাদা করে যায়, যা এটি আবার ফিরিয়ে দিতে পারে, ফলে তাদের রচনা করা আরও সহজ করে তোলে।
# 2 এর একটি উদাহরণ তাদের মধ্যে এসকিউএল কোয়েরিগুলির সাথে স্ট্রিং। আপনার দুটি স্ট্রিং থাকতে পারে, যার প্রতিটিটির মধ্যে সিন্ট্যাক্টিক্যালি সঠিক এসকিউএল কোয়েরি রয়েছে, তবে আপনি যদি দুটি স্ট্রিংকে একত্রে পরিণত করেন, ফলাফলটি সিনট্যাক্টিক্যালি সঠিক এসকিউএল কোয়েরি নাও হতে পারে। কেন আমরা মত ক্যোয়ারী algebras আছে যে ARel
, যা না রচনা করুন।
লকগুলি # 3 এর উদাহরণ। যদি আপনার কাছে লক সহ দুটি প্রোগ্রাম থাকে এবং আপনি সেগুলি একটি একক প্রোগ্রামের সাথে একত্রিত করেন, আপনার কাছে এখনও তালা সহ একটি প্রোগ্রাম রয়েছে, তবে দুটি মূল প্রোগ্রাম সম্পূর্ণ সঠিক হলেও, অচলাবস্থা এবং ঘোড়দৌড় মুক্ত, ফলস্বরূপ প্রোগ্রামটি অগত্যা এটির প্রয়োজন নেই সম্পত্তি। লকগুলির সঠিক ব্যবহার হ'ল পুরো প্রোগ্রামের একটি বৈশ্বিক সম্পত্তি, এবং এমন একটি সম্পত্তি যা আপনি প্রোগ্রামগুলি রচনা করার সময় সংরক্ষণ করা হয় না। এই থেকে আলাদা, উদাহরণস্বরূপ, লেনদেন, যার জন্য কি করতে রচনা করুন। একটি প্রোগ্রাম যা লেনদেনকে সঠিকভাবে ব্যবহার করে সেটিকে অন্য একটি প্রোগ্রামের সাথে তৈরি করা যেতে পারে এবং একটি সংযুক্ত প্রোগ্রাম পাওয়া যায় যা লেনদেনকে সঠিকভাবে ব্যবহার করে।