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