GOLD یک تجزیه گر
برخی از ویرایشها در این مقاله در چارچوب یک تکلیف دانشگاهی انجام شدهاند. این تکالیف توسط ؟ برای دانشجویان ؟ تعیین شدهاند. |
این مقاله، GOLD یک تجزیه گر، اخیراً بهواسطهٔ فرایند ایجاد مقاله ایجاد شدهاست. بازبینیکننده در حال بستن درخواست است و این برچسب احتمالاً بهزودی برداشته میشود.
ابزارهای بازبینی: پیشبارگیری بحث اعلان به نگارنده |
خطای اسکریپتی: پودمان «AfC submission catcheck» وجود ندارد.
این نوشتار به هیچ منبع و مرجعی استناد نمیکند. (دسامبر ۲۰۲۱) |
GOLD یک سیستم تجزیه و تحلیل رایگان است که برای پشتیبانی از چندین زبان برنامه نویسی طراحی شده است.
طراحی[ویرایش]
این سیستم از یک DFA برای تحلیل واژگانی و از الگوریتم LALR برای تجزیه استفاده می کند. هر دوی این الگوریتمها ماشینهای حالت هستند که از جداول برای تعیین اقدامات استفاده میکنند. GOLD بر اساس اصل جداسازی منطقی فرآیند تولید جداول تجزیه LALR و DFA از پیادهسازی واقعی خود الگوریتمهای تجزیه طراحی شده است. این اجازه می دهد تا تجزیه کننده ها در زبان های برنامه نویسی مختلف پیاده سازی شوند و در عین حال گرامرها و روند توسعه یکسانی حفظ شود.
سیستم GOLD از سه جزء منطقی تشکیل شده است، "Builder"، "Engine" و یک تعریف فایل "Compiled Grammar Table" که به عنوان یک واسطه بین سازنده و موتور عمل می کند.
سازنده[ویرایش]
سازنده جزء اصلی و کاربرد اصلی سیستم است. سازنده برای تجزیه و تحلیل نحو یک زبان (مشخص شده به عنوان گرامر) و ساخت جداول LALR و DFA استفاده می شود. در طی این فرآیند، هرگونه ابهام در گرامر گزارش خواهد شد. این در اصل همان وظیفه ای است که توسط کامپایلر-کامپایلرها مانند YACC و ANTLR انجام می شود .
هنگامی که جداول تجزیه LALR و DFA با موفقیت ساخته شدند، سازنده می تواند این داده ها را در یک فایل جدول گرامر کامپایل شده ذخیره کند. این اجازه می دهد تا اطلاعات بعداً توسط سازنده بازگشایی شود یا در یکی از موتورها استفاده شود. در حال حاضر کامپوننت سازنده فقط برای سیستم عامل های ویندوز 32 بیتی موجود است.
برخی از ویژگی های سازنده عبارتند از:
- مجوز نرم افزار رایگان
- مرور حالت
- تست یکپارچه
- ویزارد چند فایل را تست کنید
- ایجاد صفحات وب (از جمله نمودارهای نحوی پیوند داده شده)
- برنامه های اسکلت را با استفاده از قالب ها تولید کنید
- گرامرها را به YACC صادر کنید
- جداول را به XML یا متن فرمت شده صادر کنید
فایل گرامر جدول کامپایل شده[ویرایش]
فایل Compiled Grammar Table برای ذخیره اطلاعات جدول تولید شده توسط Builder استفاده می شود.
موتورها[ویرایش]
بر خلاف سازنده که فقط بر روی یک پلتفرم اجرا میشود، موتور برای یک زبان برنامه نویسی خاص و یا پلتفرم توسعه نوشته شده است. موتورها الگوریتمهای LALR و DFA را پیاده سازی می کند. از آنجایی که زبان های برنامه نویسی مختلف از رویکردهای متفاوتی برای طراحی برنامهها استفاده میکنند، هر پیاده سازی موتور متفاوت خواهد بود. در نتیجه پیادهسازی موتور نوشته شده برای ویژوال بیسیک 6 بسیار متفاوت از پیادهسازی نوشته شده برای ANSI C خواهد بود.
در حال حاضر موتور GOLD برای زبانهای برنامه نویسی / پلتفرم های زیر پیاده سازی شده است.موتورهای جدید را می توان با استفاده از کد منبع برای موتورهای موجود به عنوان نقطه شروع پیاده سازی کرد.
- اسمبلی - Intel x86
- ANSI C
- سی شارپ
- دی
- دلفی
- جاوا
- پاسکال
- پایتون
- ویژوال بیسیک
- ویژوال بیسیک
- ویژوال C++
گرامرها[ویرایش]
گرامرهای GOLD مستقیما بر اساس BNF، عبارات منظم و نماد مجموعه هستند.
گرامر زیر، نحوی را برای یک زبان برنامه نویسی حداقل منظوره به نام simple تعریف میکند.
مروری بر توسعه[ویرایش]
مرحله اول شامل نوشتن و آزمایش یک دستور زبان برای زبان مورد تجزیه است. گرامر را میتوان با استفاده از هر ویرایشگر متنی مثل Notepad یا ویرایشگری که در سازنده تعبیه شده است نوشت. در این مرحله نیازی به کد نویسی نیست.
پس از تکمیل گرامر، توسط سازنده آنالیز میشود، جداول تجزیه LALR و DFA ساخته میشوند و هرگونه ابهام یا مشکل در گرامر گزارش میشود. پس از آن، جداول در یک فایل جدول گرامر کامپایل شده ذخیره میشوند تا بعدا توسط یک موتور تجزیه استفاده شود. در این مرحله دیگر نیازی به سازنده تجزیه گر GOLD نیست.
در مرحله آخر جداول توسط یک موتور خوانده میشود. در این مرحله فرایند توسعه به زبان پیاده سازی انتخاب شده بستگی دارد.
منابع[ویرایش]
لینک های خارجی[ویرایش]
رده:پیادهسازی زبان برنامهنویسی
This article "GOLD یک تجزیه گر" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:GOLD یک تجزیه گر. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.