برنامهنویسی جیست
برنامه نویسی چیست؟
برنامه نویسی را می توان به یک بازی هوش تشبیه کرد ، بازی بر روی داده ها و متغیرها با استفاده از دستورات و ابزارهای برنامه نویسی که در اختیار ما گذاشته شده است . در این بازی ابتدا باید ابزراهای مورد نیاز خود ، جهت نوشتن برنامه ای خاص را انتخاب کرده سپس باید ابزارها را به گونه ای در کنار هم قرار دهیم و به گونه ای با ابزارها بر روی داده ها و متغیرها کار کنیم تا به هدف مورد نظر برسیم . بنابراین باید در ابتدا ، شناخت کافی بر روی ابزارها و کاربرد آنها داشته باشیم که تجربه نشان داده این یادگیری برای دانشجویان ، چندان دشوار نیست و اکثر دانشجویان قادر به درک ابزارها و دستوراتی مانند if یا while و غیره می باشند . اما نکته مهم این است که پس از تسلط بر روی ابزارها ، تازه بازی آغاز می شود و ما تنها بر قوانین بازی و ابزارهای موجود شناخت پیدا کرده ایم . اینجاست که برخی دانشجویان دچار مشکل می شوند و قادر به استفاده مناسب از ابزارها و بسط دادن آنها در کنار یکدیگر جهت رسیدن به هدف نهایی برنامه نمی باشند . در این مرحله دانشجویان باید دارای یک روحیه الگوریتمی شوند بدین معنی که توانایی تفکیک مراحل ، جهت رسیدن به پاسخ را داشته باشند . کمتر دانشجویی است که بدون تمرین و ممارست به این روحیه دست پیدا کند . از علائم ورود یک دانشجو به دنیای برنامه نویسی شوق و اشتیاق او جهت یافتن تمرینهای جدید برنامه نویسی است و چنین دانشجویی با پشتکار خود می تواند یک برنامه نویس حرفه ای شود
لیسب:
یک زبان برنامهنویسی رایانه است که در سال ۱۹۵۸ به وسیلهٔ جان مککارتی ابداع شده است. این زبان، مانند زبان برنامهنویسی پرولوگ، بیشتر برای برنامهنویسی هوش مصنوعی مورد استفاده قرار میگیرد. با توجه به اینکه زبان لیسپ از نحو سادهای برخوردار است، تجزیه و پیادهسازی آن نسبتاً با سهولت انجام میشود.
متن برنامههای لیسپ عموماً از نمادها و لیستهایی از نمادها تشکیل میشود و بدین خاطر است که این زبان لیسپ (مخفف پردازش لیست) نامیده شده است. یکی از ویژگیهای جالب زبان لیسپ این است که خود برنامههای لیسپ نیز لیست هستند و بنا بر این، میتوان با برنامهها به عنوان دادهها رفتار کرد و یا دادهها را به عنوان برنامه ارزیابی نمود.
لیسپ دارای گویشهای مختلفی است که بعضی از آنها دارای قابلیتهای شیءگرا نیز هستند. از این میان میتوان به کامن لیسپ اشاره کرد.
سی نام فارسی عدد ۳۰ است.
زبان برنامهنویسی سی یکی از زبانهای برنامهنویسی رایانهای است.
سی (Si) نماد شیمیایی سیلیکون است.
زبان برنامهنویسی ++ : C
(تلفظ می شود: سی پلاس پلاس) یک زبان برنامهنویسی کامپیوتری سطح بالا و عمومی (با کاربرد های متنوع) می باشد. این زبان از تمام روش های مرسوم برنامه نویسی از قبیل برنامهنویسی شیگرا، برنامه نویسی ساخت یافته و برنامه نویسی پایه پشتیبانی می کند.
زبان ++C در سال ۱۹۸۳ در آزمایشگاه های بل (Bell Labs) و بر مبنای زبان سی با افزودن امکانات برنامه نویسی شی گرا ساخته شد. این زبان از حوالی سال ۱۹۹۰ میلادی یکی از پرکاربردترین زبانهای برنامه نویسی به شمار می رود که برای برنامه نویسی سیستمی و برنامه نویسی ویژوال (بر مبنای GUI) در محیط های مختلف از قبیل ویندوز و لینوکس به صورت وسیع به کار می رود.
جاوا:
امروزه یکی از متداول ترین زبان های برنامه نویسی جهان است. این زبان از لحاظ ظاهری شباهت های زیادی به ++C دارد ولی در اصل می توان تفاوت های بنیادین زیادی را برای آنها بر شمرد. بر خلاف بسیاری دیگر از زبان های کامپایلری که سورس کد آنها پس از کامپایل شدن به باینری یک ماشین حقیقی ترجمه می شود، برنامه های جاوا پس از کامپایل شدن به باینری ماشینی به نام ماشین مجازی جاوا یا JVM ترجمه می شود. این کد باینری را بایت کد می گویند. ماشین مجازی جاوا عمدتا بصورت نرم افزاری پیاده سازی می شود ولی پیاده سازی های سخت افزاری یا ترکیبی (بیشتر به صورت کمک پردازنده) از آن نیز وجود دارد. استفاده از ماشین مجازی یک روش مدرن در زبان های برنامه نویسی محسوب می شود و مزایای زیادی دارد. ماشین مجازی جاوا می تواند امنیت اجرای برنامه ها را تضمین کند و حق دسترسی های مختلفی برای برنامه ها در نظر بگیرد. همچنین ماشین مجازی جاوا سازگاری اجرای برنامه های جاوا را تحت سیستم عامل های مختلف حفظ می کند. یک باور غلط در بین بسیاری از مردم این است که برنامه های نوشته شده به زبان جاوا کندتر از برنامه های نوشته شده به زبان های کامپایلری اجرا می شود، در حالی که سرعت اجرای یک برنامه جاوا کاملا بستگی به نحوه پیاده سازی ماشین مجازی دارد. ماشین های مجازی جدید جاوا معمولا از تکنیکی به نام کامپایل در زمان لازم یا JIT استفاده می کنند. در این روش در هنگام اجرای برنامه بایت کد ابتدا به کد باینری ماشینی حقیقی که بر روی آن اجرا می شود ترجمه می شود و سپس باینری ترجمه شده بر روی ماشین اصلی اجرا می شود. در این فرآیند ماشین مجازی می تواند بهینه سازی های خاص ماشین حقیقی را بر روی کد انجام دهد که در برخی موارد باعث می شود برنامه های جاوا حتی سریع تر دیگر زبان های کامپایلری اجرا شود.
سیشارپ:
همچون زبان برنامهنویسی جاوا زبانیست شئگرا و بسیار سطح بالا (high level). محصول شرکت Microsoft و بر پایه .NET از آنجایی که شئگرائی و سطح بالا بودن از ابزارهای مدیریّت مؤثّر و کارآمد پیچیدگی در فضای پیچیدۀ اینترنت مدرن می باشند، در واقع میشود جاوا و سیشارپ را از جمله زبان های اصلی برای ایجاد و انجام برنامههای کاربردی تحت وب (web applications) و خدمات وب دانست.
بر اساس ادّعای شرکت مایکروسافت، این زبان در سال 2000 توسط تیمی به سرکردگی آندرس هلزبرگ و نیز سکات ویلتاموث ساخته شد. سیشارپ که فقط برای دات نت است در مجموعه NET Platform SDK. ارائه گردید که در محیط های برنامه نویسی استودیوی بصری دات نت (Visual Studio .NET)، در نسخههای 2003 و 2005 آن موجود است. دستورات زبان سیشارپ مانند جاوا سطح بالا تر از C و ++C است و برای مثال برنامه نویس مستقیما به اشاره گرها یا منابع سیستم دسترسی ندارد.
زبان برنامه نویسی بیسیک:
(بر گرفته از کلمات beginner's all-purpose symbolic instruction) یک زبان برنامهنویسی ساده از نظر آموزش و بکارگیری و داراى فهرست کوچکى از دستورات و قالبهاى ساده، مقدماتى، پایهاى، قلیایی، ابتدایی، اولیه، پایهاى، اساسى، اصلی، تهی، بنیانی که در اواسط دهه ۶۰ میلادی توسط جان کمنی و توماس کرتز در کالج دارتموت ابداع شد و به عقیده بسیاری آسانترین زبان برای یادگیری است.
پایتون:
یک زبان برنامه نویسی سطح بالا برای کامپیوتر است که توسط گیدو ون روسوم(Guido van Rossum) در سال ۱۹۹۰ ساخته شد. این زبان از زبان های برنامه نویسی تفسیری بوده و به صورت کامل یک زبان شیگرا است که در ویژگیها با زبانهای تفسیری پرل، روبی، اسکیم، اسمالتاک و تیسیال مشابهت دارد و از مدیریت خودکار حافظه استفاده میکند.
پایتون پروژهای بازمتن توسعه یافته است و توسط بنیاد نرمافزار پایتون مدیریت میگردد. نسخهٔ ۲.۴.۲ این زبان در تاریخ ۲۸ سپتامبر ۲۰۰۵ منتشر شد.
زبان برنامه نویسی پرل:
در سال ۱۹۸۷ توسط لاری وال ساخته شد. پرل قابلیتهایی از زبان برنامهنویسی سی،دستنوشته شل،أک،لیسپ و دیگر زبانهای دیگر وام گرفته است.
پیاچپی:
(PHP) یکی از پر طرفدارترین زبانهای برنامهنویسی متن باز (Open Source) میباشد، که بیشتر برای طراحی برنامههای سمت سرور در وبگاههای پویا (Dynamic) مورد استفاده قرار میگیرد. PHP مخفف PHP: Hypertext Preprocessor (پیشپردازنده فرامتن) میباشد. پیاچپی در سال ۱۹۹۴ ایجاد شد. رسموس لردورف (Rasmus Lerdorf) ایجاد کننده اولیه آن بوده است ولی در طی زمان این زبان برنامهسازی، توسط سایر کارشناسان و برنامهنویسان تکمیل گردیده و به شکل کنونی آن درآمدهاست.
پیاچپی از زبانهای برنامهنویسی تحت وب است. ساختار این زبان بسیار شبیه زبان سی (C) و زبان برنامهنویسی پرل (Perl) میباشد. شکل پذیری فوق العاده آن و نیز همگونی با اغلب بانکهای اطلاعاتی از قبیل MySql قدرت آن را افزایش داده است.
مشهورترین نرمافزارهای(بسته های) ایجاد شده با پیاچپی عبارتاند از phpBB و PHPNuke و مدیاویکی (MediaWiki) (که این وبگاه با آن طراحی شده). پیاچپی میتواند جایگزینی برای زبانهای ASP.NET و JSP و Perl باشد.
سادگی استفاده از پیاچپی و شباهت آن به زبان سی و پرل (و از نسخه ۵ آن به جاوا) باعث شده که اغلب برنامه نویسان با تجربه در کوتاهترین زمان ممکن برنامههای کاملی را ایجاد کنند.
پیاچپی تنها یک زبان اسکریپتنویسی نیست و با استفاده از PHP-GTK میتوان برای طراحی برنامههای با ظاهر گرافیکی (GUI) و همچنین طراحی برنامههای خط فرمان شبیه پرل یا پایتون (Python) از آن استفاده کرد.
پیاچپی امکان استفاده از انواع مختلفی از پایگاههای داده را از جمله MySQL، اوراکل، IBM DB2 ،Microsoft SQL Server ،PostgreSQL و SQLite با دستورهایی ساده فراهم میسازد.
پیاچپی روی بیشتر سیستم عاملهای معروف از جمله لینوکس، یونیکس، ویندوز و Mac OSX و با اغلب کارگزارهای وب (Web Server) معروف، قابل اجراست.
vb.net:
بعد از ارائه ویژوال بیسیک 6 شرکت مایکروسافت به دنبال ارائه تکنولــوژی دات نت سعی نمود که با بسط زبانهای برنامه نویسی قدیمی خود و انتقال آنها به ساختار جدید تر و افزودن امکانات به این زبانها بر آید و یکی از این زبانها که دستخوش تغییرات شد همان زبان ویژوال بیسیک 6 است که از آن به بعد به عنوان Visual Basic.net نام گرفت در واقع مایکروسافت با افزودن پسوند دانت نت به انتهای نام این زبانها سعی در معرفی تکنولــوژی دات نت داشت واین زبان حاوی ویژگی های جدید زیادی میباشد.بر خلاف ویژوال بیسیک، ویژوال بیسیک دات نِت یک زبان شیء گراست. توضیح بیشتر این که ویژوال بیسیک دات نِت از ویژگی های انتزاع(abstraction)، نهانسازی(encapsulation)، وراثت(inheritance)و چند ریختی(polymorphism) پشتیبانی می کند. نسخههای پیشین ویژوال بیسیک _ 4 تا 6 _ از واسطه ها(Interface) پشتیبانی می کرد اما از وراثت پشتیبانی نمی کرد. ویژوال بیسیک دات نِت وراثت را به خوبی واسطهها پشتیبانی می نماید. از جمله ویژگی های دیگر آن می توان overload کردن را نام برد. به علاوه ویژوال بیسیک دات نت از چند پردازشی(multithread) پشتیبانی می کند که به شما امکان ایجاد برنامههای کار بردی چند پردازشی و مقیاس پذیر(scalable) را می دهد. ویژوال بیسک دات نت هم چنین با (CLS)common Language Specification ساز گار است و از اداره کردن ساختار یافته خطا پشتیبانی می کند.
دِلفی
(Delphi) یا به تعبیری ویژوآل پاسکال – یک زبان برنامهنویسی است و بستری برای توسعهٔ نرمافزار که شرکت بورلند آن را تولید کرده است. این زبان، در بدو انتشار خود در سال ۱۹۹۵، به عنوان یکی از نخستین ابزارهایی مطرح شد که از توسعهٔ نرمافزار بر مبنای متدولوژی RAD پشتیبانی میکردند؛ یعنی تولید و توسعهٔ سریع برنامههای کاربردی.
این نرم افزار بر مبنای پاسکال شیگرا بوده و از این زبان مشتق شده است. البته بورلند نسخهای از دلفی و سیپلاسپلاسبیلدر را برای لینوکس به نام کایلیکس (Kylix) ارائه کرد که مورد استقبال توسعه دهندگان نرمافزارهای لینوکس قرار نگرفت. نرمافزارهای دلفی در ابتدا به صورت مستقیم از کتابخانههای ویندوز و کتابخانهٔ مخصوص خود به نام VCL استفاده میکرد، اما پس از نسخه ۶ دلفی، امکانات استفاده از داتنت هم به آن اضافه شد. در حال حاضر میتوان دلفی را یکی از رایجترین زبانهای ممکن در ایران دانست.
زبانِ دلفی که پیشتر بنام پاسکال شیءگرا (Object-Pascal) خوانده میشد و برای طراحی نرمافزاهای تحت ویندوز به کار میرفت، امروزه چنان توسعه یافته است که برای تولید نرمافزارهای تحت سیستمعاملِ لینوکس و داتنت نیز به کار میآید. بیشترین کاربرد دلفی در طراحی برنامههای رومیزی و پایگاه دادهها است، اما به عنوان یک ابزارِ «چند- منظوره»، برای طراحی انواع گوناگونی از پروژههای نرمافزاری نیز مورد استفاده قرار میگیرد.
RAD=Rapid Application Development
.ویژوال بیسیک
توسعه یافته زبان برنامهنویسی بیسیک میباشد. بیسیک توسط پروفسور جان کمنسی و توماس کرتز از کالج دارتموث برای نوشتن برنامههای ساده ایجاد شد. طراحی آن از اواسط دهه ۱۹۶۰ آغاز گردید.
ویژوال بیسیک تا نسخه ۳ به صورت ۱۶ بیتی بود. از نسخه ۵ به بعد فقط ویرایش ۳۲ بیتی آن ارائه شد. (نسخه ۴ هم به صورت ۱۶ بیتی و هم به صورت ۳۲ بیتی عرضه شده بود.)
ویژوال بیسیک از نسخه ۶ به بعد بر پایه چارچوب داتنت (NET.) ارائه شد.
اگر چه با ظهور ویژوال بیسیک دات نت اکثر برنامهنویسان ویژوال بیسیک ۶ به آن گرویدند، ولی نسخه ۶ همچنان طرفداران ویژهی خود را دارد.
ویژوال بیسیک برای توسعه سریع نرم افزار (RAD یا Rapid Application Development) بر پایه رابط گرافیگی کاربر (GUI یا Graphical User Interface) توسعه داده شد. دسترسی آسان و سریع به پایگاه دادهها با استفاده از DAO ،RDO یا ADO و ایجاد کنترلهای اکتیو ایکس از جمله مواردی هستند که این زبان را برای RAD مناسب کردهاند.
برنامهنویسی در ویژوال بیسیک به صورت رخدادگرا میباشد.
در برنامهنویسی تجاری، ویژوال بیسیک جز محبوبترینها است. بنابه آماری که در سال ۲۰۰۳ منتشر شد، ۵۳٪ از برنامههای تجاری با استفاده از این زبان تولید شدهاند.
دقت کنید که زبان هایی مانند اچتیامال (HTML) زبان برنامهنویسی نیستند بلکه زبانهای قالب بندی هستند.
نمونه یک برنامه
یک برنامهٔ ساده در زبان برنامهنویسیBasic که از سادهترین زبانهای برنامهنویسی است میتواند به شکل زیر باشد:
REM MY FIRST TRY TO COMMAND THIS MACHINE TO DO WHAT I LIKE
PRINT "HELLO NEW WORLD!"
END
سطر نخست که با واژه کلیدی "REM" آغاز شده و از سوی برنامهٔ واسط درنظر گرفته نمیشود و تنها برای نگاه داشتن یک توضیح یا مانند آن برای خود برنامهنویس است. سطر دوم با واژه کلیدی "PRINT" به دستگاه فرمان میدهد تا نوشته "HELLO NEW WORLD!" ("سلام دنیای نو!") را روی نمایشگر بنویسد (چاپ کند). سطر آخر پایان فرامین و برنامه را به ماشین اطلاع میدهد.
پس از نوشتن یک برنامه مانند بالا، برنامهٔ مترجم (در اینجا Basic) دستورات را تبدیل به فرامینی میکند که لایه زیرین، که ممکن است همان سخت افزار باشد، میتواند آنها را اجرا کند.
پارادایمها
پارادایم برنامهنویسی
زبانهای برنامهنویسی گوناگون براساس قابلیتهای درنظر گرفته شده از شیوهٔ خطهای مختلف استفاده میکنند. موارد ریزتری مانند چگونگی برخورد با نیازهای پشت پردهٔ ماشین مانند مدیریت حافظه و مدیریت زباله نیز در زبانهای مختلف متفاوت است. علاوه بر اینها، مفاهیمی متفاوت از (اجرای) یک برنامه تصور شدهاند که پارادایم یا الگو نام دارند. مثلاً پارادایم برنامهنویسی رویهای با برنامهها به صورت مجموعهای از پیمانهها برخورد میکند و در برنامهنویسی منطقی برنامهها گروههایی از قضایا و قوانین منطقی هستند که ما را به نتایج راهنمایی میکنند. زبانهای برنامهنویسی گوناگون بر اساس این پارادایمها ساخته میشوند. مثلاً زبان برنامهنویسی Pascal و ++C بر مبنای برنامهنویسی شیگرا و Prolog برای برنامهنویسی منطقی طراحی شدهاند. پارادایمها در مواردی به هم مشابهاند و ممکن است تنها در شمار اندک اما تأثیرگذاری از ویژگی ها، متفاوت باشند. همچنین زبانهای گوناگون ممکن است از ویژگیهای چند پارادایم همزمان استفاده کنند. مثلاً ++C ویژگیهایی از برنامهنویسی شیگرا، برنامهنویسی رویهای و برنامهنویسی نوعی دارد.
برنامهنویسی شیگرا
برنامه نویسی شیگرا (به انگلیسی Object Oriented Programming مخفف OOP) شیوهای ازتحلیل و طراحی نرم افزار است که بر تجزیهی مسئله به اشیاء تاکید دارد. اشیاء صور انتزاعی از ماهیتهای مطرح در مسئله هستند که دو جنبه دارند. اشیاء دارای حالت یا داده بوده و همچنین دارای عملیات بر روی دادهها میباشند. این نوع نگرش دارای مزایای بسیاری از جمله مدیریت پیچیدگی وهزینه نگهداری کمتری است.
در برنامه نویسی شیگرا (Object Oriented) همه چیز یک شی (Object)است. هر شی ویژگیها(Properties) و توابع مربوط به خودش را دارد.
زبانهای برنامه نویسی شی گرا، زبانهایی هستند که در آن برنامه نویس میتواند اشیا مختلفی را تعریف نماید و از اشیاء تولید شده استفاده نماید. هر شی یک سری خصوصیت و قابلیت دارد، که اصطلاحاً Properties و Methods خوانده میشوند. در این روش از برنامه نویسی دید برنامه نویس به سیستم دید شخصی است که سعی می نماید به پیدا کردن اشیاء مختلف در سیستم و برقراری ارتباط بین آنها سیستم را تولید نماید.