تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 20

نام تاپيک: کمک در نوشتن کامپایلر

  1. #1
    آخر فروم باز sanam.b's Avatar
    تاريخ عضويت
    Jan 2007
    محل سكونت
    ماه
    پست ها
    1,014

    پيش فرض کمک در نوشتن کامپایلر

    سلام
    اول از همه عید رو به همه تبریک می گم امیدوارم امسال سال موفقیت شما باشه
    من میخوام یه کامپایلر ساده که فقط شامل دستورات کنترلی و اگه شدشامل تابع و پروسیجر باشه بنویسم(با c#) .
    البته در این تعطیلات باید اونو به یه جایی برسونم .
    اگه ممکنه منو راهنمایی کنی که چیکار کنم؟
    از کجا شروع کنم؟

  2. #2
    حـــــرفـه ای
    تاريخ عضويت
    Aug 2006
    پست ها
    793

    پيش فرض

    سلام.

    متقابلا چنين آرزوي براي شما دارم.

    چند سوال از شما دارم.
    1- تا چه اندازه با #C آشنا هستين. (روي كار با رشته ها مسلط هستين؟ )
    2- Compiler بعد از تفسير Code ها اون رو به زبان ماشين تبديل ميكنه. آيا شما چنين منظوري دارين؟
    به نظر من بيشتر ايده شما ، روي نوشتن يك Parser هست كه بتونه Token ها رو مشخص كنه. درسته؟
    (يا به عبارتي يك Interpreter)

    3- برنامه كد هاي نوشته شده رو به چه طريق دريافت ميكنه؟ مستقيما از keyboard يا از يك فايل؟

  3. #3
    آخر فروم باز sanam.b's Avatar
    تاريخ عضويت
    Jan 2007
    محل سكونت
    ماه
    پست ها
    1,014

    پيش فرض

    سلام
    ممنون از اینکه می خواید کمکم کنید

    اما جواب سوالاتون
    1- تا چه اندازه با #C آشنا هستين. (روي كار با رشته ها مسلط هستين؟ )

    من c# رو به عنوان درس برنامه نویسی پیشرفته و با نمره خوب پاس کردم .(نمی دونم منظور شما کدوم قسمتهاست؟) و در مورد رشته ها هم فقط از توابع آماده خود زبان استفاده کردم

    2-Compiler بعد از تفسير Code ها اون رو به زبان ماشين تبديل ميكنه. آيا شما چنين منظوري دارين؟

    بله

    به نظر من بيشتر ايده شما ، روي نوشتن يك Parser هست كه بتونه Token ها رو مشخص كنه. درسته؟
    (يا به عبارتي يك Interpreter)

    اونیکه من باید بنویسم Interpreter که باید تمام مراحل اعم از تحلیل لغوی،نحوی،معنایی،کد میانی،بهینه ساز کد و کد مقصد رو داشته باشه البته فقط در سطح دستورات کنترلی .

    3- برنامه كد هاي نوشته شده رو به چه طريق دريافت ميكنه؟ مستقيما از keyboard يا از يك فايل؟

    از طریق فایل

  4. #4
    آخر فروم باز sanam.b's Avatar
    تاريخ عضويت
    Jan 2007
    محل سكونت
    ماه
    پست ها
    1,014

    پيش فرض چی شد؟

    سلام
    دوست عزیز کجا رفتی؟
    اولش منو خیلی امید وار کردی حالام بدون خبر گذاشتی رفتی.
    من چیکار کنم ؟

  5. #5
    حـــــرفـه ای
    تاريخ عضويت
    Aug 2006
    پست ها
    793

    پيش فرض

    دوباره سلام!
    و پوزش به خاطر تاخير. كمي گرفتار بودم.

    خب ! با هم شروع ميكنيم . ما كامپايلر رو در سه بخش در نظر ميگيريم كه بايد اونها را كامل كنيم.
    1- scanner
    2-parser
    3- code generator


    اولين كاري كه بايد انجام بديم اينه كه بتونيم نشانه ها (Tokens) رو فايل مورد نظر استخراج كنيم.
    اين نشانه ها تمامي كاراكتر هاي معنا دار ، در درون فايل مورد نظر هستن. بنابراين كافي چك كنيم
    كه كه كاراكتر مورد نظر space يا t\ نباشه.
    يكي از راحل ها اينه : فايل مورد ظر رو بخونين. (مثلا با استفاده از StreamReader) و رشته برگشتي رو
    به يك StringBuilder بدين. توجه كنين براي اينكه طول رشته ورودي مشخص نيست ، هرگز از كلاس String
    براي پر كردن رشته مورد نظر استفاده نكنين. مثلا كد زير :

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    خب. شما شروع كنين. الان محتويات فايل در اختيار شماست.
    فقط در نظر بگيرين كه بايد Token ها رو در جايي نگهداري كنين كه ميتونه يك آرايه باشه.

  6. #6
    داره خودمونی میشه mrhamed's Avatar
    تاريخ عضويت
    Jul 2006
    پست ها
    137

    پيش فرض

    با سلام خدمت اساتید محترم

    من خیلی خیلی دوست دارم کمک کنم ، فعلا هم حدود یکسال از بیکاری من میگذره ! و کاملا وقتم خالیه ولی خیلی سی شارپ رو بلد نیستم اگه راستشو بخوایید اصلا کامپیوتر هم یه کمی بلدم ! ولی خیلی خیلی برنامه نویسی مخصوصا سی شارپ رو دوست دارم و میخوام چیزهای بیشتری از این زبان یاد بگیرم در نتیجه خیلی خیلی مشتاقم کمک کنم خوشحال میشم این فرصت رو به بنده هم بدهید .

    >>در ضمن زیاد توی سایت نمیام ولی ایمیل هامو هر روز چک میکنم
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
    یا [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
    یا [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
    راستی حتما موضوع ایمیل رو بزارید hi2u

    با تشکر

  7. #7
    پروفشنال majid_kntu's Avatar
    تاريخ عضويت
    Jun 2006
    پست ها
    781

    پيش فرض

    سلام !
    بخشيد مي پرسم ولي به نظرتون كامپايلري كه با سي شارپ نوشته شده باشه سرعت پاييني نداره؟؟؟؟؟؟؟

  8. #8
    آخر فروم باز sanam.b's Avatar
    تاريخ عضويت
    Jan 2007
    محل سكونت
    ماه
    پست ها
    1,014

    پيش فرض

    سلام
    someone عزیز از شما ممنونم
    فقط یه فرصت کوتاه می خوام چون یه مشکل برام پیش اومدهکه یه کمی(یک روز)وقتم می گیره

    اما در مورد سرعت مفسر با زبان c# استاد گفت با خانواده c ،من هم بیشتر با c# آشنایی دارم تا با بقیه
    اونچه براشون مهمه درست کار کردن و موجود بودن تمام مراحل ذکر شده در بالاست
    از یه طرفه دیگه اگر پروژه کامل تحویل ندی حق شرکت در امتحان رو نداری چون تحویل پروژه قبل از امتحانه

  9. #9
    آخر فروم باز sanam.b's Avatar
    تاريخ عضويت
    Jan 2007
    محل سكونت
    ماه
    پست ها
    1,014

    پيش فرض سوال

    سلام
    قبل از کد نویسی باید چند سوال بپرسم
    این کامپایلر باید برنامه به زبان فارسی را ترجمه کند (زبان مبدا زبان فارسی است) این شرط یک سری کارهای دیگر اضافه می کند یعنی یک تجزیه و تحلیل که به نظر من شامل گزینه های زیر است
    1- مشخص کردن ساختار دستورات
    2- مشخص کردن کلمات کلیدی
    به نظر شما لازم است مراحل دیگری به آن اضافه شود؟
    ساختار دستورات که همان دستورات کنترلی مشخص شده است اما درمورد کلمات کلیدی :
    به غیر از کلماتی مثلif ,for, and ,or,….. که مربوط به دستورات هستند چه کلملات دیگری هم در این حیطه قراردارند؟
    من می خوام پایان دستورات را با نقطه مشخص کنم اما تا حالا در هیچ زبان برنامه نویسی ندیدم آیا " نقطه " از لحاظ دستوری یا ساختاری مشکلی پیش می یاره

    من باید چه موارد دیگه ای رو در نظر بگیرم؟

    (من تا به حال در این مورد برنامه نویسی نکرده ام و هیچگونه اطلاعاتی ندارم .خیلی سخت برنامه ای رو بنویسی اما بعدا به دلیل یه مشکل که نتیجه تجزیه و تحلیل غلطه مجبور باشی دوباره از اول شروع کنی و کلی زمان از دست بدی )

  10. #10
    حـــــرفـه ای
    تاريخ عضويت
    Aug 2006
    پست ها
    793

    پيش فرض

    سلام.

    سلام !
    بخشيد مي پرسم ولي به نظرتون كامپايلري كه با سي شارپ نوشته شده باشه سرعت پاييني نداره؟؟؟؟؟؟؟
    خواهش ميكنم. اولا اينكه با نظر شما موافق نيستم. و نميدونم بر اساس كدوم منبع اين حرف رو ميزنين.
    ضمنا حتي اگه نظرتون درست باشه ، برنامه اي كه همگرداني ميشه قرار هست روي سيستم هدف كار كنه و
    نه كامپايلر طراحي شده. نكته اي كه در مورد يك كامپايلر مهم هست ، بهينه شده كد ها و به عبارتي
    Optimization هست نه سرعت كامپايلر شدن يا همگرداني يك برنامه. باز به عبارت ديگه برنامه توليد شده بايد
    در بهترين حالت ممكن كار كنه.

    -------------------------------------------------------------------------------------------


    به نظر شما لازم است مراحل دیگری به آن اضافه شود؟
    فكر كنم لازمه بيشتر در موردش صحبت كنيم. چون اصلا موضوع عوض شد. چيزي كه من فكر ميكردم
    بازنويسي يكي از Compiler هاي موجود بود. مثلا دوباره نوسيس Compiler زيان C
    همونطور كه شما هم گفتين ، اولين كاري كه بايد روش كار كنيم ، پياده سازي Syntax مورد نظر هست.
    دو موردي كه نام بردين به طور كلي شايد كافي باشه ، اما به نظر من بايد كمي جزئي تر بهش نگاه كنيم.
    قبلا براتون نوشتم كه مرحله اول براي نوشتن يك كامپايلر ، Scanner هست. تعريف Scanner كمك ميكنه تا
    ساختار بهتري از Syntax زيان مورد نظر بدست بياريم.
    بنابراين مواردي كه شما بايد در موردش تصميم بگيرين ، اينها هستن :

    1- كلمات كليدي
    2- شناسه ها
    3- عملگرها
    4- عبارات ثابت مثل كاراكتر ها يا اعداد
    5- توضيحات

    كه اگه به نظرتون لازمه در موردشون صحبت كنيم.

    به غیر از کلماتی مثلif ,for, and ,or,….. که مربوط به دستورات هستند چه کلملات دیگری هم در
    این حیطه قراردارند؟
    در اين مورد هم بايد بيشتر صحبت كرد. كه كاملا مربوط به ساختار زبان مورد نظر شما بستگي دارد. به عبارت
    ديگه شما تا كجا مي خواين در نظر بگيرين؟ اينكه گفتين مربوط به دستوراتند ، درست متوجه نشدم. مثلا فرض
    كنين :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    آيا اين يك دستور نيست؟

    من می خوام پایان دستورات را با نقطه مشخص کنم اما تا حالا در هیچ زبان برنامه نویسی ندیدم
    آیا " نقطه " از لحاظ دستوری یا ساختاری مشکلی پیش می یاره
    يك ساختار فرضي براي برنامه ي شما در نظر ميگيريم. مثلا: (صرفا و صرفا فقط يك مثال هست)

    اختيار عدد برابربا 5.

    شايد در اينجا مشكلي نباشه اما در كد زير :

    اختيار عدد برابربا 6.35.

    خب. در اينجا پايان دستور چطور مشخص ميشه؟ البته براش راهي وجود داره ، و هيچ چيز غير ممكن وجود نداره. ضمنا چون Syntax شما فارسي هست ، استفاده از نقطه منطقي به نظر مي رسه.

    نظرتون كاملا درسته.تا ابهاماتي در كار وجود دارد و مرجله ي طراحي تموم نشده ، بهتره كدنويسي شروع نشه.
    البته در متود آبشاري. اما RUP چيز ديگه اي رو ميگه. همگام با مرحله ي تحليل ، كدنويسي كردن ، ابهامات رو
    بيشتر برطرف ميكنه ، در نتيجه مرحله تحليل و طراحي ، اجرا و پياده سازي در كنار هم و به موازات هم پيش
    ميرن.


    خارج از اين بحث ها ، من هم بايد به بعضي از منابع رجوع كنم. اگه شما اطلاعات بيشتر در مورد پرو‍ژه دارين
    يا نكاتي مونده كه گفته نشده ، بنويسن تا بحث ها از حدس و گمان در بيان و منطقي پيش بريم.
    راستي سعي ميكنم يك ساختار پيشنهادي براي زبان شما ، پياده كنم. شما هم چنين كاري رو شروع كنين تا
    بتونيم سريعتر پيش بريم.

صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •