سه شنبه 19 نوامبر منتشر شد re2c - تولید کننده تحلیلگرهای واژگانی (همچنین کامپایلر عبارات منظم به کد در زبان برنامه نویسی هدف). re2c در تولید سریع و آسان لکسرهای درون خطی تخصص دارد. تفاوت آن با فلکس آنالوگ معروف‌ترش در رابط انعطاف‌پذیر، تولید لکسرهای غیرجدولی بهینه‌سازی شده و پشتیبانی از استخراج فرعی بر اساس ماشین‌های حالت محدود قطعی با برچسب‌ها (TDFA). re2c در پروژه هایی استفاده می شود که سرعت lexer مهم است، به عنوان مثال در Ninja و PHP.

در نسخه 4.0، زیرسیستم تولید کد به طور اساسی بازطراحی شد، که امکان افزودن پشتیبانی از هشت زبان جدید (D، Haskell، Java، JavaScript، OCaml، Python، V، Zig) را علاوه بر زبان‌هایی که قبلاً پشتیبانی می‌شدند (C) را ممکن کرد. /C++، Go، Rust) و همچنین مکانیزمی کلی برای افزودن زبان های جدید از طریق فایل های پیکربندی. مولد کد مسئول ترجمه یک ماشین حالت محدود از قبل ساخته شده و بهینه شده به کد است، یعنی وظیفه آن انتخاب ساختارهای کنترلی، انواع داده ها، مدل کلی برنامه و غیره است که برای زبان مقصد مناسب هستند. قبلاً تمام این منطق بخشی از کد منبع re2c بود و برای تغییر آن یا اضافه کردن زبان جدید باید کد منبع را وصله می کرد و re2c را بازسازی می کرد. چنین وصله‌هایی بدون اجرای مجموعه‌ای استاندارد از نمونه‌ها و آزمایش‌ها در مخزن اصلی پذیرفته نشدند، که کل فرآیند را پیچیده‌تر کرد. حالا تمام این منطق به آن منتقل شده است فایل های نحوی – فایل های پیکربندی متنی که می تواند توسط کاربر ارائه شود (re2c به طور پیش فرض از موارد استاندارد استفاده می کند). کد منبع re2c کاملاً عاری از جزئیات خاص زبان است و فقط به فایل نحوی متکی است. کاربر می تواند تا حدی یک فایل نحو موجود را لغو کند یا یک فایل جدید را از ابتدا بنویسد. برای همه زبان های رسمی پشتیبانی شده وجود دارد مستندات کامل همراه با مثال.

به هر حال، ایده اصلی فایل‌های نحوی به لطف آن به وجود آمد یک نظر در مورد گوش و حلق و بینی، از این بابت متشکرم re2c 4.0the_coder.

این نسخه شامل بسیاری از تغییرات دیگر برای ساده‌سازی رابط کاربری، بهبود کار با گروه‌های عکس‌برداری، و همچنین افزودن یک محیط آنلاین برای ویرایش و کامپایل نمونه‌ها بود: http://re2c.org/playground.

منبع: linux.org.ru

اضافه کردن نظر