Տարբերությունը Prolog-ի և Lisp-ի միջև

Տարբերությունը Prolog-ի և Lisp-ի միջև
Տարբերությունը Prolog-ի և Lisp-ի միջև

Video: Տարբերությունը Prolog-ի և Lisp-ի միջև

Video: Տարբերությունը Prolog-ի և Lisp-ի միջև
Video: Pascal и Delphi живы? / История / Популярность / Мифы / Возможности / Преимущества и недостатки 2024, Հուլիսի
Anonim

Prolog vs Lisp

Prolog-ը և Lisp-ն այսօր AI-ի (արհեստական ինտելեկտի) համակարգչային ծրագրավորման ամենահայտնի լեզուներից են: Դրանք կառուցված են երկու տարբեր ծրագրավորման պարադիգմներով: Prolog-ը դեկլարատիվ լեզու է, մինչդեռ Lisp-ը ֆունկցիոնալ լեզու է: Երկուսն էլ օգտագործվում են արհեստական ինտելեկտի տարբեր խնդիրների համար, սակայն Prolog-ը ամենաշատն օգտագործվում է տրամաբանության և հիմնավորման խնդիրների համար, մինչդեռ Lisp-ն օգտագործվում է արագ նախատիպերի կարիքների հետ կապված խնդիրների համար:

Prolog

Prolog-ը AI ծրագրավորման լեզու է: Պատկանում է տրամաբանական ծրագրավորման լեզուների ընտանիքին։ Prolog-ը դեկլարատիվ լեզու է, որտեղ հաշվարկները փոխանցվում են հարցումների միջոցով հարաբերությունների վրա (որոնք ներկայացնում են ծրագրի տրամաբանությունը), որոնք սահմանվում են որպես կանոններ և փաստեր:1970 թվականին մշակված prolog-ը տրամաբանական ծրագրավորման հնագույն լեզուներից է և այսօր ամենահայտնի AI ծրագրավորման լեզուներից մեկը (Lisp-ի հետ միասին): Այն անվճար լեզու է, բայց կան բազմաթիվ կոմերցիոն տարբերակներ: Այն սկզբում օգտագործվել է բնական լեզվի մշակման համար, բայց այժմ այն օգտագործվում է տարբեր խնդիրների համար, ինչպիսիք են փորձագիտական համակարգերը, ավտոմատ պատասխանող համակարգերը, խաղերը և առաջադեմ կառավարման համակարգերը: Prolog-ն ունի տվյալների միայն մեկ տեսակ, որը կոչվում է տերմին: Տերմինը կարող է լինել ատոմ, թիվ, փոփոխական կամ բաղադրյալ տերմին: Թվերը կարող են լինել լողացող կամ ամբողջ թվեր: Prolog-ն աջակցում է ցուցակներին և տողերին որպես տարրերի հավաքածու: Prolog-ը սահմանում է հարաբերություններ՝ օգտագործելով նախադասությունները: Դրույթները կարող են լինել կամ կանոններ կամ փաստեր: Prolog-ը թույլ է տալիս կրկնել իր ռեկուրսիվ պրեդիկատների միջոցով:

Lisp

Lisp-ը համակարգչային ծրագրավորման լեզուների ընտանիք է: Իսկ այսօր ընդհանուր նշանակության ծրագրավորման համար օգտագործվող Lisp-ի ամենահայտնի բարբառներն են Common Lisp-ը և Scheme-ը: LISP անվանումը գալիս է «LISt Processing»-ից և ինչպես ակնարկում է, Lisp-ի տվյալների հիմնական կառուցվածքը կապված ցանկն է:Իրականում ամբողջ աղբյուրը գրված է ցուցակների միջոցով (օգտագործելով նախածանցային նշում), կամ ավելի ճիշտ փակագծերով փակագծված ցուցակներ (կոչվում են s-արտահայտություններ): Օրինակ՝ ֆունկցիայի կանչը գրվում է որպես (f a1 a2 a3), ինչը նշանակում է, որ f ֆունկցիան կանչվում է՝ օգտագործելով a1, a2 և a3 որպես ֆունկցիայի մուտքային արգումենտներ: Հետևաբար այն կոչվում է արտահայտություն ուղղված լեզու, որտեղ բոլոր տվյալները և ծածկագիրը գրված են որպես արտահայտություններ (Lisp-ում արտահայտությունների և հայտարարությունների միջև տարբերություն չկա): Այս գեղեցիկ հատկանիշը շատ հատուկ է Lisp-ի համար, որտեղ այն կարող է օգտագործվել լեզուն ընդարձակելու համար առկա խնդիրը՝ գրելով օգտակար մակրոներ: Թեև tail-recursion-ն օգտագործվում է ծրագրավորողների կողմից՝ հանգույցներ արտահայտելու համար, բոլոր հաճախ հանդիպող Lisp բարբառները ներառում են հսկիչ կառույցներ, ինչպիսին է հանգույցը: Ավելին, Common Lisp-ը և scheme-ն ունեն mapcar և map, որոնք գործառույթների օրինակներ են, որոնք ապահովում են շրջագծման գործառույթ՝ հաջորդաբար կիրառելով ֆունկցիան իր բոլոր տարրերի վրա և այնուհետև հավաքում արդյունքները ցուցակում::

Ի՞նչ տարբերություն Prolog-ի և Lisp-ի միջև:

Չնայած Prolog-ը և Lisp-ը AI ծրագրավորման ամենահայտնի լեզուներից երկուսն են, նրանք ունեն տարբեր տարբերություններ: Lisp-ը ֆունկցիոնալ լեզու է, մինչդեռ Prolog-ը տրամաբանական ծրագրավորման և դեկլարատիվ լեզու է: Lisp-ը շատ ճկուն է՝ շնորհիվ իր արագ նախատիպի և մակրո հատկանիշների, ուստի այն իրականում թույլ է տալիս ընդլայնել լեզուն՝ համապատասխան խնդրին: AI-ի, գրաֆիկայի և օգտատիրոջ ինտերֆեյսի ոլորտներում Lisp-ը լայնորեն օգտագործվել է այս արագ նախատիպային ունակության շնորհիվ: Այնուամենայնիվ, շնորհիվ իր ներկառուցված տրամաբանական ծրագրավորման կարողությունների, Prolog-ը իդեալական է AI խնդիրների համար՝ խորհրդանշական պատճառաբանությամբ, տվյալների բազայի և լեզուների վերլուծման հավելվածներով: Մեկի ընտրությունը մյուսի նկատմամբ ամբողջությամբ կախված է AI խնդրի տեսակից, որը պետք է լուծվի:

Խորհուրդ ենք տալիս: