طراحی و پیاده سازی زبان برنامه سازی

درس های طراحی و پیاده سازی

درس های طراحی و پیاده سازی


P. A.
This flashcard set delves into the design and implementation of programming languages, tailored for university-level computer science students. It covers key concepts like the evolution of computer architecture, the impact of mainframe and personal computers on language design, and various programming paradigms such as procedural, functional, and object-oriented languages. The set also explores specific languages like Fortran, COBOL, Pascal, and Prolog, highlighting their uses in scientific, business, and artificial intelligence applications. Ideal for students and professionals aiming to understand the foundations and advancements in programming language development.
Flashcards
118
Students
3
Language
English
Category
Computer Science
Level
University
Created / Updated
31.10.2014 / 25.03.2017

Flashcards

دلایل مطالعه زبانهای برنامه سازی؟

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

استفاده بهتر از امکانات زبان

امکان یادگیری آسانتر زبان جدید

ساده تر شدن طراحی زبان جدید

آشنایی با برخی ساختارهای مفید برنامه نویسی

انتخاب بهترین زبان برنامه سازی

مطالعه زبان برنامه نویسی چگونه الگوریتم ها را توسعه می دهد؟

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

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

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

مطالعه زبان برنامه سازی چطور یادگیری زبان رو ساده تر میکنه؟

مثلا منطق شی گرایی تو یه زبان رو یاد بگیریم یاد گیری زبان شی گرا راحت تر میشه

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

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

مطالعه زبانبرنامه سازی چطور مارو با ساختار های مفید برنامه سازی آشنا می کنه؟

بعضی ساختارا تو همنه زبونا نیست که می تونیم به توابع بازگشتی اشاره کنیم آشنایی با زبانهای برنامه نویسی مختلف مارو با ساختار ههای مختلف آشنا میکنه چون کسی کخه فقط یه زبون بلده ذهنشم محدود به همون زبونه

مطالعه زبان برنامه سازی چطور به انتخاب کردن بهترین زبون کمک می کنه؟

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

ویژگی های زبون خوب رو نام ببرید؟

وضوح

سادگی

یکپارچگی

تعامد

طبیعی بودن برای کاربرد

پشتیبانی از انتزاع

سهولت بررسی دوباره برنامه

مناسب برای برنامه نویسی

هزینه های استفاده و اجرا و ترجمه و نگهداری برنامه

وضوح در زبان برنامه نویسی به چه معناست؟

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

چه زبانی وضوح ندارد؟

 apl زبان

مثل کد زیر

x[^x<?40]

از ویژگی های زبان خوب سادگی را توضیح دهید

ک فرد مبتدی به آسانی می تواند توسط یک کد مبهم و گنگ یا کدی که خواندن آن به آسانی ممکن نباشد، گیج و مبهوت شود. زبانی که Syntax آن معمول نباشد و دنبال کردن آن مشکل باشد، برای یاد گرفتن مشکل است و در صورتی که قدرت زیادی را نیز داشته باشد ممکن است از لیست انتخابی خیلی از افراد حذف شود. در زیر قطعه کدی از زبان ML و زبان C از برنامه معروف Hello World آورده شده است. هر دوزبان به علت پشتیبانی از تکنیک Structure و پشتیبانی از برنامه نویسی رویه ای از نظر دنبال کردن خوانا می باشند ولی Syntax زبان ML نسبت به C بسیار پیچیده تر است.

برای سادگی زبان خوب مثال بزنید

hello :- printstring("HELLO WORLD!!!!").

printstring[].

printstring[H|T] :- put(H), printstring(T).

C:

int main()

{

   printf("Hello, World!\n");

}

تعامد را از زبان های خوب را توضیح دهید

تعامد در یک زبان برنامه سازی به این معناست که زبان باید مجموعه ای از امکانات را معرفی کند که برای نیل به یک مفهوم مشابه استقلال خطی بین آنها وجود داشته باشد. به عبارت دیگر، برای انجام یک عملیات خاص نباید تعداد زیادی راه وجود داشته باشد.در حالی که این موضوع می تواند محدودیت سختی را بر روی Syntax یک زبان ایجاد کند ولی یک فرد تازه کار با مواجه شدن با زبان قدرتمند ممکن است وحشت کند. به عنوان مثال زبان Perl. تمامی خطوط برنامه زیر همگی یک کار انجام می دهند و با هم معادل هستند.

   مثال بزنید؟Orthogonalityبرای تعامد

<div style="text-align: left;">if ($x == 0) {$y = 10;}  else {$y = 20;}

 

$y = $x==0 ? 10 : 20;

 

$y = 20;  $y = 10 if $x==0;

 

unless ($x == 0) {$y=20} else {$y=10}

 

if ($x)  {$y=20} else {$y=10}

 

$y = (10,20)[$x != 0];

</div>

طبیعی بودن زبان خوب را توضیح دهید

Naturalness for the application

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

برای طبیعی بودن زبان خوب مثال بزنید

Naturalness for the application

به عنوان مثال هنگامی که شما قصد ایجاد یک برنامه ی شبیه سازی کامپیوتری را دارید استفاده از زبانهای برنامه نویسی نظیر QBasic یا C و یا Java کار شما را به مراتب طولانی تر و چه بسا پرهزینه تر و مشکل تر می سازد حال آنکه انتخاب ابزار مناسب همانند زبان برنامه سازی GPSS یا Simula در این مکان انتخاب بسیار مناسب تر و عاقلانه تری می باشد.

پشتیبانی از انتزاع را در زبان خوب توضیح دهید

Coverage

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

برای  پشتیبانی از انتزاع در زبان خوب مثال بزنید

Coverage

در بخشی باید شامل ساختارهای شرطی (if…then..else, switch…case)، حلقه ای (while, for)، ساختارهای داده ای و اطلاعاتی متراکم (structures, classes, objects ) و مدیریت استثناعات باشد و در بخش مخصوص دیگری که خاص هر زبان است باید شامل ساختارها و امکاناتی که خاص آن زبان است باشد مثل Prolog (منطق) و ML (برنامه نویسی وظیفه ای).

سهولت بررسی دوباره برنامه را توضیح دهید
 

ساده سازی کار با I/O توجه برنامه نویس را به حل مشکل و ساختارهای اساسی برنامه بیشتر می کند. برای مثال، I/O در Java به صورت افراطی خوب طراحی شده است : گسترش پذیر و قدرتمند. اگرچه استفاده از آن مستلزم تسلط بر مفاهیمی چون تفاوت های streamهای کاراکتری و داده ای و نحوه ی کار streamهای آبشاری می باشد.

برای سهولت بررسی دوباره برنامه در زبان خوب مثال بزنید

در C++ نیز، I/O هم ساده و هم قدرتمند تعریف شده است. برای استفاه از آن فقط کافی ست با توابعی چون printf/scanf و cin/cout آشنا باشید. و برای برنامه نویسان حرفه ای streamهای C++ تمام خصیصه های مورد نیاز آنها را فراهم می کند.
 

محیط مناسب برای برنامه نویسی را توضیح دهید

Naturalness for the application

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

برای محیط مناسب برنامه نویسی مثال بزنید

به عنوان مثال هنگامی که شما قصد ایجاد یک برنامه ی شبیه سازی کامپیوتری را دارید استفاده از زبانهای برنامه نویسی نظیر QBasic یا C و یا Java کار شما را به مراتب طولانی تر و چه بسا پرهزینه تر و مشکل تر می سازد حال آنکه انتخاب ابزار مناسب همانند زبان برنامه سازی GPSS یا Simula در این مکان انتخاب بسیار مناسب تر و عاقلانه تری می باشد.

سیر توسعه زبان fortran

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

سیر توسعه زبان basic

basic--->visual basic---->VB.Net
 

سیر توسعه زبان cobol

cobol ----> cobol 68 --->cobol 74 ---> cobol 85 ---->cobol 02

         ---->PL/I

سیر توسعه زبان algol

1

سیر توسعه simula

4

سیر توسعه BCPL

6

سیر تکامل APL

APL ----> APL2

سیر توسعه زبان LISP

LISP

سیر توسعه زبان PROLOG

PROLOG

زبان فرترن در چه سالی طراحی شد؟

1955-1957

زبان فرترن توسط چه کسی و در کجا طراحی شد؟

IBM توسط باکس در

زبان  فرترن در چه مورد مهمی استفاده شد؟

مسیریابی موشک های بالستیک

چهار هدف اصلی الگول را نام برید

  1. نشانه ها به زبان ریاضی نزدیک باشد
  2. برای توصیف الگوریتم مناسب باشند
  3. برنامه ها به زبان ماشین مقصد
  4. نباید به معماری یک ماشین مقید باشد

اهداف الگول چه نقایصی داشت؟

بلند پروازانه و متناقض بودند

مشکلاتی در طراحی زبان مانند ورودی و خروجی نداشت!!!

کاربرد زبان COBOL

محاسبات عددی امور مالی و سیستم های اجرایی برای شرکت ها و دولت ها

زبان COBOL در کجا استفاده میشد؟

در وزارت دفاع آمریکا برای کارمندان

COBOL مخفف چیست؟

COMMON BUSINESS ORIENTED LANGUAGE تکامل یافته CBL

در زبان سیستمی چه چیزی حائز اهمیت است؟

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

Study