تبلیغات
تبلیغات متنی
محبوبترینها
قیمت انواع دستگاه تصفیه آب خانگی در ایران
نمایش جنگ دینامیت شو در تهران [از بیوگرافی میلاد صالح پور تا خرید بلیط]
9 روش جرم گیری ماشین لباسشویی سامسونگ برای از بین بردن بوی بد
ساندویچ پانل: بهترین گزینه برای ساخت و ساز سریع
خرید بیمه، استعلام و مقایسه انواع بیمه درمان ✅?
پروازهای مشهد به دبی چه زمانی ارزان میشوند؟
تجربه غذاهای فرانسوی در قلب پاریس بهترین رستورانها و کافهها
دلایل زنگ زدن فلزات و روش های جلوگیری از آن
خرید بلیط چارتر هواپیمایی ماهان _ ماهان گشت
سیگنال در ترید چیست؟ بررسی انواع سیگنال در ترید
بهترین هدیه تولد برای متولدین زمستان: هدیههای کاربردی برای روزهای سرد
صفحه اول
آرشیو مطالب
ورود/عضویت
هواشناسی
قیمت طلا سکه و ارز
قیمت خودرو
مطالب در سایت شما
تبادل لینک
ارتباط با ما
مطالب سایت سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون
مطالب سایت سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون
آمار وبسایت
تعداد کل بازدیدها :
1833522622
جدیدترین پدیده .net زبان برنامه نویسی F#
واضح آرشیو وب فارسی:سایت ریسک: mahdi761014-07-2009, 08:39 PMسلام این بخش مقدماتی میتواند به بسیاری از سوالات شما درباره F# و برنامه نویسی تابعی(Functional) پاسخ دهد. برنامه نویسی تابعی چیست ؟ برنامه نویسی تابعی از میان سه مدل برنامه نویسی عمده قدیمیترین آنهاست. اولین زبان برنامه نویسی تابعی APL بود که در سال 1955 تقریبا یک سال قبل از فورترن ابداع شد. دومین برنامه Lisp بود که در سال 58 (یعنی یک سال قبل از کوبول) ارائه شد. هر دو این زبانها (کوبول و فورترن) زبانهای دستوری هستند و موفقیت آنها در حوزه های تجارت و علوم باعث شد که مدل برنامه نویسی دستوری مدلی غالب برای مدت 30 سال باشد.با به بازار آمدن مدل شی گرا در دهه 70 و پیشرفت تدریجی زبانهای برنامه نویسی شی گرا ، پس از آن این نوع برنامه نویسی تا امروز محبوب ترین مدل میباشد. با توجه به توسعه پایدار و همیشگی زبانهای تابعی مانند OCAML , Haskel و... که برای برنامه نویسی دنیای حقیقی بیشترین کاربرد را دارند. بعد از 1950 همچنان زبان برنامه نویسی تابعی یک زبان آکادمیک و در سطح دانشگاهها محسوب میشد و موقعیت تجاری نداشت. اولین موفقیت تجاری زبانهای دستوری باعث شد تا برای چند دهه این زبانها به عنوان زبان غالب باقی بمانند ، زبانهای شی گرا تنها زمانی که نیاز برای حل مسایل و مشکلات پیشرفته تر کامپیوتری احساس شد به شهرت رسیدند. امروزه وجود برنامه نویسی تابعی برای حل مشکلاتی پیچیده تر اثبات شده و میتوان با آن برنامه های سده تر را نیز به وجود آورد. برنامه نویسی تابعی خالص تمام برنامه ها را به صورت مجموعه ای از توابع که میتوانند آرگومانهایی را دیافت و مقادیری را برگردانند نگاه میکند و بر خلاف مدلهای شی گرا و دستوری اثرات جانبی ندارد و به جای حلقه تکرار از حلقه های بازگشتی استفاده میکند. توابع در برنامه نویسی تابعی بسیار شبیه توابع ریاضی هستند زیرا آنها وضعیت برنامه را تغییر نمیدهند. در ساده ترین صورت وقتی که یک مقدار به شناسه اختصاص داده شد این مقدار تغییر نمیکند. توابع خود باعث تغییر مقادیر مولفه ها نشده و نتایج آن تابع با مقادیر کاملا جدید برگردانده میشود. در پیاده سازی عمده این نوع برنامه ها وقتی مقداری به یک مکان در حافظه افزوده شد ، تغییر نمیکند و برای بدست آوردن نتایج توابع مقادیر راکپی کرده و آن کپی ها را تغییر میدهند میتوان از مقادیر اصلی در توابع دیگر استفاده کرد و در زمانی که به آنها نیازی نبود آنها را دور انداخت که این مسئله همان موردیست که باعث به وجود آمدن مجموعه سطل زباله گردیده.اساس ریاضی برنامه نویسی تابعی صرف جالب است بنابراین زبانهای تابعی روشهای زیبا و منحصر به فردی را برای بسیاری از مسایل کامپیوتری ایجاد میکنند. طبیعت بی دستور بودن و استفاده از توابع بازگشتی زبانهای دیگر را برای برخی از فهالیتهای عادی مناسبتر جلوه میدهد با این حال یکی از مهمترین خصوصیات F# این است که میتواند از مدلهای دیگر برنامه نویسی نیز استفاده کند و حتی برای حل مشکلات خاص آنها را به بهترین شکل با م ترکیب کند. منبع persianscience mahdi761014-07-2009, 08:44 PMچرا برنامه نویسی تابعی مهم است ؟ وقتی افرا به برنامه نویسی تابعی فکر میکنند آنها بی دستور بودن را بعنوان ضعف در نظر میگیرند و فایده های آن را در نظر نمیگیرند. فرد ممکن است بگوید که با توجه به این که زبانهای دستوری 90% زبانهای بازار را تشکیل میدهد و به دلیل اینکه برنامه نویسی تابعی به این صورت نیست و همچنین با توجه به اینکه تعاریفی در ابتدای برنامه نویسی تابعی به صورت معمول نمیاید پس این نوع از برنامه کاملا کوتاه تر میباشد. افراد با توجه به این گفته ها جذب این نوع زبان بازگشتی بدون دستور که دنیای کاملا متفاوتی دارد نمیشوند. جان هیوز در مقاله کلاسه خود به نام "چرا زبانهاب برنامه نویسی تابعی مهم هستند" میگوید : "زبانهای برنامه نویسی تابعی شبیه کشیشان قرون وسطی میباشند آنها لذت زندگی را از خود میگیرند تا به صورت خوب و پرهیزکار جلوه کنند" برای فهمیدن برتری های این نوع زبان باید بینید که اجازه استفاده از چه چیزهایی را خواهید داشت. برای مثال برنامه نویسی تابعی به شما اجازه برخورد با تبع را به صورت جداگانه داده و مقادیر توابع را به توابع دیگر ارجاع میدهد.در نگاه اول ممکن است این قابلیت مهم جلوه نکند اما روش برخورد این زبانها با این مسئله بسیار قابل توجه است و تفاوت بین داده و توابعی را که خیلی مسایل وابسته به آنها میباشند را از میان بر میدارد. برنامه نویسی تابعی کوتاه تر و دسته بندی شده تر از سایر انواع است همچنین اندازه این برنامه ها و قابلیت خوانایی آنها حتی از زبانهای شی گرا نیز بیشتر است. علاوه بر برخورد با تابع از طریق مقادیر آنها زبانهای تابعی ویژگیهای دیگری دارند که از ریاضیات گرفته شده و علی الخصوص در زبانهای دستوری مشاهده نمیشوند. برای مثال معمولا زبانهای برنامه نویسی تابعی توابع کولیر را ارائه میکنند که در هنگاه ارسال آرگومانها به توابع اگر تمام آرگومانها ارسال نشوند تابع برای دریافت دیگر مولف ها منتظر میماند. همچنین برای زبانهای برنامه نویسی تابعی این امکان وجود دارد که از انواع سیستمها در سطوح مختلف(قدرت یا وزن) استفاده کند یعنی سیستمهایی که در آنها قدرت نوع بر وزن آن برتری دارد که این مسئله باعث بهبود عملکرد تصحیح برنامه بدون تلاش زیاد میگردد.علاوه بر این یک تابع ممکن است چندین مقدار را برگرداند که صدازنی توابع به راحتی انجام میگیرید. F# چیست ؟ زبان برنامه نویسی تابعی بهترین روش حل مسایل کامپیوتریست اما زبان برنامه نویسی تابعی خالص برای برنامه نویسی همه منظوره مناسب نمیباشد بنابراین به تدریج زبانهای برنامه نویسی تابعی در کنار زبانهای شی گرا و دستوری باقی مانده و استفاده عمومی نیافتند. مچنین در این مدل ویژگیهای افزوده شده را به راحتی میتوان در هر برنامه ای نوشت و به راحتی به آن افزود. F# یک زبان طبیعی به وجود آمده بر این مبناست بعلاوه بسیار بیشتر از یک زبان برنامه نویسی تابعی میباشد. برخی از زبانهای برنامه نویسی تابعی معروف بطور کلی (OCAML , Haskel , Lisp) با دستورات زمان اجرای سفارشی کار میکند و این مسئله باعث نبود روش برنامه نویسی چند فعالیته میشود. F# یک زبان همه منظوره برای محیط .Net است که برای حالت اجرا بصورت همه منظوره به کار میرود و به راحتیهر سه مدل برنامه نویسی را شامل میشود. برای حل مسایل مختلف در موثرترین روش میتوانید محیط خاص آنرا در برنامه انتخاب کنید. شما میتوانیداز برنامه نویسی توصیفی استفاده کنید و یا توابع را به راحتی با هم ترکیب کنید و یا روشهای شی گرا و دستوری را در همان برنامه استفاده کنید و از قابلیتهای مختلف هر کدام در برنامه سود ببرید. مثل دیگر برنامه های تابعی F# نوع قوی دارد اما از نوع استنتاجی هم سود میبرد بنابراین برنامه نویسان نیاز ندارند زمان زیادی برای توضیح انواع توابع هدر دهند مگر اینکه در موارد خاص ابهاماتی دربرنامه پیش بیاید که لزوم داشته باشد به وضوح بیان شود. علاوه بر این F# بصورت کاملی با چهارچوب .Net و کتابخانه کلاس اصلی آن یعنی BCL ترکیب شده و به راحتی میتوان از آن در F# استفاده کرد و این مسئله مانند C# و VB میباشد و حتی در مواردی استفاده از BCL در F# از دیگر زبانهای تحت .Net راحت تر است. F# مدل خود را از روی OCAML انتخاب کد که زبان برنامه نویسی تابعی شی گرای موفقی بود سپس با گسترش قابلیتها خوب این برنامه آنها را از نظر فنی و فلسفه کار داخل غالب .Net گنجاند. این زبان کاملا از غالب .Net پشتیبانی کرده و به کاربران این امکان را میدهد که هر چیزی که در محیط .Net ارائه شده است با F# استفاده کنند. کامپایلر F# میتواند تمام پیاده سازیهای زیر ساختار زبانهای معمول را بپذیرد و از روشهای معمول .Net بدون تغییر کد استفاده کند. همچنین میتواند برای کد نویسی IL به صورت برچسب دار استفاده شود. F# محدود به محیط ویندوز نبوده و میتوان آنرا در لینوکس ، مکینتاش و... استفاده کرد که بخشی از کتاب مورد ترجمه به نحوه عملکرد روی لینوکس میپردازد.کامپایلر F# را میتوان داخل محیط Virtual Studio افزود و با عیب یاب آن به چک کردن دستورات به صورت اتوماتیک پرداخت. همچنین این کامپالر راهنمایی هایی برای استفاده از تمامی توابع عرضه میکند که در نوع خود بینظیر است و برنامه نویسان اشاره میکنند که این مسئله بسیار برای شبیه کردن برنامه به زندگی واقعی موثر است. F# توسط دکتر دون سیم ابداع شد. در حال حاضرمحصولیست وابسته به تیمی کوچک اما کاملا پیشرفته واقع در مرکز تحقیقات مایکروسافت - کمبریج - لندن - انگلستان با این حال F# در حد یک زبان آکادمیک یا تحقیقاتی نیست و برای خیلی از برنامه های دنیای واقعی (که تعداد آنها به شدت در حال افزایش است) به کار میرود. با توجه به اینکه زبان تابعی دیگری به ندرت در محیط .Net اجرا میشوند F# بعنوان استاندارد این نوع زبانها در آمده است. زبانهای برنامه نویسی تابعی در این میان از F# تبعیت میکنند زیرا این زبان کیفیت پیاده سازی و اشتراک با .Net و Virtual Studio را بسیار بهتر در خود دارد. هیچ برنامه برنامه نویسی .Net دیگری از لحاظ کارکرد ، استفاده و انعطاف پذیری به پای F# نمیرسد. mahdi761014-07-2009, 08:47 PMچه کسانی از F# استفاده میکنند ؟ F# در شرکت مایکروسافت به وفور مورد استفاده است هم در MSR و هم در کل شرکت. رالف هربریش که یکی از مدیران دوگانه گروه بازی های مایکروافت و متخصص آموزش ماشینیست به استفاده فزاینده از F# اشاره میکند : "اولین برنامه کاربردی برای فرستادن 110 گیگابایت از طریق 11.000 فایل متنی در بیش از 300 دایرکتوری و وارد کردن آنها در بانک داده ای بود. کل برنامه 90 خط بود که شامل توضیحات نیز میشد و در کمتر از 18 ساعت توانست اطلاعات مربوطه را در محیط SQL بگنجاند یعنی 10.000 خط برنامه متنی در هر ثانیه مورد پردازش قرار گرفت. همچنین توجه کنید که منکد را بهینه نکردم بلکه برنامه را بصورت کاملا عادی نوشتم. این جواب بسیار قابل توجه بود زیرا من انتظار داشتم نوشتن و اجرای برنامه حداقل یک هفته کار ببرد. دومین برنامه ، برنامه پردازش میلیونها Feedback مشتریان بود، ما روابط مدلی زیادی را توسعه دادیم ومن آنها را داخل برنامه F# تایپ کردم همچنین داده های مربوط به پایگاه داده ای SQL را داخل آن فراخوانی کردم و نتایج را در فایل داده ای MatLab ذخیره کردم. مقدار این برنامه در F# صد خط بود که توضیحات را نیز شامل میشد. باز هم با اجرای این برنامه من تحت تاثیر قرار گرفتم زیرا پردازش میلیونها مورد دادها 10 دقیقه و در یک کامپیوتر عادی زمان برد.این برنامه را با C#از فعالیتهای قبلی ام داشتم که حدود 1000 خط طول داشت واصلا سریعتر ازاین برنامه نبود.کل کار از توسعه مدل روابط با اجرا و دیدن نتایج دو روز زمان برد." استفده از F# تنها در مایکروسافت رایج نیست و در خارج از آن نیز کاربردهایی دارد و یه سرعت در حال افزایش است. جود او کلی ، برنامه نویس شرکت Derivative One که یک شرکت تولید نرم افزارهای شبیه ساز مالی میباشد در جواب به این سوال که چرا این شرکت از F# در محصولاتش استفاده میکند ؟ میگوید : "ما مدلهای مالی خود را در C# و F# مورد مقایسه قرار دادیم و مشاهده کردیم که عملکرد یکسان است اما از F# بیشتر خوشمان آمد زیرا روش خلاصه تری دارد. یکی از مشکلات ما با F# نبود اطلاعات در مورد این زبان بود وبه نظر ما کتابی که هم اکنون توسط دون سیم برای آموزش F# ارائه شده میتواند کمک خوبی در این مورد باشد." تنها کتاب موجود هدف این کتاببه صورت عمده برنامه نویسان حرفه ای IT هستند که میخواهند سریعا با F# آشنا شوند. هرگونه تجربه ای که شما در زمینه برنامه نویسی به هر زبانی داشته باشید میتواند در یادگیری این زبان به شما کمک کند حتی در صورتیکه بطور کلی تازه کار باشید و هیچ زبان برنامه نویسی را قبل از F# کار نکرده باشید میتوانید F# را به عنوان اولین تجربه خود انتخاب کنید و این کتاب در این زمینه هم کمک خواهد بود. البته با وجود اینکه این کتاب سعی ندارد برنامه نویسی را به صورت پله پله آموزش دهد تمام حوزه های مهم F# را مورد اشاره قرار داده. mahdi761014-07-2009, 08:59 PMمحیط برنامه http://www.megapic.ir/images/17f4donf78qgr8oed 4p.gif (http://forum.p30world.com/redirector.php?url=http%3A%2F%2Fwww.megapic.ir%2F) یک مقاله کامل http://msdn.microsoft.com/en-us/magazine/cc164244.aspx (http://forum.p30world.com/redirector.php?url=http%3A%2F%2Fmsdn.microsoft.com %2Fen-us%2Fmagazine%2Fcc164244.aspx) برنامه را هم از ادرس زیر میتونید دانلود کنید http://research.microsoft.com/fsharp/default.aspx (http://forum.p30world.com/redirector.php?url=http%3A%2F%2Fresearch.microsoft .com%2Ffsharp%2Fdefault.aspx) موفق باشید :) M E H D I17-07-2009, 03:05 PMسلام ممنون از مهدی عزیز به خاطر تاپیک! البته این #F خیلی هم جدید نیست. خیلی وقت هست که مایکروسافت داره روش کار می کنه. تا اونجایی که من میدونم حداقل از زمانی که Visual Studio 2005 بود. البته #F رو میشه بدون Visual Studio هم اجرا کرد. اما در این صورت فقط می تونین از طریق خط فرمان داس برنامه رو اجرا کنین. روی Visual Studio 2010 قراره که باشه به صورت کامل. این هم کتابهای آموزشی #F مبانی #F !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! F# Expert !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! F# for Scientists !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! gonbad city06-08-2009, 08:10 AMحالا همون C# مایکروسافت چه ارزشی داشت که حالا F# بده بیرون aseman_ssm10-09-2009, 10:17 PMاطلاعاتي خيلي خوبي بود دستتون درد نكنه اين F# يه پچ داره كه رو vs2008 هم نصب ميشه و قابل استفاده است. emdadgar217-11-2010, 11:13 AMبا تشکر آیا منبع فارسی در مورد f# وجود دارد؟ سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 1537]
-
گوناگون
پربازدیدترینها