23
دا ام خ ه ن ب دا ام خ ه ن ب

زبانهاي برنامه نويسي تحت linux

Embed Size (px)

Citation preview

Page 1: زبانهاي برنامه نويسي تحت linux

خدا نام خدا به نام به

Page 2: زبانهاي برنامه نويسي تحت linux

زبانهای برنامه نویسی زبانهای برنامه نویسی تحت لینوکستحت لینوکس

QT - QT - RUBIRUBI

Page 3: زبانهاي برنامه نويسي تحت linux

QtQt چیست ؟چیست ؟

QtQt یک فریم ورک مولتی پلتفرم برای توسعه نرم یک فریم ورک مولتی پلتفرم برای توسعه نرمافزار می باشد که اکثرا برای ایجاد برنامه هایی با افزار می باشد که اکثرا برای ایجاد برنامه هایی با مورد استفاده قرار می گیرد . مورد استفاده قرار می گیرد . ( (GUIGUI)) رابط کاربریرابط کاربری

امکان ایجاد برنامه های متنی امکان ایجاد برنامه های متنی ۴۴اما پس از نسخه اما پس از نسخه نیز فراهم شده است بیشترین استفاده از کیوتی نیز فراهم شده است بیشترین استفاده از کیوتی

بوده است که یکی از بوده است که یکی از KDEKDE در رابط گرافیکیدر رابط گرافیکیمهمترین محیط های گرافیکی لینوکس می باشد . مهمترین محیط های گرافیکی لینوکس می باشد .

,Opera, Google Earth, Opera, Google Earth نرم افزار های بسیاری چوننرم افزار های بسیاری چونSkype, QtopiaSkype, Qtopia و ... نیز توسط این ابزار ایجاد و ... نیز توسط این ابزار ایجاد

گردیده اند . این ابزار توسط یک شرکت نروژی به گردیده اند . این ابزار توسط یک شرکت نروژی به ایجاد گردیده و با سرعت بسیاری در ایجاد گردیده و با سرعت بسیاری در TrolltechTrolltech نامنام

. . حال توسعه می باشدحال توسعه می باشد

Page 4: زبانهاي برنامه نويسي تحت linux

زبان برنامه نویسی در زبان برنامه نویسی درQtQt++ بصورت پیش فرض ++ بصورت پیش فرض CC . می باشد . می باشد مقایسه نمود . اما مقایسه نمود . اما VCVCتقریبا این ابزار را می توان با محیط ++تقریبا این ابزار را می توان با محیط ++

امکان برنامه نویسی با زبانهای دیگر چون پایتون ، رابی ، امکان برنامه نویسی با زبانهای دیگر چون پایتون ، رابی ، PHPPHP# پرل ، پاسکال و حتی # ، پرل ، پاسکال و حتی ، CC و جاوا نیز در و جاوا نیز در QtQt فراهم می فراهم می

باشد ! همانطور که گفته شد کیوتی تقریبا در اکثر سیستم باشد ! همانطور که گفته شد کیوتی تقریبا در اکثر سیستم عامل های موجود چون لینوکس ، ویندوز ، مک و سیستم های عامل های موجود چون لینوکس ، ویندوز ، مک و سیستم های

ها قابل اجراست . ها قابل اجراست .SmartphoneSmartphone ها و ها و PDAPDAخاصی چون خاصی چون QtQt از موتوری درونی و خاص خود برای ایجاد اشیا و پنجره ها از موتوری درونی و خاص خود برای ایجاد اشیا و پنجره ها

استفاده می کند . بنابراین امکان اجرا بر روی چندین سیستم استفاده می کند . بنابراین امکان اجرا بر روی چندین سیستم عامل و نیز استفاده از اشایی پیشرفته براحتی ممکن می باشد عامل و نیز استفاده از اشایی پیشرفته براحتی ممکن می باشد

. در عین حال کیوتی در هر سیستم عامل برنامه هایی درست . در عین حال کیوتی در هر سیستم عامل برنامه هایی درست ( ( nativenativeهمانند ظاهر همان سیستم عامل یا اصطالحا محلی )همانند ظاهر همان سیستم عامل یا اصطالحا محلی )

تولید می کند تولید می کند . . کیوتی اسمی کلی هست و شامل تمام ابزار و کتابخانه ها و کیوتی اسمی کلی هست و شامل تمام ابزار و کتابخانه ها و

شامل شامل QtQtطراح می شود . در حقیقت محیط و فریم ورک طراح می شود . در حقیقت محیط و فریم ورک قسمت های مختلفی می باشد . هسته اصلی و داخلی آن قسمت های مختلفی می باشد . هسته اصلی و داخلی آن

شامل کتابخانه هایی بسیار گسترده در اکثرا زمینه های موجود شامل کتابخانه هایی بسیار گسترده در اکثرا زمینه های موجود چون پایگاه داده ، شبکه ، سیستم فایل ، اینترنت و ... می باشد چون پایگاه داده ، شبکه ، سیستم فایل ، اینترنت و ... می باشد

( گرافیکی و بسیار ( گرافیکی و بسیار DesignerDesigner. همچنین کیوتی شامل طراحی ). همچنین کیوتی شامل طراحی )قدرتمند و ساده می باشد که برنامه نویسی و ایجاد پنجره ها را قدرتمند و ساده می باشد که برنامه نویسی و ایجاد پنجره ها را

بسیار آسان و سریع قابل پیاده سازی می کند . بسیار آسان و سریع قابل پیاده سازی می کند .

Page 5: زبانهاي برنامه نويسي تحت linux

QtQtبسیار وسیع و گسترده است بسیار وسیع و گسترده است

کیوتی یک فریم ورک بسیار گسترده و غنی می کیوتی یک فریم ورک بسیار گسترده و غنی میباشد که شامل ویژگی و توانایی هاو ابزار های باشد که شامل ویژگی و توانایی هاو ابزار های بسیاری می باشد که امکان ایجاد برنامه هایی بسیاری می باشد که امکان ایجاد برنامه هایی سمت سرور و کالینت با کارایی بسیار زیاد و سمت سرور و کالینت با کارایی بسیار زیاد و

مولتی پلتفرم را فراهم می آورد . مولتی پلتفرم را فراهم می آورد .

Page 6: زبانهاي برنامه نويسي تحت linux

کتابخانه های غنی و گسترده کتابخانه های غنی و گسترده

  ( کتابخانه های( کتابخانه هایlibrarylibrary این فریم ورک که بالغ ) این فریم ورک که بالغ ) می باشد می باشد CC کتابخانه کامل به زبان ++ کتابخانه کامل به زبان ++۴۰۰۴۰۰بر بر

در حقیقت شالوده و پایه فریم ورک را تشکیل در حقیقت شالوده و پایه فریم ورک را تشکیل می دهد . این کتابخانه ها شامل مواردی چون می دهد . این کتابخانه ها شامل مواردی چون

XML XML ، پایگاه داده ، شبکه ، ، پایگاه داده ، شبکه ، GUIGUIکتابخانه های کتابخانه های ، ، OpenGLOpenGL درونی سازی شده ، بین المللی درونی سازی شده ، بین المللی

( و ... می باشد . ( و ... می باشد . internationalizationinternationalizationکردن )کردن )

Page 7: زبانهاي برنامه نويسي تحت linux

طراح گرافیکیطراح گرافیکی

  

Qt DesignerQt Designer نام یک طراح نام یک طراح گرافیکی بسیار قدرتمند می گرافیکی بسیار قدرتمند می

باشد که امکان ایجاد فرم ها و باشد که امکان ایجاد فرم ها و الیه ها بصورت سریع و آسان با الیه ها بصورت سریع و آسان با

استفاده از نما و گرافیکی استفاده از نما و گرافیکی مناسب را در اکثر سیستم عامل مناسب را در اکثر سیستم عامل

ها فراهم می کند . ها فراهم می کند .

Page 8: زبانهاي برنامه نويسي تحت linux

( آسان( آسانinternationalizationinternationalizationبین الملل سازی )بین الملل سازی )

  Qt LinguistQt Linguist نام ابزار دیگری می باشد که امکان ترجمه و بین نام ابزار دیگری می باشد که امکان ترجمه و بین الملل سازی را بسیار راحتتر می کند . با استفاده از این ابزار الملل سازی را بسیار راحتتر می کند . با استفاده از این ابزار

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

زمان بری چون ترجمه به زبانهای مختلف وقت بیشتری بر زمان بری چون ترجمه به زبانهای مختلف وقت بیشتری بر روی توسعه برنامه صرف می کنند . و نیز امکان ترجمه برنامه روی توسعه برنامه صرف می کنند . و نیز امکان ترجمه برنامه

برای کاربران معمولی که اطالعات زیادی از روند توسعه و برای کاربران معمولی که اطالعات زیادی از روند توسعه و برنامه نویسی ندارند فراهم می شود . برنامه نویسی ندارند فراهم می شود .

همچنین کیوتی ویژگی های بسیار خوبی برای زبان فارسی و همچنین کیوتی ویژگی های بسیار خوبی برای زبان فارسی وچینش راست به چپ فراهم می کند . این ویژگی از درونی چینش راست به چپ فراهم می کند . این ویژگی از درونی

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

متون راست به چپ فارسی را نمایش می دهند . انتخاب و متون راست به چپ فارسی را نمایش می دهند . انتخاب و استفاده از این ویژگی هم بسیار آسان می باشد. استفاده از این ویژگی هم بسیار آسان می باشد.

Page 9: زبانهاي برنامه نويسي تحت linux

مستندات و راهنمای غنی و کاملمستندات و راهنمای غنی و کامل

Qt AssistantQt Assistant مستندات و فایل مروگر یک مستندات نام و فایل مروگر یک نامامکان آن از مجدد استفاده و تغییر که باشد امکان می آن از مجدد استفاده و تغییر که باشد می

با . شده نوشته های برنامه باشد می با . پذیر شده نوشته های برنامه باشد می QtQtپذیرمستندات نمایش برای ابزار این از توانند مستندات می نمایش برای ابزار این از توانند می

توسعه . و تهیه بنابراین کنند استفاده توسعه . خود و تهیه بنابراین کنند استفاده خودتر آسان و سریعتر بسیار ها برنامه تر مستندات آسان و سریعتر بسیار ها برنامه مستندات

بود . بود . خواهد خواهد

Page 10: زبانهاي برنامه نويسي تحت linux

  QtQt مولتی پلتفرم )کراس پلتفرم( می مولتی پلتفرم )کراس پلتفرم( می باشد باشد

. یعنی باشد می پلتفرم مولتی کامل بطور یعنی . کیوتی باشد می پلتفرم مولتی کامل بطور کیوتیاجرا امکان دیگر عبارت به یا عامل سیستم از اجرا مستقل امکان دیگر عبارت به یا عامل سیستم از مستقلمطمئنا . ها عامل سیستم از وسیعی محدوده روی مطمئنا . بر ها عامل سیستم از وسیعی محدوده روی بر

پلتفرم مولتی هم کیوتی با شده نوشته های پلتفرم برنامه مولتی هم کیوتی با شده نوشته های برنامه . !  دارند نیاز کیوتی به فقط اجرا برای چون بود  ! . خواهند دارند نیاز کیوتی به فقط اجرا برای چون بود خواهند

برای . باشد می ارزش با و مهم بسیار ویژگی برای . این باشد می ارزش با و مهم بسیار ویژگی ایناز ای مجموعه نویس برنامه از مثال ای مجموعه نویس برنامه نحوه APIAPIمثال و توابع نحوه و و توابع و

هر در سپس گیرد می یاد را آنها از استفاده و هر اجرای در سپس گیرد می یاد را آنها از استفاده و اجرای !  کند نویسی برنامه تواند می راحتی به عاملی  ! سیستم کند نویسی برنامه تواند می راحتی به عاملی سیستم

Page 11: زبانهاي برنامه نويسي تحت linux

 یادگیری کیوتی آسان است  یادگیری کیوتی آسان است

تابع یک کار طرز است کافی کیوتی نویس تابع برنامه یک کار طرز است کافی کیوتی نویس APIAPIبرنامه ) یاد) را ها کتابخانه به دسترسی برای نیاز مورد ( توابع یاد) را ها کتابخانه به دسترسی برای نیاز مورد توابعها . پلتفرم همه در تابع آن از تواند می سپس ها . بگیرد پلتفرم همه در تابع آن از تواند می سپس بگیرد

تالش . نهایت کیوتی دهندگان توسعه همچنین کند تالش . استفاده نهایت کیوتی دهندگان توسعه همچنین کند استفادهحف برای را حف خود برای را با . ظظخود اند کرده استفاده و یادگیری با . سهولت اند کرده استفاده و یادگیری سهولت

آزاد ) افزار نرم یک کیوتی اینکه به آزاد )توجه افزار نرم یک کیوتی اینکه به ( ( OpenSource QtOpenSource Qtتوجهسر بسیار ان توسعه باشد سر می بسیار ان توسعه باشد با ییمی مطابق بیشتر و با عتر مطابق بیشتر و عتر

ابزار . این همچنین باشد می کننده مصرف ابزار . خواست این همچنین باشد می کننده مصرف خواستانجمن و گروهای همراه به کامل و غنی بسیار انجمن مستنداتی و گروهای همراه به کامل و غنی بسیار مستنداتیباشد . می مفید و کننده کمک بسیار که دارد فعال باشد . هایی می مفید و کننده کمک بسیار که دارد فعال هایی

Page 12: زبانهاي برنامه نويسي تحت linux

کارا کارا وو بسیار قدرتمند و بی عیببسیار قدرتمند و بی عیبمی باشدمی باشد

نرم افزار های تجاری و حرفه ای بسیاری در پلتفرم ها و با ابزار ها نرم افزار های تجاری و حرفه ای بسیاری در پلتفرم ها و با ابزار ها ۴۵۰۰۴۵۰۰و کامپایلر های مختلفی با کیوتی نوشته شده است . بیش از و کامپایلر های مختلفی با کیوتی نوشته شده است . بیش از

شرکت معتبر برنامه نویسی در دنیا با استفاده از این ابزار برنامه شرکت معتبر برنامه نویسی در دنیا با استفاده از این ابزار برنامه های خود را تولید می کنند . بنابراین کامال تست شده و اکثر های خود را تولید می کنند . بنابراین کامال تست شده و اکثر

مشکالت آن مشخص و برطرف شده است . همچنین تمامی موارد مشکالت آن مشخص و برطرف شده است . همچنین تمامی موارد مورد نیاز نیز به ان اضافه شده است . و دوباره با توجه به اپن مورد نیاز نیز به ان اضافه شده است . و دوباره با توجه به اپن

سورس بودن آن این امر بسیار احتتر بوده و هر کسی می تواند در سورس بودن آن این امر بسیار احتتر بوده و هر کسی می تواند در توسعه آن سهیم باشد . برای مثال در سالهای گذشته هزینه توسعه آن سهیم باشد . برای مثال در سالهای گذشته هزینه

بسیاری از طرف دولت برای فارسی سازی و بومی سازی آن و نیز بسیاری از طرف دولت برای فارسی سازی و بومی سازی آن و نیز خه های اصلی کیوتی هزینه شده است ! خه های اصلی کیوتی هزینه شده است ! سسثبت این تغییرات در نثبت این تغییرات در ن

البته تیم توسعه کیوتی بسیار سخت گیر می باشد و اجازه اضافه البته تیم توسعه کیوتی بسیار سخت گیر می باشد و اجازه اضافه شدن هر کد یا تغییری را نمی دهند ! مگر اینکه کارایی و دلیل آن شدن هر کد یا تغییری را نمی دهند ! مگر اینکه کارایی و دلیل آن

کامال بحث شده و اثبات شده باشد . کامال بحث شده و اثبات شده باشد .

کارایی و سرعت اجرای برنامه های نوشته شده با کیوتی نیز بسیار کارایی و سرعت اجرای برنامه های نوشته شده با کیوتی نیز بسیارخوب و در حد برنامه های معمولی موجود در همان پلتفرم می باشد خوب و در حد برنامه های معمولی موجود در همان پلتفرم می باشد

. برنامه های نوشته شده بدون هیچ واسطی اجرا شده و بصورت . برنامه های نوشته شده بدون هیچ واسطی اجرا شده و بصورت مستقیم از سخت افزار و منابع استفاده می کنند . مستقیم از سخت افزار و منابع استفاده می کنند .

Page 13: زبانهاي برنامه نويسي تحت linux

کیوتی اپن سورس و آزاد است کیوتی اپن سورس و آزاد است

مهمترین نکته در باره الیسنس کیوتی این است که تمامی ابزار ها مهمترین نکته در باره الیسنس کیوتی این است که تمامی ابزار هادر دو الیسنس مختلف عرضه می شوند . یکی تجاری و دیگری غیر در دو الیسنس مختلف عرضه می شوند . یکی تجاری و دیگری غیر تجاری . بحث نرم افزار اپن سورس و ازاد و مزیت های آن که در تجاری . بحث نرم افزار اپن سورس و ازاد و مزیت های آن که در

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

الیسنس خود مزیتی مهم می باشد که هر الیسنس تضمین کننده الیسنس خود مزیتی مهم می باشد که هر الیسنس تضمین کننده دیگری هست ! دیگری هست !

استفاده از مزیت های جامعه اپن سورس و نرم افزار آزاد برای استفاده از مزیت های جامعه اپن سورس و نرم افزار آزاد برایتوسعه بهتر و سریعتر . بنابراین هر کسی می تواند کیوتی را بسته توسعه بهتر و سریعتر . بنابراین هر کسی می تواند کیوتی را بسته به نیاز خود تغییر و تغییرات اعمال شده را به نسخه های اصلی نیز به نیاز خود تغییر و تغییرات اعمال شده را به نسخه های اصلی نیز

اضافه کند تا بقیه نیز از آن استفاده کنند . اضافه کند تا بقیه نیز از آن استفاده کنند .

اطمینان شرکت ها و برنامه نویسان از جنبه مالی و تجاری تولیدات اطمینان شرکت ها و برنامه نویسان از جنبه مالی و تجاری تولیداتخود . با استفاده از نسخه تجاری کیوتی هر شرکت و برنامه خود . با استفاده از نسخه تجاری کیوتی هر شرکت و برنامه

نویسی می تواند برنامه های نوشته شده خود را با مجوز تجاری و نویسی می تواند برنامه های نوشته شده خود را با مجوز تجاری و اطمینان خاطر بفروش برساند اطمینان خاطر بفروش برساند

Page 14: زبانهاي برنامه نويسي تحت linux

RubyRuby چیست ؟ چیست ؟

: روبیروبی انگلیسی ) : به انگلیسی ) برنامه ( RubyRubyبه زبان برنامه ( یک زبان یک . روبی است گرا شی و ،پویا انعطافپذیر . نویسی روبی است گرا شی و ،پویا انعطافپذیر نویسی

گرایی پرلپرل سینتکسسینتکس شی گرایی و شی ترکیب اسمال تاکاسمال تاکو ترکیب را رابا امکانات برخی در و با میکند امکانات برخی در و و و لیسپلیسپو و پایتونپایتونمیکند

DylanDylan و وCLUCLU . زبان یک روبی است . مشترک زبان یک روبی است مشترک. singlesingle--passpassمفسر مفسر آن اصلی سازی پیاده . است آن اصلی سازی پیاده است

مجوز یک تحت شده منتشر آزاد افزار نرم مجوز یک یک تحت شده منتشر آزاد افزار نرم یکاست است بازمتن بازمتن

Page 15: زبانهاي برنامه نويسي تحت linux

تاریخچهتاریخچه

این زبان توسط یوکیهیرو ماتز ماتسوموتو ایجاد شد که کار بر این زبان توسط یوکیهیرو ماتز ماتسوموتو ایجاد شد که کار بر آغاز کرد و در سال آغاز کرد و در سال 19941994 فوریه سال فوریه سال 2424روی روبی را در روی روبی را در

آنرا بصورت عمومی منتشر کرد. روبی نام جواهر منتسب آنرا بصورت عمومی منتشر کرد. روبی نام جواهر منتسب 19951995به ماه جوالی است که ماه تاسیس یک کالج است. در اکتبر به ماه جوالی است که ماه تاسیس یک کالج است. در اکتبر

)با )با 1.91.9 است. روبی نسخه است. روبی نسخه 1.8.51.8.5 آخرین نسخه پایدار آخرین نسخه پایدار 20062006یکسری تغییرات اساسی( نیز در حال توسعه است. در حال یکسری تغییرات اساسی( نیز در حال توسعه است. در حال

حاضر موج بحرانی در جامعه روبی بوجود آمده که دلیل آن وجود حاضر موج بحرانی در جامعه روبی بوجود آمده که دلیل آن وجود چند مشکل در پیاده سازی فعلی روبی است که راه حل چند مشکل در پیاده سازی فعلی روبی است که راه حل

مشخصی برای آنها مدنظر نیست. تیم اصلی توسعه روبی مشخصی برای آنها مدنظر نیست. تیم اصلی توسعه روبی متمرکز کرده اند، اما متمرکز کرده اند، اما YARVYARVتالشهای خود را بر روی پروژه تالشهای خود را بر روی پروژه

پیشرفت آن کند است. در این اثنا چند پیاده سازی رقیب از پیشرفت آن کند است. در این اثنا چند پیاده سازی رقیب از ( که ( که JRubyJRuby )به انگلیسی )به انگلیسی جی روبیجی روبیروبی بوجود آمده اند، بخصوص روبی بوجود آمده اند، بخصوص

است و رابینیوس )به است و رابینیوس )به جاواجاوایک تالش برای اتصال روبی به پلتفرم یک تالش برای اتصال روبی به پلتفرم ( که یک مفسر است که بعنوان یک زیر پروژه ( که یک مفسر است که بعنوان یک زیر پروژه RabiniusRabiniusانگلیسی انگلیسی

( ایجاد شده توجه زیادی را ( ایجاد شده توجه زیادی را Evan PhoenixEvan Phoenixتوسط ایوان فونیکس )توسط ایوان فونیکس )در هفته های اخیر به خود جلب کرده است. در هفته های اخیر به خود جلب کرده است.

Page 16: زبانهاي برنامه نويسي تحت linux

فلسفهفلسفه

""روی بر کامپیوتر مهندسان بخصوص و افراد روی"" معموال بر کامپیوتر مهندسان بخصوص و افراد معموال “ . انجام با میکنند فکر چنین آنها میکنند تمرکز . “ ماشینها انجام با میکنند فکر چنین آنها میکنند تمرکز ماشینها

. اینکار انجام با کرد خواهد عمل سریعتر ماشین . اینکار اینکار انجام با کرد خواهد عمل سریعتر ماشین اینکار . ماشین اینکار انجام با کرد خواهد عمل موثرتر . ماشین ماشین اینکار انجام با کرد خواهد عمل موثرتر ماشین . ” میکنند تمرکز ماشین روی بر آنها غیره و غیره و . غیره ” میکنند تمرکز ماشین روی بر آنها غیره و غیره و غیره

بر کنیم، تمرکز انسانها روی بر باید ما اصل در بر اما کنیم، تمرکز انسانها روی بر باید ما اصل در امانویسی برنامه چطور میدهند ترجیح انسانها اینکه نویسی روی برنامه چطور میدهند ترجیح انسانها اینکه روی

را ماشینها چگونه میدهند ترجیح انسانها اینکه یا را کنند ماشینها چگونه میدهند ترجیح انسانها اینکه یا کنند"". . . غالمند ماشینها هستیم ارباب ما کنند .""مدیریت . . غالمند ماشینها هستیم ارباب ما کنند مدیریت

Page 17: زبانهاي برنامه نويسي تحت linux

: است، شی یک داده از بیت هر است گرا شی : روبی است، شی یک داده از بیت هر است گرا شی روبیو کالسها و حتی کالسها داده typetypeحتی بعنوان زبانها از بسیاری در که داده ها بعنوان زبانها از بسیاری در که ها

مانند ) اند شده گرفته نظر در مانند )اصلی اند شده گرفته نظر در و و booleanboolean ، ،integerintegerاصلی““nilnil . شده”(. نامگذاری مقادیر ست متد یک تابع . هر شده”(. نامگذاری مقادیر ست متد یک تابع هر

( ) ارجاع) یک بهنوان ( )متغیرها ارجاع) یک بهنوان نظر( referencereferenceمتغیرها در اشیا نظر( به در اشیا به . مقدار با بری ارث از روبی اشیا خود نه میشوند، . گرفته مقدار با بری ارث از روبی اشیا خود نه میشوند، گرفته

پویا ) پویا )دهی میکسین( )dynamic dispatchdynamic dispatchدهی میکسین( )، ،mixinmixin )و( وsingleton methodssingleton methods ( یک برای شده تعریف و به یک ) مربوط برای شده تعریف و به مربوط

داخل در شدن تعریف بجای بفرد منحصر شی داخل نمونه در شدن تعریف بجای بفرد منحصر شی نمونه . بری( ارث از روبی وجود این با میکند پشتیبانی . کالس بری( ارث از روبی وجود این با میکند پشتیبانی کالس

را ماژولها میتوانند کالسها نمیکند، پشتیبانی را چندگانه ماژولها میتوانند کالسها نمیکند، پشتیبانی چندگانه. mixinmixinبعنوان بعنوان کنند وارد . ها کنند وارد ها

معنی شناسی

Page 18: زبانهاي برنامه نويسي تحت linux

امکانات امکانات ئی ئی شی گراشی گرا

پشتیبانی از پشتیبانی ازiteratorsiterators و و closuresclosures )بر اساس تبادل بلوکهای کد( )بر اساس تبادل بلوکهای کد(

پشتیبانی محلی از پشتیبانی محلی ازregular expressionsregular expressions شبیه پرل( در سطح زبان )شبیه پرل( در سطح زبان(

( جاروب اتوماتیک زباله از حافظه( جاروب اتوماتیک زباله از حافظهautomatic garbage collectingautomatic garbage collecting ) )

قابلیت حمل باال قابلیت حمل باال

پشتیبانی شراکتی از پشتیبانی شراکتی ازmultimulti--threadingthreading در تمام پلتفرمهای با استفاده از در تمام پلتفرمهای با استفاده از green threadsgreen threads

/کتابخانه های اشتراکی/کتابخانه های اشتراکیDLLDLL در اکثر پلتفرمها در اکثر پلتفرمها

introspection, reflectionintrospection, reflection و و metameta--programmingprogramming

کتابخانه استاندارد بزرگ کتابخانه استاندارد بزرگ

Page 19: زبانهاي برنامه نويسي تحت linux

سینتکسسینتکس

روبی بسیار شبیه سینتکس پرل و پایتون است. روبی بسیار شبیه سینتکس پرل و پایتون است. سینتکسسینتکساعالن کالسها و متدها توسط کلمات کلیدی انجام میشود. در اعالن کالسها و متدها توسط کلمات کلیدی انجام میشود. در

مقایسه با پرل متغیرها الزاما با یک عالمت خاص شروع مقایسه با پرل متغیرها الزاما با یک عالمت خاص شروع نمیشوند. )وقتی از چنین عالئمی استفاده شود عالمت حوزه نمیشوند. )وقتی از چنین عالئمی استفاده شود عالمت حوزه

دید متغیر را تغییر میدهد.( بارزترین تفاوت روبی از سی و پرل دید متغیر را تغییر میدهد.( بارزترین تفاوت روبی از سی و پرل آنست که کلمات کلیدی )بجای براکت( برای تعریف بلوکهای آنست که کلمات کلیدی )بجای براکت( برای تعریف بلوکهای کد استفاده میشوند. سطر جدید بعنوان پایان یک جمله بکار کد استفاده میشوند. سطر جدید بعنوان پایان یک جمله بکار برده میشود در عین حال که برای اینکار میتوان از یک سمی برده میشود در عین حال که برای اینکار میتوان از یک سمی

کالون );( نیز استفاده کرد. تورفتگیها معنی خاصی ندارند کالون );( نیز استفاده کرد. تورفتگیها معنی خاصی ندارند )برعکس پایتون(. نمونه هایی از سینتکس روبی را میتوانید در )برعکس پایتون(. نمونه هایی از سینتکس روبی را میتوانید در

بخش مثالها ببینید. بخش مثالها ببینید.

Page 20: زبانهاي برنامه نويسي تحت linux

در ضمن برخی مسائل در مورد در ضمن برخی مسائل در مورد خود زبان برجسته است:خود زبان برجسته است:

زبانهای از بسیاری با قیاس در روبی عملکرد سرعت، مورد زبانهای در از بسیاری با قیاس در روبی عملکرد سرعت، مورد درشده ) تفسیر زبان هر همانند است تر پایین شده شده ) کامپایل تفسیر زبان هر همانند است تر پایین شده کامپایل

اصلی( نویسی اسکریپت زبانهای با قیاس در همچنین و اصلی( دیگر نویسی اسکریپت زبانهای با قیاس در همچنین و دیگر . نسخه در که هرچند دارد وجود حالت همین پایتون و پرل . مانند نسخه در که هرچند دارد وجود حالت همین پایتون و پرل مانند

بصورت روبی آینده بصورت های روبی آینده کد های کد بایت شد( bytecodebytecode ) )بایت خواهد شد( کامپایل خواهد کامپایلروی بر روی و بر خواهد( Yet Another Ruby VMYet Another Ruby VMخالصه ) خالصه ) YARVYARVو خواهد( اجرا اجرا

نوشته. های برنامه در رفته بکار حافظه حاضر حال در نوشته. شد های برنامه در رفته بکار حافظه حاضر حال در شدکه ها برنامه همان در رفته بکار حافظه از کمتر روبی در که شده ها برنامه همان در رفته بکار حافظه از کمتر روبی در شده

. است اند، شده نوشته پایتون و پرل .با است اند، شده نوشته پایتون و پرل با غیر نتایج به است ممکن روبی در متدها پارانتزهای غیر حذف نتایج به است ممکن روبی در متدها پارانتزهای حذف

چند با متدهایی در ای چند منتظره با متدهایی در ای . آرگومانآرگومانمنتظره کنید توجه شود . منتج کنید توجه شود منتجپارانتزها حذف که اند کرده اشاره روبی دهندگان توسعه پارانتزها که حذف که اند کرده اشاره روبی دهندگان توسعه که

. هر در شد خواهد ممنوع آینده در آرگومان چند با متدهایی . در هر در شد خواهد ممنوع آینده در آرگومان چند با متدهایی در . میشود توصیه آرگومان تک متدهای در پارانتزها حذف . صورت میشود توصیه آرگومان تک متدهای در پارانتزها حذف صورت

Page 21: زبانهاي برنامه نويسي تحت linux

پیاده سازیهاپیاده سازیها

: مفسر دارید اصلی سازی پیاده دو : روبی مفسر دارید اصلی سازی پیاده دو روبیقرار استفاده مورد بیشتر که روبی قرار رسمی استفاده مورد بیشتر که روبی رسمی

و و میگیرد، اساس JRubyJRubyمیگیرد، بر سازی پیاده یک اساس که بر سازی پیاده یک که.جاواجاوا .است است

Page 22: زبانهاي برنامه نويسي تحت linux

د:د:روبی برای سیستم عاملهای زیر ارائه میشوروبی برای سیستم عاملهای زیر ارائه میشو

یونیکسیونیکسبیشتر انواع بیشتر انواع لینوکسلینوکس )داس )رایانه(داس )رایانه مایکروسافت مایکروسافت ویندوزویندوز VistaVista//2003/20002003/2000//NTNT//XPXP//98/9598/95 مکینتاشمکینتاش OSXOSX BeOSBeOS AmigaAmiga MorphOSMorphOS Acron RISC OSAcron RISC OS OSOS//22 SyllableSyllable

Page 23: زبانهاي برنامه نويسي تحت linux

تهیه و تنظیمتهیه و تنظیمسلطانیسلطانیهیواهیوا

عزتیعزتیفریدهفریده