جزوه تایپ شده مبانی برنامه سازی ویژوال بیسیک
دانشگاه پیام نور احمد. صادقی علمی کاربردی استاد هدا معتمدی مهندسی برق دانشگاه ازاد کاردانی کارشناسی ارشد استخدامی خلاصه کتاب
[2] [3] [4] [5] /-[6] [7] “” [1] [8]
[9] ً [10]
ً [11] دارند زیرا زبان های طبیعی فقط برای تعامل بین افراد استفاده می شوند، در حالی که زبان های برنامه نویسی به انسان اجازه می دهند دستورالعمل ها را به ماشین ها منتقل کنند.
دامنه زبان نیز قابل تامل است. زبانهای نشانهگذاری مانند XML ، HTML ، یا troff که دادههای ساختاریافته را تعریف میکنند ، معمولاً زبان برنامهنویسی در نظر گرفته نمیشوند. [12] [13] [14] با این حال، زبانهای برنامهنویسی ممکن است نحو را با زبانهای نشانهگذاری به اشتراک بگذارند، اگر یک معناشناسی محاسباتی تعریف شده باشد. به عنوان مثال، XSLT یک زبان کامل تورینگ است که به طور کامل از نحو XML استفاده می کند. [15] [16] [17] علاوه بر این، LaTeX ، که بیشتر برای ساختاردهی اسناد استفاده می شود، همچنین شامل یک زیر مجموعه کامل تورینگ است. [18] [19]
چکیده
زبان های برنامه نویسی معمولاً حاوی انتزاعی برای تعریف و دستکاری ساختارهای داده یا کنترل جریان اجرا هستند. ضرورت عملی اینکه یک زبان برنامه نویسی از انتزاعات کافی پشتیبانی کند، با اصل انتزاع بیان می شود. [20] این اصل گاهی اوقات به عنوان توصیه ای به برنامه نویس برای استفاده مناسب از این گونه انتزاعات فرموله می شود.

برنامه سازی ویژوال بیسیک
تاریخچه
مقاله اصلی: تاریخچه زبان های برنامه نویسی
تحولات اولیه
کامپیوترهای بسیار اولیه، مانند Colossus ، بدون کمک برنامه ذخیره شده ، با تغییر مدارهای خود یا تنظیم بانک های کنترل فیزیکی، برنامه ریزی شدند.
اندکی بعد، برنامهها را میتوان به زبان ماشین نوشت ، جایی که برنامهنویس هر دستورالعمل را به شکل عددی مینویسد که سختافزار میتواند مستقیماً آن را اجرا کند. به عنوان مثال، دستورالعمل اضافه کردن مقدار در دو مکان حافظه ممکن است شامل 3 عدد باشد: یک “opcode” که عملیات “افزودن” را انتخاب می کند و دو مکان حافظه. برنامه ها، به شکل اعشاری یا باینری، از کارت های پانچ شده ، نوار کاغذی، نوار مغناطیسی خوانده می شدند یا سوئیچ های روی پنل جلویی رایانه را تغییر می دادند. زبان های ماشین بعدها زبان های برنامه نویسی نسل اول (1GL) نامیده شدند.
گام بعدی توسعه زبانهای برنامهنویسی نسل دوم (2GL) یا زبانهای اسمبلی بود که هنوز به معماری مجموعه دستورالعملهای یک کامپیوتر خاص مرتبط بودند. اینها باعث شد که برنامه برای انسان بسیار خواناتر شود و برنامه نویس را از محاسبات آدرس خسته کننده و مستعد خطا راحت کند.
اولین زبان های برنامه نویسی سطح بالا یا زبان جزوه مبانی برنامه سازی ویژوال بیسیک برنامه نویسی نسل سوم (3GL) در دهه 1950 نوشته شدند. یک زبان برنامه نویسی سطح بالا اولیه که برای کامپیوتر طراحی می شد Plankalkül بود که برای Z3 آلمانی توسط Konrad Zuse بین سال های 1943 و 1945 توسعه یافت. اما تا سال های 1998 و 2000 اجرا نشد .
كد كوتاه جان ماچلي كه در سال 1949 پيشنهاد شد، يكي از اولين زبانهاي سطح بالا بود كه براي كامپيوترهاي الكترونيكي توسعه يافت . [23] بر خلاف کد ماشین ، عبارات کد کوتاه عبارات ریاضی را به شکل قابل درک نشان میدهند. با این حال، برنامه باید هر بار که اجرا میشد به کد ماشین ترجمه میشد و این روند را بسیار کندتر از اجرای کد ماشین معادل میکرد.
در دانشگاه منچستر ، آلیک گلنی در اوایل دهه 1950 Autocode را توسعه داد. به عنوان یک زبان برنامه نویسی ، از یک کامپایلر برای تبدیل خودکار زبان به کد ماشین استفاده می کرد. اولین کد و کامپایلر در سال 1952 برای کامپیوتر Mark 1 در دانشگاه منچستر توسعه یافت و به عنوان اولین زبان برنامه نویسی سطح بالا در نظر گرفته شد.
دانلود رایگان خلاصه جزوه مبانی برنامه سازی ویژوال بیسیک کتاب pdf
دومین کد خودکار برای Mark 1 توسط RA Brooker در سال 1954 ایجاد شد و “Mark 1 Autocode” نام گرفت. بروکر همچنین یک کد خودکار برای Ferranti Mercury در دهه 1950 در ارتباط با دانشگاه منچستر ایجاد کرد. نسخه EDSAC 2 توسط DF Hartley از آزمایشگاه ریاضی دانشگاه کمبریج در سال 1961 ابداع شد. این نسخه که با نام EDSAC 2 Autocode شناخته می شود، یک توسعه مستقیم از Mercury Autocode بود که برای شرایط محلی سازگار شده بود و به دلیل بهینه سازی کد شی و زبان منبع آن مورد توجه قرار گرفت. تشخیصی که در آن زمان پیشرفته بود. Atlas Autocode یک رشته توسعه معاصر اما جداگانه برای دانشگاه منچستر توسعه داده شددستگاه اطلس 1 .
در سال 1954، FORTRAN در IBM توسط John Backus اختراع شد . این اولین زبان برنامه نویسی همه منظوره سطح بالا بود که به طور گسترده ای مورد استفاده قرار گرفت که برخلاف طراحی روی کاغذ، پیاده سازی کاربردی داشت. [26] [27] این زبان هنوز هم یک زبان محبوب برای محاسبات با کارایی بالا است [28] و برای برنامههایی استفاده میشود که سریعترین ابررایانههای جهان را معیار و رتبهبندی میکنند . [29]
یکی دیگر از زبان های برنامه نویسی اولیه توسط گریس هاپر در ایالات متحده به نام FLOW-MATIC ابداع شد . این برای UNIVAC I در رمینگتون رند در طول دوره 1955 تا 1959 توسعه داده شد. هاپر دریافت که مشتریان پردازش داده های تجاری با نمادهای ریاضی ناراحت هستند و در اوایل سال 1955، او و تیمش مشخصاتی را برای یک زبان برنامه نویسی انگلیسی نوشتند و پیاده سازی کردند. یک نمونه اولیه [30] کامپایلر FLOW-MATIC در اوایل سال 1958 در دسترس عموم قرار گرفت و در سال 1959 کاملاً کامل شد .در آن زمان در حال استفاده واقعی بودند. [32]
اصلاح
افزایش استفاده از زبان های سطح بالا الزامی را برای زبان های برنامه نویسی سطح پایین یا زبان های برنامه نویسی سیستمی ایجاد کرد. این زبان ها، به درجات مختلف، امکاناتی را بین زبان های اسمبلی و زبان های سطح بالا فراهم می کنند. آنها را می توان برای انجام کارهایی استفاده کرد که نیاز به دسترسی مستقیم به امکانات سخت افزاری دارند، اما همچنان ساختارهای کنترلی سطح بالاتر و بررسی خطا را ارائه می دهند.
دوره از دهه 1960 تا اواخر دهه 1970 باعث توسعه پارادایم های اصلی زبان شد که اکنون مورد استفاده قرار می گیرند:
APL برنامه نویسی آرایه ای را معرفی کرد و بر برنامه نویسی تابعی تأثیر گذاشت . [33]
ALGOL هم برنامه نویسی رویه ای ساختاریافته و هم رشته مشخصات زبان را اصلاح کرد. “گزارش تجدید نظر شده در مورد زبان الگوریتمی ALGOL 60 ” الگویی برای نحوه نگارش مشخصات زبان بعدی شد.
Lisp که در سال 1958 پیاده سازی شد، اولین زبان برنامه نویسی تابعی با تایپ پویا بود.
در دهه 1960، Simula اولین زبانی بود که برای پشتیبانی از برنامه نویسی شی گرا طراحی شد . در اواسط دهه 1970، اسمال تاک با اولین زبان شی گرا “صرفا” همراه شد.
C بین سال های 1969 و 1973 به عنوان یک زبان برنامه نویسی سیستم برای سیستم عامل یونیکس توسعه یافت و همچنان محبوب است. [34]
Prolog که در سال 1972 طراحی شد، اولین زبان برنامه نویسی منطقی بود.
در سال 1978، ML یک سیستم نوع چند شکلی را در بالای Lisp ساخت ، که پیشگام زبان های برنامه نویسی تابعی تایپ ایستا بود.
هر یک از این زبان ها فرزندان خود را به وجود آوردند و اکثر زبان های برنامه نویسی مدرن حداقل یکی از آنها را در اصل و نسب خود می دانند.
در دهههای 1960 و 1970 نیز بحثهای قابل توجهی در مورد مزایای برنامهنویسی جزوه مبانی برنامه سازی ویژوال بیسیک و اینکه آیا زبانهای برنامهنویسی باید برای پشتیبانی از آن طراحی شوند، شاهد بودیم. [35] Edsger Dijkstra ، در نامهای معروف در سال 1968 که در Communications of ACM منتشر شد ، استدلال کرد که عبارات Goto باید از تمام زبانهای برنامهنویسی «سطح بالاتر» حذف شوند. [36]
تحکیم و رشد
مجموعه ای کوچک از کتاب های درسی زبان برنامه نویسی
دهه 1980 سالهای تثبیت نسبی بود. C++ برنامه نویسی شی گرا و سیستمی را ترکیب کرد. دولت ایالات متحده Ada را استاندارد کرد، زبان برنامه نویسی سیستمی که از پاسکال مشتق شده و برای استفاده توسط پیمانکاران دفاعی در نظر گرفته شده است. در ژاپن و جاهای دیگر، مبالغ هنگفتی برای بررسی زبانهای به اصطلاح «نسل پنجم» که ساختارهای برنامهنویسی منطقی را در خود جای داده بودند، صرف شد. [37] جامعه زبان های کاربردی به سمت استانداردسازی ML و Lisp حرکت کرد. همه این جنبشها به جای ابداع پارادایمهای جدید، ایدههایی را که در دهههای گذشته ابداع شده بود، توضیح دادند.
یکی از گرایشهای مهم در طراحی زبان برای برنامهنویسی سیستمهای مقیاس بزرگ در طول دهه 1980، افزایش تمرکز بر استفاده از ماژولها یا واحدهای سازمانی در مقیاس بزرگ کد بود. Modula-2 ، Ada و ML همگی سیستم های ماژول قابل توجهی را در دهه 1980 توسعه دادند، که اغلب با ساختارهای برنامه نویسی عمومی مرتبط می شدند.

دانلود رایگان برنامه سازی ویژوال بیسیک
رشد سریع اینترنت در اواسط دهه 1990 فرصت هایی را برای زبان های جدید ایجاد کرد. پرل ، در اصل یک ابزار اسکریپت نویسی یونیکس برای اولین بار در سال 1987 منتشر شد، در وب سایت های پویا رایج شد . جاوا برای برنامه نویسی سمت سرور مورد استفاده قرار گرفت و ماشین های مجازی بایت کد با وعده ” یک بار بنویسید، هرجا اجرا کنید ” دوباره در تنظیمات تجاری محبوب شدند ( UCSD Pascal برای مدتی در اوایل دهه 1980 محبوب بود). این تحولات اساساً بدیع نبودند. در عوض، آنها اصلاحات بسیاری از زبان ها و پارادایم های موجود بودند (اگرچه نحو آنها اغلب بر اساس خانواده زبان های برنامه نویسی C بود).
تکامل زبان برنامه نویسی هم در صنعت و هم در تحقیقات ادامه دارد. دستورالعملهای فعلی شامل تأیید امنیت و قابلیت اطمینان ، انواع جدید ماژولار ( میکسها ، نمایندگان ، جنبهها ) و یکپارچهسازی پایگاه داده مانند LINQ مایکروسافت است .
زبانهای برنامهنویسی نسل چهارم (4GL) زبانهای برنامهنویسی رایانهای هستند که هدفشان ارائه سطح بالاتری از انتزاع جزئیات سختافزار داخلی کامپیوتر نسبت به 3GL است. زبانهای برنامهنویسی نسل پنجم (5GL) زبانهای برنامهنویسی هستند که به جای استفاده از الگوریتم نوشته شده توسط یک برنامهنویس، مبتنی بر حل مسائل با استفاده از محدودیتهای دادهشده به برنامه هستند.
عناصر
همه زبانهای برنامهنویسی دارای بلوکهای ساختمانی اولیه برای توصیف دادهها و فرآیندها یا تبدیلهای اعمال شده بر روی آنها هستند (مانند جمع دو عدد یا انتخاب یک آیتم از یک مجموعه). این اصول اولیه با قواعد نحوی و معنایی تعریف می شوند که به ترتیب ساختار و معنای آنها را توصیف می کنند.
نحو
مقاله اصلی: نحو (زبان های برنامه نویسی)
درخت کد پایتون را با توکنیزاسیون داخلی تجزیه کنید
برجسته کردن نحو اغلب برای کمک به برنامه نویسان در جزوه مبانی برنامه سازی ویژوال بیسیک عناصر کد منبع استفاده می شود. زبان بالا پایتون است .
شکل سطحی یک زبان برنامه نویسی به عنوان نحو آن شناخته می شود . بیشتر زبان های برنامه نویسی صرفا متنی هستند. آنها از توالی متن از جمله کلمات، اعداد و علائم نگارشی استفاده می کنند، مانند زبان های طبیعی نوشتاری. از سوی دیگر، برخی از زبان های برنامه نویسی ماهیت گرافیکی بیشتری دارند و از روابط بصری بین نمادها برای تعیین یک برنامه استفاده می کنند.
نحو یک زبان ترکیب احتمالی نمادها را توصیف می کند که یک برنامه صحیح نحوی را تشکیل می دهند. معنای داده شده به ترکیبی از نمادها توسط معناشناسی (چه رسمی یا کدگذاری شده در یک پیاده سازی مرجع ) انجام می شود. از آنجایی که بیشتر زبان ها متنی هستند، این مقاله به نحو متنی می پردازد.
نحو زبان برنامه نویسی معمولاً با استفاده از ترکیبی از عبارات منظم (برای ساختار واژگانی ) و فرم Backus–Naur (برای ساختار دستوری ) تعریف می شود. در زیر یک دستور زبان ساده، بر اساس Lisp آمده است :
بیان ::= اتم | فهرست
اتم ::= عدد | نماد
شماره ::= [+-]؟[‘0’-‘9’]+
نماد ::= [‘A’-‘Z”a’-‘z’].*
لیست ::= ‘(‘ عبارت* ‘)’
این دستور زبان موارد زیر را مشخص می کند:
یک عبارت یا یک اتم یا یک لیست است .
اتم یا عدد است یا نماد .
یک عدد دنباله ای ناگسستنی از یک یا چند رقم اعشاری است که به صورت اختیاری قبل از علامت مثبت یا منفی قرار می گیرد.
نماد حرفی است که با صفر یا بیشتر از هر کاراکتری (به استثنای فضای سفید) به دنبال آن باشد . و
یک لیست یک جفت پرانتز مطابق با عبارات صفر یا بیشتر در داخل آن است.
در زیر نمونههایی از دنبالههای توکن به خوبی جزوه برنامه سازی پیشرفته در این دستور زبان آمده 12345است : ()و (a b c232 (1)).
همه برنامه های صحیح نحوی از نظر معنایی صحیح نیستند. با این وجود، بسیاری از برنامههای صحیح نحوی، طبق قوانین زبان، بد شکل هستند. و ممکن است (بسته به مشخصات زبان و درستی اجرا) منجر به خطا در ترجمه یا اجرا شود. در برخی موارد، چنین برنامه هایی ممکن است رفتار نامشخصی از خود نشان دهند . حتی زمانی که یک برنامه در یک زبان به خوبی تعریف شده باشد، ممکن است باز هم معنایی داشته باشد که توسط شخصی که آن را نوشته است مورد نظر نباشد.
با استفاده از زبان طبیعی به عنوان مثال، ممکن است نتوان به یک جمله از نظر دستوری درست معنی اختصاص داد یا ممکن است جمله نادرست باشد:
” ایده های سبز بی رنگ خشمگین می خوابند .” از نظر دستور زبان به خوبی شکل گرفته است اما هیچ معنای عمومی پذیرفته شده ای ندارد.
“جان یک مجرد متاهل است.” از نظر دستوری به خوبی شکل گرفته است اما معنایی را بیان می کند که نمی تواند درست باشد.
قطعه زبان C زیر از نظر نحوی صحیح است، اما عملیات هایی را انجام می دهد که از نظر معنایی تعریف نشده اند (عملیات *p >> 4برای مقداری که نوع پیچیده ای دارد معنی ندارد و p->imتعریف نشده است زیرا مقدار of pنشانگر تهی است ):
مختلط * p = NULL ;
پیچیده abs_p = sqrt ( * p >> 4 + p -> im );
اگر اعلان نوع در خط اول حذف شود، برنامه در pحین کامپایل جزوه مبانی برنامه سازی ویژوال بیسیک ، یک خطا در متغیر تعریف نشده ایجاد می کند. با این حال، برنامه همچنان از نظر نحوی صحیح است زیرا اعلانهای نوع فقط اطلاعات معنایی را ارائه میدهند.
گرامر مورد نیاز برای تعیین یک زبان برنامه نویسی را می توان بر اساس موقعیت آن در سلسله مراتب چامسکی طبقه بندی کرد . سینتکس اکثر زبان های برنامه نویسی را می توان با استفاده از گرامر نوع 2 مشخص کرد، یعنی گرامرهای بدون متن هستند. [39] برخی از زبانها، از جمله Perl و Lisp، حاوی ساختارهایی هستند که امکان [40] ً [41]
( ) [1] [ تأیید ناموفق ] ً () [42] (ً )،
فهرست مطالب