بخشی از پاورپوینت

اسلاید 1 :

Lisp,1960

¨نگاهی به تاریخچه ی Lisp:

¡ایده کلی:

úبرخی از ایده های قدیمی ، قدیمی به نظر می رسند.

úبرخی از ایده های قدیمی ، جدید به نظر می رسند.

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

¡متفاوت از C ، C++ و JAVA : شانسی برای متفاوت فکر کردن

¡موضوعات کلی در رابطه با طراحی زبان را شرح می دهد.

اسلاید 2 :

John McCarthy

¨

¨

¨پیشگام در AI

¡فرموله کردن استدلال ها

¨همچنین

¡پیشنهاد اشتراک زمانی

¡تئوری های ریاضی

¨Lisp

از علاقه به محاسبات سمبلیک سرچشمه گرفت

(ریاضی ، منطق)

اسلاید 3 :

خلاصه ای از Lisp

¨دارای لهجه های متفاوتی است:

¡Lisp 1.5, Maclisp, …, Scheme, ...

¡CommonLisp دارای ویژگیهای اضافی است

¡در این درس مختصری از Lisp 1.5 توضیح داده خواهد شد.

¨دارای نحو ساده ای است

(+ 1 2 3) 

(+ (* 2 3) (* 4 5)) 

(f x y)

اسلاید 4 :

Atom ها و Pair ها

¨Atom ها شامل اعداد و رشته های غیر قابل تقسیم است.

<atom> ::=  <smbl>  |  <number>

 <smbl> ::=  <char>   |  <smbl><char> |<smbl><digit>

 <num>  ::=  <digit>  |  <num><digit>

¨جفتهای دارای نقطه (dotted pairs)

¡برای pair از (A . B) استفاده می شود.

¡به عبارتهای سمبلیک، S-expressions می گویند:

 <sexp>   ::=    <atom> |  (<sexp> . <sexp>)

اسلاید 5 :

توابع پایه

¨توابعی که روی اتمها و pair ها عمل می کنند:

cons     car     cdr     eq     atom

¨اعلانها و کنترل:

cond     lambda     define     eval     quote یا ‘

¨مثال:

(lambda  (x) (cond ((atom x) x)  (T (cons ‘A x))))

function f(x) = if atom(x) then x else cons(“A”,x)

¨توابعی با اثرات جانبی (Side Effect)

rplaca     rplacd

اسلاید 6 :

ارزیابی عبارت ها

¨لیسپ از حلقه Read-eval-print استفاده می کند

¨فراخوانی تابع  (function arg1  ...   argn)

¡هر یک از آرگومانها ارزیابی می شوند

¡لیستی از مقادیر آرگومانها به تابع داده می شود

¨در بعضی از فراخوانی ها تمام آرگومانها ارزیابی نمی شوند

¡مثال (cond (p1  e1)  ...   (pn  en) )

úاز چپ به راست پیش می رود

úاولین pi  با مقدار درست یافته می شود، ei مربوط به آن ارزیابی می شود

úمثال: در (quote  A)  ، A ارزیابی نمی شود

اسلاید 7 :

مثالها

(+ 4 5)                 

expression with value 9 

(+ (+ 1 2) (+ 4 5))  

evaluate 1+2, then 4+5, then 3+9 to get value  

(cons (quote A) (quote B))

pair of atoms A and B

(quote (+ 1 2)) 

evaluates to list  (+ 1 2) 

'(+ 1 2) 

same as (quote (+ 1 2))

¨

اسلاید 8 :

مقاله ی McCarthy در سال 1960

¨مقاله ای قابل توجه بخاطر:

¡ایده های خوب برای زبانها

¡شرح وضعیت برنامه نویسی در 1960

¡بینش خوبی در پروسه ی طراحی زبان ارائه می داد.

¨مفاهیم مهم:

¡علاقه به محاسبات سمبلیک طراحی را تحت تأثیر قرار داده بود.

¡از مدل ماشین ساده ای استفاده شده بود

¡به مسایل تئوری توجه شده بود

تئوری تابع بازگشتی ، محاسبات لامبدا

¡ایده های خوب: برنامه ها به عنوان داده، زباله روبی

¡

اسلاید 9 :

طراحی یک زبان خوب

¨کاربرد انگیزه دهنده

¨ماشین انتزاعی (Abstract machine)

¨بنیاد تئوری

اسلاید 10 :

کاربرد انگیزه دهنده

¨کاربردهای انگیزه دهنده قسمتی از طراحی زبان خوب است و در طراحی زبان به صورتهای زیر تأثیر می گذارد:

¡تمرکز روی مهمترین اهداف

¡حذف ایده های جذاب ولی غیر ضروری

Lisp  محاسبات سمبلیک ، منطقی ، برنامه نویسی اکتشافی

C  سیستم عامل یونیکس

Simula   شبیه سازی

PL/1   سعی در حل تمام مسائل برنامه نویسی ؛ موفق نبود

در متن اصلی پاورپوینت به هم ریختگی وجود ندارد. برای مطالعه بیشتر پاورپوینت آن را خریداری کنید