از پارسکدرز بیشترین بهره را ببرید و رویای کاری خود را زندگی کنید.
پنج سال پیش منتشر شده
تعداد بازدید: 2054
کد پروژه: 88767
شرح پروژه
پروژه ی کامپایلر دوره ی کارشناسی نرم افزار است.
پروژه ی نسبتا آسانی است.
باید زبان داده شده در پیوست را مطالعه کنید. و سپس گرامر داده شده را در انتلر پیاده سازی کنید.
با استفاده از انتلر خروجی ،Parser را تولید نموده و برنامه بنویسید که آدرس BaseListener و Listener ، SRCفولدر را دریافت کرده و خروجی خواسته شده برای هر کلاس موجود چاپ کند. )the_definitive_antlr_4_reference(فصل سوم کتاب خروجی برای هر کلاس باید شامل نام کلاس و تعداد اشیای ساخته شده (تعداد استفاده از هر کلاس در قانون ساختن شی)
موارد تحویلی: AOOL.g4.فایل 1 که گرامری است که در انتلر نوشته اید. inputs در پوشه AOOL.کد های نوشته شده به زبان 2 . .تصاویر 3 AST که شامل درختهای png images رسم شده توسط انتلر باشد. در پوشه .سورس فایل های جاوا پروژه 4 . .فایل خروجی 5 src پروژه به گونه ای که در خط فرمان آدرس پوشه jar را بگیرد و خروجی خواسته شده را نمایش دهد.
پس از راه اندازی و ارتباط منطقی میان وlexer و درخت پارسینگ زبان parser در این فاز میخواهیم Aool جدول علائم مربوط به این زبان را طراحی و پیاده سازی کنیم . فرضیات کلیه قسمت های در نظر گرفته شده در این فاز را با توجه به فرضیات زیر انجام دهید. هر یک از کلاس های شرکت کننده در برنامه ورودی در یک فایل قرار داده شده است. لذا برنامه باید تمامی فایل موجود در پوشه . را پردازش کند src . برای تمامی خطاهای پیدا شده نام فایل و خطی از برنامه که خطای رخ داده است چاپ شود همه کلاس ها در صورتی که از یک کلاس ارث نبرده باشند به صورت پیش فرض از کلاس ارثObject میبرند. مقدار پیش فرض یک متغیر از نوع کلاس Bool ، .استFalse مقدار پیش فرض یک متغیر از نوع کلاس . صفر است ،Int . نام متغیرها و متدها میتواند یکسان باشد نوع یک متغیر و یا نوع بازگشتی یک تابع می تواند از نوع کلاسی که کاربر تعریف کرده، باشد. به عبارت دیگر تعریف هر کلاس به معنی اضافه شدن یک نوع داده ای جدید است. راس گراف ارث بری کلاس خواهد بود. بنابراین اگر یک کلاس صریحا کلاس پدر خود را object مشخص نکرده باشد. به طور خودکار از کلاس . ارث خواهد برد object دارای متودهای زیر است: Object کلاس o type_name () Retrun String
یک رشته حاوی نام کلاس را برمیگرداند. o get_depth () Retrun Int عمق کلاس در گراف را نمایش میدهد. o copy () Return Object یک کپی از شی ای که این تابع بر روی آن صدا زده شده برمیگرداند. o get_self () Return Object در زبان جاوا عمل thisشی مربوط به کلاس را برمیگرداند. ( این متد مانند کلمه کلیدی میکند.)
: انواع داده ای اولیه زبان موارد زیر هستند o Int o LiteralString o String o Bool o Float String کلاس دارای متودهای زیر است: o length ()
Return Int
o concat(s of String)
Return String
o substr(I of Int , J of Int)
Return String
قوانین . یکی از مسائل مهم در برنامه نویسی شی گرا بحث وارثت است و لذا گرامر زبان 1 نیز از قاعده Aool مستثناء نیست. همانطور که میدانید کلاس هایی که در رابطه ارث بری شرکت میکنند مجموعا تشکیل یک گراف جهت دار به نام گراف ارث بری را میدهند، که گره های شرکت کننده در این گراف همان کلاسهای ورودی برنامه هستند و یال ها نشان دهنده جهت رابطه ارث بری هستند. از طرفی تشکیل دور در گراف ارث بری سبب ایجاد خطای کامپایل، توسط کامپایلر خواهد شد. حال برنامه شما باید پس از پارس کردن فایل های ورودی و تشکیل گراف ارث بری مناسب، وقوع دور در این گراف را بررسی کرده و در صورت وجود، نام زنجیره کلاسهایی که سبب ایجاد دور شده اند را به شکل زیر چاپ کند. A - > B -> C -> A
. یکی دیگر از خطای رایج در هنگام برنامه نویسی مورد ارجاع قرار گرفتن یک متغیر 2 )محلی یا سراسری( و یا فراخوانی یک متد از برنامه است. در صورتی که ممکن است آن متد یا متغیر در هیچ جایی از برنامه scop تعریف نشده باشد. (منظور های قابل دستیابی است.
این پروژه شامل 2 فایل مهم است، لطفا قبل از ارسال پیشنهاد حتما نسبت به بررسی این فایل اقدام فرمایید.
مهارت ها و تخصص های مورد نیاز
بودجه
100,000 تومان تا 300,000 تومان
مهلت برای انجام
4روز
وضعیت مناقصه
بسته
درباره کارفرما
عضویت پنج سال پیش
قادر به انجام این پروژه هستید؟
مهلت ارسال پیشنهاد قیمت برای این پروژه تمام شده است
به رایگان یک حساب کاربری بسازید
مهارتها و تخصصهای خود را ثبت کنید، رزومه و نمونهکارهای خود را نشان دهید و سوابق کاری خود را شرح دهید.
به شیوهای که دوست دارید کار کنید
برای پروژههای دلخواه در زمان دلخواه پیشنهاد قیمت خود را ثبت کنید و به فرصتهای شغلی منحصر به فرد دسترسی پیدا کنید.
با اطمینان دستمزد دریافت کنید
از زمان شروع کار تا انتهای کار به امنیت مالی شما کمک خواهیم کرد. وجه پروژه را از ابتدای کار به امانت در سایت نگه خواهیم داشت تا تضمین شودکه بعد از تحویل کار دستمزد شما پرداخت خواهد شد.
میخواهید شروع به کار کنید؟
یک حساب کاربری بسازید
بهترین مشاغل فریلنسری را پیدا کنید
رشد شغلی شما به راحتی ایجاد یک حساب کاربری رایگان و یافتن کار (پروژه) متناسب با مهارتهای شما
است.
پیدا کردن کار (پروژه)
تماشای دمو روش کار