تور لحظه آخری
امروز : جمعه ، 7 اردیبهشت 1403    احادیث و روایات:  امام علی (ع):نماز قلعه و دژ محکمی است که نمازگزار را از حملات شیطان نگاه می دارد.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

بلومبارد

تبلیغات متنی

تریدینگ ویو

خرید اکانت اسپاتیفای

کاشت ابرو

لمینت دندان

ونداد کولر

لیست قیمت گوشی شیائومی

صرافی ارکی چنج

صرافی rkchange

دانلود سریال سووشون

دانلود فیلم

ناب مووی

تعمیر کاتالیزور

تعمیر گیربکس اتوماتیک

دیزل ژنراتور موتور سازان

سرور اختصاصی ایران

سایت ایمالز

تور دبی

سایبان ماشین

جملات زیبا

دزدگیر منزل

ماربل شیت

تشریفات روناک

آموزش آرایشگری رایگان

طراحی سایت تهران سایت

آموزشگاه زبان

اجاره سند در شیراز

ترازوی آزمایشگاهی

رنگ استخری

فروش اقساطی کوییک

راهبند تبریز

ترازوی آزمایشگاهی

قطعات لیفتراک

وکیل تبریز

خرید اجاق گاز رومیزی

آموزش ارز دیجیتال در تهران

شاپیفای چیست

فروش اقساطی ایران خودرو

واردات از چین

قیمت نردبان تاشو

وکیل کرج

تعمیرات مک بوک

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

سیسمونی نوزاد

پراپ تریدینگ معتبر ایرانی

نهال گردو

صنعت نواز

پیچ و مهره

خرید اکانت اسپاتیفای

صنعت نواز

لوله پلی اتیلن

کرم ضد آفتاب لاکچری کوین SPF50

دانلود آهنگ

طراحی کاتالوگ فوری

واردات از چین

اجاره کولر

دفتر شکرگزاری

تسکین فوری درد بواسیر

دانلود کتاب صوتی

تعمیرات مک بوک

 






آمار وبسایت

 تعداد کل بازدیدها : 1798110832




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

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


واضح آرشیو وب فارسی:سایت ریسک: sanam.b21-03-2008, 05:07 PMسلام اول از همه عید رو به همه تبریک می گم امیدوارم امسال سال موفقیت شما باشه من میخوام یه کامپایلر ساده که فقط شامل دستورات کنترلی و اگه شدشامل تابع و پروسیجر باشه بنویسم(با c#) . البته در این تعطیلات باید اونو به یه جایی برسونم . اگه ممکنه منو راهنمایی کنی که چیکار کنم؟ از کجا شروع کنم؟ someone22-03-2008, 02:33 AMسلام. متقابلا چنين آرزوي براي شما دارم. چند سوال از شما دارم. 1- تا چه اندازه با #C آشنا هستين. (روي كار با رشته ها مسلط هستين؟ ) 2- Compiler بعد از تفسير Code ها اون رو به زبان ماشين تبديل ميكنه. آيا شما چنين منظوري دارين؟ به نظر من بيشتر ايده شما ، روي نوشتن يك Parser هست كه بتونه Token ها رو مشخص كنه. درسته؟ (يا به عبارتي يك Interpreter) 3- برنامه كد هاي نوشته شده رو به چه طريق دريافت ميكنه؟ مستقيما از keyboard يا از يك فايل؟ sanam.b22-03-2008, 01:04 PMسلام ممنون از اینکه می خواید کمکم کنید اما جواب سوالاتون 1- تا چه اندازه با #C آشنا هستين. (روي كار با رشته ها مسلط هستين؟ ) من c# رو به عنوان درس برنامه نویسی پیشرفته و با نمره خوب پاس کردم .(نمی دونم منظور شما کدوم قسمتهاست؟) و در مورد رشته ها هم فقط از توابع آماده خود زبان استفاده کردم 2-Compiler بعد از تفسير Code ها اون رو به زبان ماشين تبديل ميكنه. آيا شما چنين منظوري دارين؟ بله به نظر من بيشتر ايده شما ، روي نوشتن يك Parser هست كه بتونه Token ها رو مشخص كنه. درسته؟ (يا به عبارتي يك Interpreter) اونیکه من باید بنویسم Interpreter که باید تمام مراحل اعم از تحلیل لغوی،نحوی،معنایی،کد میانی،بهینه ساز کد و کد مقصد رو داشته باشه البته فقط در سطح دستورات کنترلی . 3- برنامه كد هاي نوشته شده رو به چه طريق دريافت ميكنه؟ مستقيما از keyboard يا از يك فايل؟ از طریق فایل sanam.b24-03-2008, 02:13 PMسلام دوست عزیز کجا رفتی؟ اولش منو خیلی امید وار کردی حالام بدون خبر گذاشتی رفتی. من چیکار کنم ؟:41: someone25-03-2008, 02:14 AMدوباره سلام! و پوزش به خاطر تاخير. كمي گرفتار بودم. خب ! با هم شروع ميكنيم . ما كامپايلر رو در سه بخش در نظر ميگيريم كه بايد اونها را كامل كنيم. 1- scanner 2-parser 3- code generator اولين كاري كه بايد انجام بديم اينه كه بتونيم نشانه ها (Tokens) رو فايل مورد نظر استخراج كنيم. اين نشانه ها تمامي كاراكتر هاي معنا دار ، در درون فايل مورد نظر هستن. بنابراين كافي چك كنيم كه كه كاراكتر مورد نظر space يا t نباشه. يكي از راحل ها اينه : فايل مورد ظر رو بخونين. (مثلا با استفاده از StreamReader) و رشته برگشتي رو به يك StringBuilder بدين. توجه كنين براي اينكه طول رشته ورودي مشخص نيست ، هرگز از كلاس String براي پر كردن رشته مورد نظر استفاده نكنين. مثلا كد زير : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! خب. شما شروع كنين. الان محتويات فايل در اختيار شماست. فقط در نظر بگيرين كه بايد Token ها رو در جايي نگهداري كنين كه ميتونه يك آرايه باشه. mrhamed26-03-2008, 04:51 PMبا سلام خدمت اساتید محترم من خیلی خیلی دوست دارم کمک کنم ، فعلا هم حدود یکسال از بیکاری من میگذره ! و کاملا وقتم خالیه ولی خیلی سی شارپ رو بلد نیستم اگه راستشو بخوایید اصلا کامپیوتر هم یه کمی بلدم ! ولی خیلی خیلی برنامه نویسی مخصوصا سی شارپ رو دوست دارم و میخوام چیزهای بیشتری از این زبان یاد بگیرم در نتیجه خیلی خیلی مشتاقم کمک کنم خوشحال میشم این فرصت رو به بنده هم بدهید . >>در ضمن زیاد توی سایت نمیام ولی ایمیل هامو هر روز چک میکنم [email protected] یا [email protected] یا [email protected] راستی حتما موضوع ایمیل رو بزارید hi2u با تشکر majid_kntu26-03-2008, 05:15 PMسلام ! بخشيد مي پرسم ولي به نظرتون كامپايلري كه با سي شارپ نوشته شده باشه سرعت پاييني نداره؟؟؟؟؟؟؟ sanam.b27-03-2008, 02:26 PMسلام someone عزیز از شما ممنونم فقط یه فرصت کوتاه می خوام چون یه مشکل برام پیش اومدهکه یه کمی(یک روز)وقتم می گیره اما در مورد سرعت مفسر با زبان c# استاد گفت با خانواده c ،من هم بیشتر با c# آشنایی دارم تا با بقیه اونچه براشون مهمه درست کار کردن و موجود بودن تمام مراحل ذکر شده در بالاست از یه طرفه دیگه اگر پروژه کامل تحویل ندی حق شرکت در امتحان رو نداری چون تحویل پروژه قبل از امتحانه sanam.b27-03-2008, 08:10 PMسلام قبل از کد نویسی باید چند سوال بپرسم این کامپایلر باید برنامه به زبان فارسی را ترجمه کند (زبان مبدا زبان فارسی است) این شرط یک سری کارهای دیگر اضافه می کند یعنی یک تجزیه و تحلیل که به نظر من شامل گزینه های زیر است 1- مشخص کردن ساختار دستورات 2- مشخص کردن کلمات کلیدی به نظر شما لازم است مراحل دیگری به آن اضافه شود؟ ساختار دستورات که همان دستورات کنترلی مشخص شده است اما درمورد کلمات کلیدی : به غیر از کلماتی مثلif ,for, and ,or,….. که مربوط به دستورات هستند چه کلملات دیگری هم در این حیطه قراردارند؟ من می خوام پایان دستورات را با نقطه مشخص کنم اما تا حالا در هیچ زبان برنامه نویسی ندیدم آیا " نقطه " از لحاظ دستوری یا ساختاری مشکلی پیش می یاره من باید چه موارد دیگه ای رو در نظر بگیرم؟ (من تا به حال در این مورد برنامه نویسی نکرده ام و هیچگونه اطلاعاتی ندارم .خیلی سخت برنامه ای رو بنویسی اما بعدا به دلیل یه مشکل که نتیجه تجزیه و تحلیل غلطه مجبور باشی دوباره از اول شروع کنی و کلی زمان از دست بدی ) someone28-03-2008, 02:15 AMسلام. سلام ! بخشيد مي پرسم ولي به نظرتون كامپايلري كه با سي شارپ نوشته شده باشه سرعت پاييني نداره؟؟؟؟؟؟؟ خواهش ميكنم. اولا اينكه با نظر شما موافق نيستم. و نميدونم بر اساس كدوم منبع اين حرف رو ميزنين. ضمنا حتي اگه نظرتون درست باشه ، برنامه اي كه همگرداني ميشه قرار هست روي سيستم هدف كار كنه و نه كامپايلر طراحي شده. نكته اي كه در مورد يك كامپايلر مهم هست ، بهينه شده كد ها و به عبارتي Optimization هست نه سرعت كامپايلر شدن يا همگرداني يك برنامه. باز به عبارت ديگه برنامه توليد شده بايد در بهترين حالت ممكن كار كنه. ------------------------------------------------------------------------------------------- به نظر شما لازم است مراحل دیگری به آن اضافه شود؟ فكر كنم لازمه بيشتر در موردش صحبت كنيم. چون اصلا موضوع عوض شد. چيزي كه من فكر ميكردم بازنويسي يكي از Compiler هاي موجود بود. مثلا دوباره نوسيس Compiler زيان C همونطور كه شما هم گفتين ، اولين كاري كه بايد روش كار كنيم ، پياده سازي Syntax مورد نظر هست. دو موردي كه نام بردين به طور كلي شايد كافي باشه ، اما به نظر من بايد كمي جزئي تر بهش نگاه كنيم. قبلا براتون نوشتم كه مرحله اول براي نوشتن يك كامپايلر ، Scanner هست. تعريف Scanner كمك ميكنه تا ساختار بهتري از Syntax زيان مورد نظر بدست بياريم. بنابراين مواردي كه شما بايد در موردش تصميم بگيرين ، اينها هستن : 1- كلمات كليدي 2- شناسه ها 3- عملگرها 4- عبارات ثابت مثل كاراكتر ها يا اعداد 5- توضيحات كه اگه به نظرتون لازمه در موردشون صحبت كنيم. به غیر از کلماتی مثلif ,for, and ,or,….. که مربوط به دستورات هستند چه کلملات دیگری هم در این حیطه قراردارند؟ در اين مورد هم بايد بيشتر صحبت كرد. كه كاملا مربوط به ساختار زبان مورد نظر شما بستگي دارد. به عبارت ديگه شما تا كجا مي خواين در نظر بگيرين؟ اينكه گفتين مربوط به دستوراتند ، درست متوجه نشدم. مثلا فرض كنين : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! آيا اين يك دستور نيست؟ من می خوام پایان دستورات را با نقطه مشخص کنم اما تا حالا در هیچ زبان برنامه نویسی ندیدم آیا " نقطه " از لحاظ دستوری یا ساختاری مشکلی پیش می یاره يك ساختار فرضي براي برنامه ي شما در نظر ميگيريم. مثلا: (صرفا و صرفا فقط يك مثال هست) اختيار عدد برابربا 5. شايد در اينجا مشكلي نباشه اما در كد زير : اختيار عدد برابربا 6.35. خب. در اينجا پايان دستور چطور مشخص ميشه؟ البته براش راهي وجود داره ، و هيچ چيز غير ممكن وجود نداره. ضمنا چون Syntax شما فارسي هست ، استفاده از نقطه منطقي به نظر مي رسه. نظرتون كاملا درسته.تا ابهاماتي در كار وجود دارد و مرجله ي طراحي تموم نشده ، بهتره كدنويسي شروع نشه. البته در متود آبشاري. اما RUP چيز ديگه اي رو ميگه. همگام با مرحله ي تحليل ، كدنويسي كردن ، ابهامات رو بيشتر برطرف ميكنه ، در نتيجه مرحله تحليل و طراحي ، اجرا و پياده سازي در كنار هم و به موازات هم پيش ميرن. خارج از اين بحث ها ، من هم بايد به بعضي از منابع رجوع كنم. اگه شما اطلاعات بيشتر در مورد پرو‍ژه دارين يا نكاتي مونده كه گفته نشده ، بنويسن تا بحث ها از حدس و گمان در بيان و منطقي پيش بريم. راستي سعي ميكنم يك ساختار پيشنهادي براي زبان شما ، پياده كنم. شما هم چنين كاري رو شروع كنين تا بتونيم سريعتر پيش بريم. sanam.b29-03-2008, 01:53 AMبازم سلام در مورد این پروژه هیچ مطلب مهمی نمونده فقط یه نکته کوچولو اونم اینکه : این کامپایلر در اصل برای زبان کردی نوشته میشه نه فارسی.اما اگه من به اون اشاره ای نکردم دلیلش این بود که نمی خواستم ذهن دوستان درگیر معنی یا مفهوم کردی کلمات باشه ، خیلیها کردی بلد نیستند. پس لازم میشه یه سری توضیحات داده بشه و و این توضیحات ذهن آدم رو از کار اصلی دور میکنه. خیلی ممنون میشم که شما توضیحات فارسی رو بگید من خودم به کردی تبدیلش میکنم اما آنچه که من باید انجام بدم Interpreter زبان کردی که باید تمام مراحل اعم از تحلیل لغوی،نحوی،معنایی،کد میانی،بهینه ساز کد و کد مقصد رو داشته باشه البته فقط در سطح دستورات کنترلی . someoneعزیز با نظرا ت شما خیلی چیزها یادم اومد که اصلا تا بحال بهش فکر نکرده بودم مثلا اینکه باید نوع داده ها را خودم تعریف کنم و ... من چون بیشتر با VB و C# کرده ام ساختار دستورات را ترکیبی از این دو زبان نوشتم . ممکنه که این ترکیب مشکل ایجاد کنه؟ مثلا ساختار دستور if رو به شکل پایین نوشتم اگر (شرط) { دستورات } وگرنه { دستورات } پایان من فکر می کنم برای هر تعداد دستور نوشته شده درساختار "اگر" { } نوشته شود ، چه یک دستور و چه چند دستور. در مورد توضیحات ازیک جفت "،" در ابتدا و انتهای توضیح استفاده کنیم . ساختار بقیه دستورات رو هم نوشتم اگه لازم بود بگید تا بذارم در عملگرهای ریاضی(+ و- و* و/ و توان و پرانتز) و مقایسه ای( == و =!و > و< و .. و ) عملگر (+ و - )سر جای خودشون می مونند(تغییری در ساختارشون نمیدیم ) عملگرهای منطقی شامل and ,or ,not باشند (یه سوال عملگر xor در کجا بدرد می خوره؟) داده ها عددی , غیر عددی که عددی شامل اعداد صحیح (کوچک و بزرگ ) اعداد اعشاری ( کوچک و بزرگ ) و غیر عددی شامل رشته و تاریخ و منطقی (Boolean) اعداد همان 0 الی 9 و حروف همون حروف فارسی هستند که چندتاشون حذف و دوسه تایی اضافه می شن نام گذاری متغییر ها هم همان 3 قانون باشه که میگه 1- با حرف شروع بشه 2- طولش 255 کاراکتر باشه 3- ازفاصله خالی بین کاراکتر های نام استفاده نشه مقدار دهی متغییر هم به نظر من به شکل زیر باشه نوع : نام متغییر در مورد کاراکتر جدا کننده دستورات ، اگه " نقطه "ممکنه مشکل پیش بیاره از یک کاراکتر دیگه استفاده می کنیم همه اینها فعلا رو کاغذند من کجا باید اینها رو به کامپایلر معرفی کنم؟ میشه کمی بیشتر در مورد متد آبشاری و RUP توضیح بدید ؟ راستش چون این ترم تمام درسهام اختصاصی و 3 واحدی هستند نمی خوام تمام وقتمو روی کامپایلر بذارم و یه پروژه آنچنانی تحویل بدم. فکر نکنید بخوام سمبلش کنم . فقط می خوام واسه درسهای دیگه هم انرژی داشته باشم از اینکه کمکم می کنید خیلی ممنون sanam.b04-04-2008, 12:12 AMسلام دوست عزیز کجا رفتی؟ من به کمک شما خیلی نیاز دارم dogtag04-04-2008, 12:49 AMسلام بحث خیلی جالبیه. امیدوارم من هم بتونم کاری بکنم. ولی یه پیشنهاد دارم: شرط هات و کلاً ساخارت رو مثل Vb کن چون بیشتر به فارسی می خوره. می دونی چی میگم؟ یعنی این: اگر (شرط) آنگاه دستورات پایان شرط بهتر از اینه: اگر (شرط){ دستورات } در کل یعنی حالا که داری فارسی می کنی سعی کن از حالت کد نویسی درش بیاری و یه جوری "کد نویسی یه زبان ساده" بسازی و به نظر من روش انرژی بذار چون می تونه برنامه ی خیلی مفیدی برای مبتدی ها باشه hamishebahar04-04-2008, 06:03 PMسلام دوستان حالتون خوبه؟ اول خسته نباشین. دوم اگه اجازه بدین منم به جمع شما اضافه بشم فقط نیاز به یه توضیح کوچیک در مورد کامپایلر دارم یعنی هدف شما چیه؟ البته مطمعنم که با این کار پیشرفت خواهیم کرد. موفق و سر بلند باشید. sanam.b07-04-2008, 01:18 AMاز لطف شما خیلی ممنونم من منظور شما دوستان را نفهمیدم فقط نیاز به یه توضیح کوچیک در مورد کامپایلر دارم یعنی هدف شما چیه؟ شما چه توضیحی می خواید؟ من این ترم درس کامپایلر دارم و پروژه اونم هم نوشتن یه Interpreter که توضیحات اونو تو پستهای قبلی نوشتم هدف من نوشتن اینه همین سعی کن از حالت کد نویسی درش بیاری و یه جوری "کد نویسی یه زبان ساده" بسازی منظور شما از "کد نویسی به زبان ساده چیه" ممنون می شم اگه یکمی توضیح بدید. به نظر من ایده جالبیه و یه سوال چرا ساختارvb به فارسی نزدیکتره؟ dogtag07-04-2008, 01:21 PMاز لطف شما خیلی ممنونم من منظور شما دوستان را نفهمیدم شما چه توضیحی می خواید؟ من این ترم درس کامپایلر دارم و پروژه اونم هم نوشتن یه Interpreter که توضیحات اونو تو پستهای قبلی نوشتم هدف من نوشتن اینه همین منظور شما از "کد نویسی به زبان ساده چیه" ممنون می شم اگه یکمی توضیح بدید. به نظر من ایده جالبیه و یه سوال چرا ساختارvb به فارسی نزدیکتره؟ مي دوني منظورم اينه كه كمتر از كاراكتر هاي خاص (مثل : و ; و {} و ...) استفاده بشه بعني تا جايي كه ممكنه طرف فقط فارسي تايپ كنه كه البته ساختار VB براين اين كار بهتر از C ه sanam.b07-04-2008, 11:49 PMسلام دوست عزیز از جواب شما منونم ممنون میشم یکی از دوستان به من بگه باید از کجا شروع کنم. سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 1041]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن