محبوبترینها
قیمت انواع دستگاه تصفیه آب خانگی در ایران
نمایش جنگ دینامیت شو در تهران [از بیوگرافی میلاد صالح پور تا خرید بلیط]
9 روش جرم گیری ماشین لباسشویی سامسونگ برای از بین بردن بوی بد
ساندویچ پانل: بهترین گزینه برای ساخت و ساز سریع
خرید بیمه، استعلام و مقایسه انواع بیمه درمان ✅?
پروازهای مشهد به دبی چه زمانی ارزان میشوند؟
تجربه غذاهای فرانسوی در قلب پاریس بهترین رستورانها و کافهها
دلایل زنگ زدن فلزات و روش های جلوگیری از آن
خرید بلیط چارتر هواپیمایی ماهان _ ماهان گشت
سیگنال در ترید چیست؟ بررسی انواع سیگنال در ترید
بهترین هدیه تولد برای متولدین زمستان: هدیههای کاربردی برای روزهای سرد
صفحه اول
آرشیو مطالب
ورود/عضویت
هواشناسی
قیمت طلا سکه و ارز
قیمت خودرو
مطالب در سایت شما
تبادل لینک
ارتباط با ما
مطالب سایت سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون
مطالب سایت سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون
آمار وبسایت
تعداد کل بازدیدها :
1831432604
کمک در نوشتن کامپایلر
واضح آرشیو وب فارسی:سایت ریسک: 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]
[تعداد بازديد از اين مطلب: 1048]
-
گوناگون
پربازدیدترینها