رد کردن این محتوا

معرفی ابزار Bison و FLex

Bison و FLex دو ابزار برنامه نویسی هستند که برای ساخت Lexer و پارسر مورد استفاده قرار می گیرند. در این مقاله قصد معرفی آنها را داریم، و در مقاله ی بعدی از آنها برای ساخت شمارنده کلمات کلیدی استفاده می کنیم.

Lexer چیست ؟

Lexer به برنامه ای گفته می شود که کلمات یک زبان را تشخیص می دهد و آن ها را به صورت توکن هایی به پارسر تحویل می دهد تا پارسر درخت پارس بسازد و به کامپایلر تحویل دهد.

Parser چیست ؟

Parser به برنامه ای گفته می شود که ساختارهای یک زبان را میشناسد و بر اساس آن ها درخت پارس تولید می کند و جهت ساخت زبان ماشین یا اجرای دستورات آن را به کامپایلر می دهد.

زبان چیست ؟

مجموعه ای از قوانین گرامر و حروف (توکن ها) را زبان می گویند که به صورت زیر تعریف می شوند.

 

در این دستورات به حروف بزرگ NonTermial گفته می شود و به بقیه حروف Terminal گفته می شود. NonTermianl ها در واقع متغییر هایی از زبان هستند که ساختارها را مشخص می کنند و Terminal ها حروف الفبای زبان هستند.

مثلا جمله ی 2 + 3 * ( 1 + 5)  یک جمله از زبان بالا است.

برای اطلاعات بیشتر به کتاب های طراحی کامپایلر مراجعه نمایید.

FLex چیست ؟

flex یک نرم افزار است که با معرفی حروف الفبا آنها را تشخصی می دهد از روی آنها یک Lexer در زبان مورد نظر تولید می کند.

برای معرفی الفبا از یک فایل متنی استفاده می کنیم. مثال زبان بالا در flex به صورت زیر است.

 

Bison چیست ؟

bison یه نرم افزار است که با معرفی گرامر زبان به آن، می تواند پارسر زبان مورد نظر را تولید کند.

برای معرفی گرامر زبان از یک فایل متنی استفاده می کنیم . مثال زبان بالا در bison به صورت زیر است.

 

چگونه کد Lexer و Parser را تولید کنیم ؟

برای تولید کد Lexer از دستور زیر استفاده می کنیم.

 

برای تولید کد پارسر از دستور زیر استفاده می کنیم.

 

توجه داشته باشید که تولید این کد ها به تنهایی کاربردی نیست برای اطلاع از دستورات بیشتر به مثال های مختلف موجود در اینترنت مراجعه کنید.

و اما بعد …

در مقاله ی بعدی پروژه ی ساخت شمارنده ی کلمات کلیدی را قرار خواهم داد.

منتشر شده آموزش

اولین نظر دهنده باشید

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *