প্রোগ্রাম কম্পাইল করার সময় lexical analysis এবং syntax analysis দুটি গুরুত্বপূর্ণ ধাপ, যা সোর্স কোডকে ধাপে ধাপে বিশ্লেষণ করে পরবর্তী পর্যায়ে পাঠায়। নিচে বিষয়টি বিস্তারিতভাবে তুলে ধরা হলো—
-
Lexical Analysis (লেক্সিক্যাল বিশ্লেষণ) — এই ধাপের কাজ হলো সোর্স কোডের চরিত্রগুলোকে স্ক্যান করে অর্থবহ ইউনিটে বিভক্ত করা, যেগুলোকে বলা হয় tokens।
-
উদাহরণ: keywords, identifiers, constants, operators, punctuations ইত্যাদি।
-
Output: Tokens — অর্থাৎ সোর্স কোডের প্রতিটি উপাদানকে শ্রেণিবদ্ধভাবে উপস্থাপন করা।
-
-
Syntax Analysis (সিনট্যাক্স বিশ্লেষণ) — এখানে তৈরি হওয়া tokens গুলোর ক্রম ভাষার ব্যাকরণ অনুযায়ী সঠিক কিনা তা যাচাই করা হয়।
-
এটি সাধারণত parse tree বা abstract syntax tree (AST) আকারে উপস্থাপিত হয়।
-
Output: Parse tree — যা প্রোগ্রামের গঠনগত সম্পর্ক দেখায়।
-
-
ভুল বিকল্পগুলোর কারণ:
-
খ) “A parse tree and tokens” — ক্রমটি উল্টো, কারণ প্রথমে tokens তৈরি হয়, পরে parse tree।
-
গ) “A syntax tree and intermediate codes” — intermediate code তৈরি হয় semantic analysis এর পর।
-
ঘ) “Tokens and error messages” — error message সাধারণত ফলাফল নয়, বরং ভুলের ক্ষেত্রে ব্যতিক্রম।
-
সুতরাং সঠিক উত্তর হলো ক) — Tokens and a parse tree, কারণ Lexical Analysis → Tokens এবং Syntax Analysis → Parse Tree।