Table of Contents
الگوی Interpreter یک الگوی طراحی است که برای ارزیابی جملات در یک زبان استفاده می شود، به ویژه هنگامی که با زبان های خاص دامنه (DSLs) کار می کند، مفید است که زبان های کوچک تخصصی طراحی شده با دامنه های خاص مشکل می توانند منجر به حفظ کد بیشتر و انعطاف پذیر شوند.
درک الگوی Interpreter
ایده اصلی الگوی Interpreter این است که یک نمایندگی گرامری برای یک زبان و یک مترجم را برای ارزیابی جملات در آن زبان تعریف کنید.این شامل ایجاد یک درخت نحو انتزاعی (AST) است که هر گره یک ساختار را در زبان نشان می دهد.
بهترین روش ها برای اجرای
۱- گرامر ساده را نگه دارید
گرامر زبان خود را به عنوان ساده به عنوان ممکن طراحی کنید. دستور زبان پیچیده می تواند به مترجمان پیچیده ای که حفظ آن دشوار است منجر شود.
۲) استفاده از کلاس های تمیز و ثابت
ایجاد کلاس های متمایز برای انواع مختلف گره ها در AST خود را.این باعث می شود فرایند تفسیر ساده و افزایش قابلیت خواندن کد. هر کلاس گره باید منطق ارزیابی خود را در بر گیرد.
2- جدا کردن پارس کردن از تفسیر
سیستم خود را طوری طراحی کنید که تجزیه (در حال حاضر ورودی به یک AST) از تفسیر جدا شده باشد ( تبخیر سرعت) این جدایی ماژولار را بهبود می بخشد و اجازه می دهد تا تست و اشکال زدایی آسان تر شود.
۴- بهینه سازی برای عملکرد
اگر عملکرد مهم است، نتایج تفسیر کاتترینگ را در نظر بگیرید یا سرعت را در صورت امکان ساده کنید.از محاسبات اضافی در طول تفسیر اجتناب کنید.
قرص های معمولی برای جلوگیری از
- اضافه کردن گرامر، منجر به مترجمان پیچیده.
- منطق تفسیر را مستقیماً به قوانین گرامری اختصاص دهید.
- تشخیص جدایی از نگرانی ها بین تجزیه و تحلیل و تفسیر.
- تست غفلت، که می تواند باعث ایجاد اشکالات ظریف در ارزیابی زبان شود.
پس از این بهترین شیوه ها می تواند به شما کمک کند تا قدرت کامل الگوی Interpreter را در زبان های خاص دامنه خود به کار گیرید و به پایه های کد گذاری قوی تر و قابل نگهداری منجر شود.