"সিনট্যাক্স" এবং "সিমেন্টিকস" এর অর্থ কী এবং তারা কীভাবে আলাদা?

0
12077

একটি ভাষা বৈধ বাক্যের একটি সেট। কি একটি বাক্য বৈধ করে তোলে? আপনি বৈধতাকে দুটি জিনিসে ভাঙ্গতে পারেন: সিনট্যাক্স এবং শব্দার্থবিদ্যা। সিনট্যাক্স শব্দটি ব্যাকরণগত কাঠামোকে বোঝায় যেখানে শব্দার্থবিদ্যা শব্দটি সেই কাঠামোর সাথে সাজানো শব্দভান্ডারের চিহ্নগুলির অর্থ বোঝায়। যদিও ব্যাকরণগত (বাক্যগতভাবে বৈধ) ইন্দ্রিয়গ্রাহ্য (অর্থাৎ বৈধ) বোঝায় না। উদাহরণস্বরূপ, ব্যাকরণগত বাক্য "cows flow supremely" ইংরেজিতে ব্যাকরণগতভাবে ঠিক আছে (বিষয়-ক্রিয়া বিশেষণ), কিন্তু কোন অর্থ নেই। একইভাবে, একটি প্রোগ্রামিং ল্যাঙ্গুয়েজে, আপনার ব্যাকরণ (সিনট্যাক্সের নিয়ম) ID EQUALS ID অনুমোদন করতে পারে কিন্তু আইডির সাথে মিলে যাওয়া টেক্সটটি টাইপ নামের (একটি শব্দার্থিক নিয়ম) প্রতিনিধিত্ব না করলেই ভাষাটি বাক্যটিকে অনুমতি দিতে পারে।

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