با سلام به دوستان
ديدم كه اين تاپيك جالب هست و مورد علاقه بنده ! در ابتدا بگم كه من تحربه كاري روي اين تاپيك نداشتم ولي ميتونم بگم اطلاعات مختلفي رو در اين رابطه مي دونم و گفتم كه اينجا بگم هر چند اندك باشه !
نقل قول: ولي از يكي ديگه از استادامون كه خودش دانشجوي فوق دكتراي نرم افزار در كانادا است پرسيدم گفت كه ميشه ولي هوش مصنوعي ميخواد كه تشخيص بده
هوش مصنوعي به اون معني واقعي و پيچيده اصلا نياز نداريم البته اين روش تكنيك هايي رو داره كه مي تونيم
هوشمند ازشون نام ببريم . خيلي اوقات از اينجور برنامه هاي به اصطلاح هوشمند رو ما خودمون هم نوشتيم شايد بسيار هم ساده . در واقع ميشه گفت وضعيت ها رو چنان كنترل كرديم كه قضيه هوشمند و حساب شده به نظر بياد !
در اصل مطلب هر چيزي راه و روشي داره ! هوش مصنوعي يه علم ناقص و يه تكنولوژي پرخطا هست و هنوز قابل اطمينان نيست . ثانيا سري كه درد نميكنه رو كه دستمال نمي بندن ! ما چرا تا زمانيكه راههاي الگوريتميكي داريم كه كاملا امتحان شده و صحيح هستند بايد به سراغ هوش مصنوعي ناقص بريم و از اون كمك بخوايم !!؟
دوستان دانش فني توي اين زمينه خيلي نيازه و مبحث كاملا تخصصيه ! بايد خدمتتون عرض كنم كه جريانات تبديل زبان در جلوي چشمهاي همه ماست اما در پشت پرده اجرا ميشه و ما نمي تونيم اونو ببينيم !
دوستان همه زبانهاي برنامه نويسي به يه زبان ديگه تبديل ميشن تا قابل اجرا بشن . پس عمل كامپايل يعني همون تبديل زباني به زبان ديگه . مثلا تبديل زبان C به زبان ماشين ! يا #C به MSIL يا ......
همچين چيزي كاملا قابل اجراست البته در مقياس هاي كوچك براي ما و در مقياس هاي بزرگ براي شركت هايي مثل مايكروسافت !
به عنوان مثال مي تونيد مبدل بيسيك به اسمبلي رو كار كنيد البته در سطح ساده كه هم فاله هم تماشا . بيسيك بنويسيد اسمبلي بگيريد . واسه دانشگاه و آزمايشگاه اسمبلي هم خوبه . شما با كمكش مي تونيد 3 سوته همه اسمبلي نويس ها رو ناك اوت كنيد در واقع استاد گرامي رو
طراحي : شما بايد يك Parser خاص براي زبانتون رو بنويسيد تا كدهايي از قبيل شروط و حلقه ها و Syntax و .... رو براتون تحليل كنه . شما در مرحله مياني هستيد . حالا بايد مبدلي بنويسيد تا كد تحليل شده رو به زبان مقصد تبديل كنه كه كار پيچيده اي نيست چون ما يك تحليل از زبان مبدا داريم و با بازگردوندن اون تحليل خيلي راحت مي تونيم به زبان جديدي برسم .
نياز هاي فني برنامه نويسي :
1-آشنايي با ساختمان داده ها و الگوريتم ها
2-آشنايي با زبان C كه قدرت پياده سازي تمام ساختمان داده هاي مورد نياز ( مثل درخت ها و ليست ها) رو داره !
3-آشنايي با تكنيك هاي Syntax checking يا همون parsing و Language processing
4-آشنايي با واحد درسي Finite automata and formal languages كه فكر نكنم در ايران تدريس بشه . ما اين ترم اين درس رو داريم ! ( اين واحد درسي ساختار زبان هاي برنامه نويسي و مفاهيم موجود توي اون رو توضيح ميده )
همچنين كتاب زير رو ببينيد . فقط مخصوص همين مبحث ! يكي از بهترين كتاب هايي هست كه براي مبتديان نوشته شده و به شما ساختار زبان ها - مبدل زبان ها و كامپايلر رو خيلي عملي توضيح ميده . :idea: ولي متاسفانه حتي توي هند هم در دسترس نيست و بنده هم براي خريدش فعلا كارت اعتباري ندارم :cry: اگر كارت بگيرم حتما اينو ميخرم
http://www.amazon.com/gp/product/0471597...e&n=283155
راستي آيا ميدونيد كه كامپايلر زبان ++C پس از تحليل كد و عمليات بر روي منطق OOP زبان يا در واقع بعد از همون Resolution اونو به زبان C تبديل مي كنه و بعد كامپايل مي كنه و به همين دليل هست كه پرسرعته :?: