সিনট্যাক্স এবং ব্যাকরণের মধ্যে পার্থক্য কী?


14

আমি সিনট্যাক্স এবং শব্দার্থবিজ্ঞানের মধ্যে পার্থক্য বুঝতে পারি -

সিনট্যাক্স : কীভাবে প্রতীকগুলি একত্রিত হয়ে বৈধ অভিব্যক্তি বা বিবৃতি তৈরি করে।
শব্দার্থবিজ্ঞান : সেই চিহ্নগুলির অর্থ যা একটি অভিব্যক্তি বা বিবৃতি গঠন করে।

তবে ব্যাকরণ কী? উদাহরণস্বরূপ: কখনও কখনও আমি লোকদের বলতে শুনেছি যে কিছু নির্মাণ "ব্যাকরণগতভাবে ভুল তবে বাক্যগতভাবে এটি সঠিক"। এর মানে কী?


এফডাব্লুআইডাব্লু, এটি আমার কাছে বাজে কথা বলে মনে হচ্ছে। যদি ভাষার ব্যাকরণ কোডের টুকরোটি গ্রহণ করে তবে এটি বাক্য গঠনটি মেনে চলে। সম্ভবত কারওর "সিনট্যাক্স" এর খুব বিস্তৃত (এবং মানহীন) সংজ্ঞা রয়েছে। প্রসঙ্গ / উৎস?

@delnan। সত্য না. উদাহরণস্বরূপ int;ব্যাকরণগতভাবে বৈধ, তবে সি ++ এ সিন্টেক্সিকভাবে অসুস্থ। ব্যাকরণ এই কোডটি নিয়ে কোনও সমস্যা নেই, তবে সিনট্যাক্সের সীমাবদ্ধতার প্রয়োজন একটি ঘোষণার প্রথম অংশে কোনও শ্রেণি-নির্দিষ্টকরণকারী বা এনাম-স্পেসিফার না থাকলে বা সি ++ 11 -তে বন্ধু-স্পেসিফায়ার থাকলে একটি নাম সরবরাহ করা উচিত
জোহানেস স্কাউব - 21

@ জোহানেসচাব-লিটব: ব্যাকরণের যে অংশটি এটি বৈধ করে তোলে তা উদ্ধৃত করার যত্ন নেওয়া?

@ জোহানেস এটি প্রশ্নের বিপরীত পরিস্থিতি।
নিকোল

2
@ জোহানেস স্কাউব: কী বিধি "ইনট;" করে তোলে? বৈধ? ব্যাকরণ সিনট্যাক্স সংজ্ঞায়িত করে।
কেসি প্যাটন

উত্তর:


6

ব্যাকরণ একটি নিয়মের সংকলন যা কোনও নির্দিষ্ট ভাষার সিনট্যাক্সকে সংজ্ঞায়িত করে।

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

typename var_name '[' unsigned_int ']'

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


3

পার্থক্যটি অস্পষ্ট এবং খুব বেশি চিন্তা করার মতো নয়।

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

বিপরীতে, "ব্যাকরণ" সাধারণত প্রাসঙ্গিক মুক্ত ভাষাগুলি বর্ণনার পদ্ধতি (বিশেষত ব্যাকরণ সত্ত্বেও) বোঝায় ।

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

ব্যবহারিকভাবে, যে কেউ "সিনট্যাকটিক" এবং "ব্যাকরণগত" এর মধ্যে একটি পার্থক্যের উপর নির্ভর করে সে আরও ভাল করে বলতে এবং তাদের অর্থটি ব্যাখ্যা করতে পারে।


পার্থক্যটি কেন अस्पष्ट তা আমি বুঝতে পারছি না। ব্যাকরণ সিনট্যাক্স বর্ণনা করে।
কেসি প্যাটন

1
@ ক্যাসি, না, "সিনট্যাক্স" শব্দের একটি ব্যবহার অনুসারে ব্যাকরণ সিনট্যাক্সের একটি সুপারসেট নির্দিষ্ট করে ।
রায়ান কলপার

0

একটি ব্যাকরণ একটি ভাষা সংজ্ঞায়িত করার নিয়মের একটি সেট is বরং ব্যাকরণটি সিনট্যাক্স এবং শব্দার্থবিজ্ঞানের বর্ণনা দেয় । একটি ভাষার দুটি পৃথক ব্যাকরণ থাকতে পারে:

  • সিনট্যাক্স ব্যাকরণ (নিয়মের একটি সেট যা ভাষায় প্রতীকগুলির ক্রম বর্ণনা করে)
  • শব্দার্থবিজ্ঞান ব্যাকরণ (সেই চিহ্নগুলির বৈধ অর্থপূর্ণ স্থান নির্ধারণ এবং ব্যবহারের বর্ণনা দেওয়ার নিয়মের একটি সেট)

উদাহরণস্বরূপ, সি-এর ব্যাকরণের একটি অংশ দেখতে এরকম কিছু হতে পারে:

if statement -> if_keyword "(" expression ")" if_block
if_keyword -> "if"
logical_statement -> some other stuff here...

অর্থ:

an if statement is made of an if keyword followed by a parenthesis followed by an expression followed by a parenthesis followed by an if block
an if keyword is ....

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

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


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