Պաշտոնականացված ծրագրավորման լեզուներ. Բարձր մակարդակի ծրագրավորման լեզուներ. Ծրագրավորման տեսակները Ծրագրավորման լեզուները ֆորմալ լեզուներ են, որոնք հատուկ ստեղծված են մարդու և համակարգչի միջև հաղորդակցության համար: Կիրառական համակարգչային ծրագրեր

Վերջին 70 տարիների ընթացքում ծրագրավորումը դարձել է մարդկային գործունեության հսկայական ոլորտ, որի արդյունքներն իրենց գործնական նշանակությամբ բավականին համեմատելի են միջուկային ֆիզիկայի կամ տիեզերական հետազոտությունների ոլորտում վերջին արդյունքների հետ։ Այս արդյունքները հիմնականում կապված են բարձր մակարդակի ալգորիթմական լեզուների առաջացման և արագ զարգացման հետ:

Ժամանակակից բարձր մակարդակի ծրագրավորման լեզուները, ինչպիսիք են Pascal-ը, C-ն, Ada-ն, Java-ն, C++-ը, C#-ը և այլն, դեռևս ամենատարածված և հզոր գործիքն են ծրագրավորողների համար, որոնք ներգրավված են ինչպես համակարգի, այնպես էլ կիրառական ծրագրերի մշակման մեջ: Նոր առաջադրանքների և կարիքների գալուստով այս լեզուների ֆունկցիոնալությունը մշտապես ընդլայնվում է՝ ստեղծելով ավելի ու ավելի առաջադեմ տարբերակներ:

Ծրագրավորման լեզուների զարգացման մեկ այլ ուղղություն կապված է ոչ ծրագրավորող օգտագործողների (տեխնոլոգներ, դիզայներներ, տնտեսագետներ և այլն) մասնագիտացված (խնդրահարույց) ծրագրային համակարգերի և միջավայրերի ստեղծման հետ: Նման համակարգերի և միջավայրերի օրինակներ են CAD տարբեր նպատակների համար, ավտոմատացված ուսուցման համակարգեր, հեռավար ուսուցման համակարգեր, փորձագիտական ​​և մոդելավորման համակարգեր տնտեսության մեջ և այլն: Նման համակարգերում օգտագործվող համապատասխան խնդրահարույց լեզուների նպատակը հաճախ արտացոլվում է դրանց անվանումներում, օրինակ՝ «Տեխնոլոգիական սարքավորումների սխեմաների նկարագրության լեզու», «Ուսուցման սցենարի նկարագրության լեզու», «Իրավիճակի մոդելավորման լեզու» և այլն։

Ե՛վ ընդհանուր նշանակության, և՛ տիրույթի հատուկ ծրագրավորման լեզուներն ունեն մեկ ընդհանուր բան

պաշտոնական լեզուներ.Ի՞նչ է պաշտոնական լեզուն: Ամենաընդհանուր ձևով այս հարցին կարելի է պատասխանել հետևյալ կերպ. լեզու -դա շատ առաջարկներ է պաշտոնական լեզու -այն լեզու է, որի նախադասությունները կառուցված են որոշակի կանոններով։

Նախադասությունները կառուցվում են բառերից, իսկ բառերը՝ նշաններից (տառերից): Բոլոր թույլատրելի կերպարների բազմությունը կոչվում է այբբենական կարգովլեզու. Ծրագրավորման լեզուներում նախադասությունները սովորաբար համապատասխանում են օպերատորներին (կամ հրահանգներին), և մենք տեսնում ենք այբբենական նիշեր համակարգչի ստեղնաշարի վրա։

Ե՛վ բնական լեզուները, և՛ ծրագրավորման լեզուները անսահման բազմություն են: Ծրագրավորման լեզվով կարելի է գրել անսահմանափակ թվով ծրագրեր։

Ինչպե՞ս սահմանել ֆորմալ լեզվով նախադասությունների կառուցման կանոնները: Այս հարցին պատասխանելիս մենք կսկսենք երկու կարևոր հասկացություններից. շարահյուսությունև իմաստաբանությունլեզու.

Շարահյուսությունլեզուն որոշում է ճիշտ նախադասությունների և բառերի կառուցվածքը, իսկ ծրագրավորման լեզուներում, ի թիվս այլ բաների, ծրագրային տեքստերի թույլատրելի կառուցվածքները:

Պաշտոնական լեզուների շարահյուսությունը նկարագրելու տարբեր եղանակներ կան (ուսուցման երկրորդ գլուխը նվիրված է այն նկարագրելու եղանակներին): Ծրագրավորման լեզուներում ամենաշատ օգտագործվողներն են backus ձևը - Նաուրա(BNF) և շարահյուսական դիագրամներ.

BNF-ը մշակվել է Backus-ի կողմից և առաջին անգամ օգտագործվել է ALGOL-60 լեզվի խիստ նկարագրության համար 1963 թվականին: Այս ձևն օգտագործվում է և՛ լեզվի կառուցվածքը որպես ամբողջություն նկարագրելու, և՛ առանձին լեզվական կառուցվածքներ (լեզվի ենթաբազմություններ) նկարագրելու համար: և դրա տարրերը՝ օպերատորներ, նույնացուցիչներ, արտահայտություններ, թվեր և այլն։

Ստորև բերված են BNF օրինակներ, որոնք սահմանում են տասնորդական ամբողջ թվերի շարահյուսությունը և «+» և «*» օպերատորները պարունակող թվաբանական արտահայտությունների շարահյուսությունը:

BNF տասնորդական ամբողջ թվեր.

= 0|1|...|9

Թվաբանական արտահայտությունների BNF.

:= () ա

Վերոնշյալ արտահայտություններում անշանակում է ցանկացած նույնացուցիչ և դիտվում է որպես այբուբենի նիշ, որից կառուցված է արտահայտությունը:

BNF-ի ձախ կողմում անկյունային փակագծերում գրված են սահմանված պարամետրերի անվանումները: շարահյուսական կատեգորիաներ(հասկացություններ, միավորներ), «:=» նշանը նշանակում է «է», «սա», «սահմանվում է որպես», նշանը՝ «|» նշանակում է «կամ»:

BNF-ի աջ մասը սահմանում է այս կատեգորիաների հատուկ արժեքների կառուցման հնարավոր տարբերակները, այս դեպքում՝ տասնորդական թվերի և հատուկ թվաբանական արտահայտությունների արժեքները: BNF-ը պարունակում է նաև նիշերի այբուբենը, որոնցից կազմված են այս արժեքները: Տասնորդական ամբողջ թվերի համար այբուբենը բազմությունն է (+,-, 0, 1,..., 9), իսկ արտահայտությունների համար՝ բազմությունը։ (ա, *, +, (,)}.

Շարահյուսական կատեգորիայի իմաստների կառուցման գործընթացը բաղկացած է դուրսբերումայս արժեքները BNF կանոնների աջ մասերի հաջորդական փոխարինումներով ձախ մասերի: Ստորև բերված են «-320» թվի և արտահայտության ածանցյալները «ա+ա*ա»օգտագործելով համապատասխան BNF.

BNF-ն շատ նման է պաշտոնական քերականություններօգտագործվում է ֆորմալ լեզուների տեսության մեջ (որոշ հեղինակներ նույնացնում են դրանք):

Դա BNF-ի հայտնվելն էր, որը խթանեց պաշտոնական լեզուների տեսության արագ զարգացումը և դրա կիրառումը ծրագրավորման լեզուների մշակման և թարգմանիչների նախագծման կիրառական խնդիրների մեջ:

Եթե ​​դիտարկվող BNF-ում կանոնների ձախ կողմից յուրաքանչյուր շարահյուսական կատեգորիա նշվում է Ա, Բև ԻՑհամապատասխանաբար, և խորհրդանիշի փոխարեն:= օգտագործել -ապա կստացվեն հետևյալ ձևերը.

Տասնորդական ամբողջ թվերի համար.

A->B+B-B B^>CBCԳ->0 | 11... | 9

Թվաբանական արտահայտությունների համար.

Ա^Ա+ԲԲ

Բ->Բ*ՍՍ

Գ^>(Ա)ա

Այսպես են գրված կանոնները պաշտոնական քերականություններ.շարահյուսական կատեգորիաներ նշանակող նշանները, այս դեպքում, Բ, Գֆորմալ քերականություններում կոչվում են ոչ տերմինալային նշաններիսկ այբուբենի նիշերն են տերմինալ.

Գործնականում ծրագրավորման լեզվի քերականությունը «առաջին մոտեցմամբ» ստանալուց հետո անհրաժեշտ է ուսումնասիրել նրա հատկությունները, իսկ որոշ դեպքերում կատարել որոշ փոխակերպումներ։ Սա հիմնականում պայմանավորված է քերականությունը համապատասխան թարգմանիչ կառուցելու համար հարմար ձևի բերելու անհրաժեշտությամբ։ Այս փոխակերպումների կատարման գործընթացում, ֆորմալ տեսանկյունից, կարևոր չէ, թե BNF այբուբենի կոնկրետ շարահյուսական կատեգորիաներ և նշաններ են պարունակում։ Ուստի այս փուլում սովորաբար անցնում են ֆորմալ քերականությանը և օգտագործում են ֆորմալ լեզուների տեսության համապատասխան մեթոդները։ Միևնույն ժամանակ, BNF-ը չպետք է ամբողջությամբ նույնացվի պաշտոնական քերականությունների հետ: Քերականության սահմանումը պաշտոնական լեզուների տեսության մեջ ավելի ընդհանուր է: Մասնավորապես, դրանք կարող են օգտագործվել նկարագրելու համար համատեքստային կախվածություն,որոնցից միշտ հնարավոր չէ խուսափել ծրագրավորման լեզուների մշակման ժամանակ և որոնք հնարավոր չէ նկարագրել BNF-ի միջոցով:

Ծրագրավորման լեզուների քերականության բնորոշ առանձնահատկությունը դրանցում ռեկուրսիայի առկայությունն է: ռեկուրսիվություննշանակում է, որ որոշ շարահյուսական կատեգորիայի սահմանումը պարունակում է հենց սահմանված կատեգորիան (սա այսպես կոչված բացահայտ ռեկուրսիա է)։ Օրինակ, դիտարկվող BNF-ում, կատեգորիաների սահմանումները և պարունակում են այս կատեգորիաները հենց աջ կողմում: Ռեկուրսիա -ծրագրավորման լեզուների քերականության գրեթե անխուսափելի հատկություն, որը հնարավոր է դարձնում դրանք անսահման դարձնել։ Միևնույն ժամանակ, ռեկուրսիայի որոշ տեսակներ, որոնք կքննարկվեն ավելի ուշ, զգալիորեն բարդացնում են համապատասխան թարգմանիչների մշակման գործընթացը։

Համառոտ անդրադառնանք վերը նշված լեզվի շարահյուսությունը շարահյուսական դիագրամների օգնությամբ նկարագրելու մեկ այլ եղանակի վրա։ Որոշ հեղինակներ, երբ նկարագրում են լեզվի ստանդարտը, նախընտրում են այս մեթոդը՝ ավելի մեծ պարզության պատճառով։ Շարահյուսական դիագրամների օրինակներ կարելի է գտնել ծրագրավորման բազմաթիվ գրքերում (օրինակ՝ ). Նկատի ունեցեք, որ նկարագրության երկու մեթոդները՝ և՛ BNF, և՛ շարահյուսական դիագրամները համարժեք են, և դուք միշտ կարող եք անցնել նկարագրության մի մեթոդից մյուսին:

Հիմա հաշվի առեք հայեցակարգը լեզվի իմաստաբանությունը։Եթե ​​լեզվի շարահյուսությունը որոշում է նրա ճիշտ նախադասությունների և տեքստերի կառուցվածքը, ապա իմաստաբանությունը որոշում է դրանց իմաստի ճիշտությունը։ Իր հերթին, իմաստի ճշգրտությունը կախված է նախադասությունը կազմող բառերի իմաստներից: Օրինակ, եթե բնական լեզվով նախադասության շարահյուսությունը սահմանվում է որպես

այնուհետև կարող եք կառուցել տարբեր իմաստներով նախադասությունների մի շարք: Օրինակ՝ «մեքենան քշում է» և «մեքենան մտածում է» նախադասությունները շարահյուսական առումով ճիշտ են։ Այնուամենայնիվ, առաջին նախադասությունն ունի ճիշտ իմաստ, երկրորդը, կարելի է ասել, անիմաստ է: Այսպիսով, իմաստաբանությունը որոշում է նախադասությունների (տեքստերի) և իմաստների միջև իմաստների և թույլատրելի համապատասխանությունների շարքը:

Բացի այդ, լեզվի իմաստաբանությունը կախված է այս լեզվով նկարագրված առարկաների հատկություններից: Եթե ​​դիտարկված օրինակում մեքենան համալրված լիներ համակարգչով՝ շարժման օպտիմալ ռեժիմներն ու ուղիները հաշվարկելու ծրագրերով, ապա երկրորդ նախադասությունն այլևս անիմաստ չէր թվա։

Նմանապես, ծրագրավորման լեզուներում շարահյուսականորեն լավ ձևավորված հանձնարարական օպերատորը

իմաստային առումով սխալ կլինի, եթե a-ն 10,5 է (a = 10,5), իսկ b-ն կեղծ է (b = կեղծ):

Ծրագրավորման լեզուների իմաստաբանության պաշտոնական նկարագրությունը պարզվեց, որ շատ ավելի բարդ խնդիր է, քան շարահյուսության նկարագրությունը: Ծրագրավորման լեզուների իրագործման մեջ մաթեմատիկական մեթոդների կիրառմանը նվիրված աշխատությունների մեծ մասն ընդգրկում է հենց շարահյուսության նկարագրության և վերլուծության մեթոդների կառուցման խնդիրները: Այս ոլորտում մշակվել է բավականին ամբողջական տեսություն և մեթոդաբանություն: Միևնույն ժամանակ, լեզվի իմաստաբանությունը և իմաստային վերլուծությունը դեռևս բազմաթիվ ուսումնասիրությունների առարկա են:

Ծրագրավորման լեզվի իմաստաբանության շատ ասպեկտներ կարելի է բնութագրել որպես իմաստային պայմանականությունների ցանկ, որոնք ունեն ընդհանուր, ոչ պաշտոնական բնույթ: Օրինակ՝ ծրագրավորողներին ծանոթ են այնպիսի կոնվենցիաներ, ինչպիսիք են՝ «բլոկի յուրաքանչյուր նույնացուցիչ հայտարարվում է մեկ անգամ», «փոփոխականը պետք է սահմանվի, նախքան այն օգտագործելը» և այլն։

Որպես իմաստաբանության և իմաստաբանական վերլուծության ոլորտում ֆորմալ լեզուների տեսության հաջող կիրառման օրինակ՝ կարելի է մեջբերել ատրիբուտների թարգմանական քերականության ապարատը, որը թույլ է տալիս հաշվի առնել իմաստային համաձայնությունները լեզվի նկարագրության մեջ և. վերահսկել դրանց պահպանումը ծրագրի թարգմանության ժամանակ:

Ինչ վերաբերում է ծրագրավորման լեզուների հետագա զարգացման հեռանկարների կանխատեսումներին, ապա կարծիքների բավականին լայն շրջանակ կա՝ ընդհուպ մինչև տրամագծորեն հակառակ կարծիքների։ Որոշ հեղինակներ կարծում են, որ լեզուներից յուրաքանչյուրն ունի իր իմաստային առանձնահատկությունները, որոնք այն հարմար և գրավիչ են դարձնում ծրագրավորման որոշակի ոլորտի համար (օրինակ, Prolog-ը և Lisp-ը կենտրոնացած են արհեստական ​​ինտելեկտի խնդիրների լուծման վրա. Fortran-ն ամենաարդյունավետն է հաշվողական խնդիրների լուծում; Cobol - օգտագործվում է տնտեսական հաշվարկների համար և այլն): Հետևաբար, դուք պետք է ստեղծեք բոլոր նոր լեզուները, որոնք ունեն հատուկ առանձնահատկություններ կամ պարբերաբար թարմացնեք առկա տարբերակները, այլ ոչ թե փորձեք ստեղծել համընդհանուր լեզու: Ի պաշտպանություն այս տեսակետի՝ բերվում է այն փաստարկը, որ համընդհանուր լեզու ստեղծելու բոլոր հավակնոտ նախագծերը ձախողվել են (բավական է հիշել ADAiPL-1 լեզուների զարգացման հետ կապված չկատարված հույսերը):

Հեղինակների մեկ այլ մասը կարծում է, որ ծրագրավորման առաջին լեզուների ստանդարտների հրապարակումից ի վեր՝ Fortran, Algol և այլն, 60-ական թթ. 20-րդ դարում տեղի ունեցավ լեզուների «կայունացում» այն իմաստով, որ տարբեր լեզուներում նպատակային նմանատիպ կառուցումները գործնականում ունեն նույն իմաստային հիմքերը՝ չնայած բառապաշարի և շարահյուսության տարբերություններին: Հետևաբար, հենց որ հնարավոր լինի պաշտոնապես սահմանել այս ընդհանուր իմաստային բազան, հնարավոր կլինի սկսել ստեղծել ունիվերսալ լեզու, որն այլևս չի լինի ծրագրավորման լեզու ավանդական իմաստով, այլ իմաստային կառուցվածքների դատարկ: Ծրագիրը կներկայացվի որպես այս կոնստրուկտների ամբողջություն, և տեքստային խմբագրիչը տեղը կզիջի կառուցվածքի խմբագրին: Որպես այս մոտեցման մասնակի իրականացման օրինակ, բերված են տեսողական ծրագրավորման միջավայրեր, ինչպիսիք են Delphi, C ++ Builder և այլն:

Վերջ

Սկսել

Կրկնել

Սկսել

Կեղծ ծածկագրեր

Կեղծկոդը նշումների և կանոնների համակարգ է, որը նախատեսված է միատեսակ ալգորիթմներ գրելու համար: Այն զբաղեցնում է միջանկյալ դիրք բնական և ֆորմալ լեզվի միջև։

Մի կողմից, այն մոտ է սովորական բնական լեզվին, ուստի ալգորիթմները կարելի է գրել և կարդալ դրանում, ինչպես պարզ տեքստը։ Մյուս կողմից, որոշ ֆորմալ կոնստրուկցիաներ և մաթեմատիկական սիմվոլիկան օգտագործվում են կեղծ կոդի մեջ, որն ալգորիթմի նշումը մոտեցնում է ընդհանուր ընդունված մաթեմատիկական նշումին։

Կեղծակոդը չի ընդունում ֆորմալ լեզուներին բնորոշ հրամաններ գրելու խիստ շարահյուսական կանոններ, ինչը հեշտացնում է ալգորիթմը նախագծման փուլում և հնարավորություն է տալիս օգտագործել աբստրակտ կատարողի համար նախատեսված հրամանների ավելի լայն շարք: Այնուամենայնիվ, կեղծ կոդում սովորաբար կան որոշ կառուցվածքներ, որոնք բնորոշ են ֆորմալ լեզուներին, ինչը հեշտացնում է կեղծ կոդով գրելուց անցումը ֆորմալ լեզվով ալգորիթմ գրելուն: Մասնավորապես, կեղծ կոդում, ինչպես նաև ձևական լեզուներում կան օժանդակ բառեր, որոնց իմաստը վերջնականապես որոշվում է։ Տպագիր տեքստում դրանք համարձակված են, իսկ ձեռագիր տեքստում՝ ընդգծված: Չկա կեղծ կոդի մեկ կամ պաշտոնական սահմանում, ուստի հնարավոր են տարբեր կեղծ կոդեր, որոնք տարբերվում են ծառայության բառերի և հիմնական (հիմնական) կառուցվածքներով: Որպես օրինակ, մենք մուտք ենք տալիս ալգորիթմի կեղծ կոդերից մեկի վրա.

ալգորիթմ Էվկլիդեսի ալգորիթմ;

ցտեսությունառաջին թիվը հավասար չէ երկրորդին

եթեթվերը հավասար են

ապականգ առնել բոլորը;

հակառակ դեպքումորոշել երկու թվերից ավելի մեծը.

հՓոխեք ավելի մեծ թիվը մեծ և փոքր թվերի տարբերությամբ

վերջ;

որպես պատասխան վերցրեք առաջին թիվը

Այս ալգորիթմը կարելի է գրել ավելի պարզ ձևով, բայց հենց այդպիսի նշում է տրված՝ ցույց տալու հիմնական հնարավոր կեղծ կոդի կառուցվածքները։ Իրենց յուրահատկությունների ուժով կեղծկոդերը, ինչպես վերը նկարագրված ալգորիթմների գրման այլ միջոցները, ուղղված են մարդուն:

Վերևում նշվեց, որ բանավոր, դիագրամի կամ կեղծ կոդով ալգորիթմ գրելիս հրամաններ ցուցադրելիս թույլատրվում է որոշակի կամայականություն։ Միևնույն ժամանակ, նման գրառումն այնքան ճշգրիտ է, որ թույլ է տալիս մարդուն հասկանալ հարցի էությունը և կատարել ալգորիթմը։

Սակայն գործնականում որպես ալգորիթմների կատարողներ օգտագործվում են հատուկ ավտոմատներ՝ էլեկտրոնային համակարգիչներ (համակարգիչներ): Հետևաբար, համակարգչի վրա կատարման համար նախատեսված ալգորիթմը պետք է գրված լինի համակարգչի կողմից «հասկանալի» լեզվով։ Եվ այստեղ առաջին պլան է մղվում հրամանների ճշգրիտ ձայնագրման անհրաժեշտությունը՝ տեղ չթողնելով դրանց կատարողի կողմից կամայական մեկնաբանության համար։ Հետեւաբար, ալգորիթմը գրելու լեզուն պետք է ձեւակերպվի: Այդպիսի լեզուն կոչվում է ծրագրավորման լեզու , և այս լեզվով ալգորիթմի գրառումն է ծրագրի համար համակարգիչ.


Ծրագրավորման լեզուֆորմալացված լեզու է, որը այբուբենի, կոնստրուկցիաների գրման կանոնների (շարահյուսություն) և կոնստրուկցիաների մեկնաբանման կանոնների (իմաստաբանություն) համադրություն է։

Ներկայումս կան մի քանի հարյուր ծրագրավորման լեզուներ, որոնք նախատեսված են համակարգիչների կիրառման տարբեր ոլորտների համար, այսինքն՝ համակարգիչների օգնությամբ լուծվող խնդիրների տարբեր դասերի համար։ Այս լեզուները դասակարգվում են ըստ տարբեր մակարդակների՝ հաշվի առնելով լեզվի կախվածության աստիճանը որոշակի համակարգչից:

Ծրագրավորումը մի ամբողջ գիտություն է, որը թույլ է տալիս ստեղծել համակարգչային ծրագրեր։ Այն ներառում է հսկայական թվով տարբեր գործողություններ և ալգորիթմներ, որոնք կազմում են մեկ ծրագրավորման լեզու: Այսպիսով, ինչ է դա և որո՞նք են ծրագրավորման լեզուները: Հոդվածում տրվում են պատասխաններ, ինչպես նաև ծրագրավորման լեզուների ընդհանուր ցանկ:

Ծրագրավորման լեզուների առաջացման և փոփոխության պատմությունը պետք է ուսումնասիրվի համակարգչային տեխնոլոգիաների զարգացման պատմության հետ մեկտեղ, քանի որ այս հասկացությունները անմիջականորեն կապված են: Առանց ծրագրավորման լեզուների անհնար կլիներ ստեղծել համակարգչի աշխատանքի համար որևէ ծրագիր, ինչը նշանակում է, որ համակարգիչների ստեղծումը կդառնա անիմաստ վարժություն։

Առաջին մեքենայական լեզուն հայտնագործվել է 1941 թվականին Կոնրադ Զուզեի կողմից, ով վերլուծական շարժիչի գյուտարարն է։ Քիչ անց՝ 1943 թվականին, Հովարդ Այկենը ստեղծեց Mark-1 մեքենան, որն ընդունակ էր կարդալ հրահանգները մեքենայի կոդի մակարդակով։

1950-ականներին ծրագրային ապահովման մշակման ակտիվ պահանջարկ կար, և մեքենայական լեզուն չէր դիմանում մեծ քանակությամբ կոդերի, ուստի ստեղծվեց համակարգիչների հետ հաղորդակցվելու նոր եղանակ: «Assembler»-ը առաջին մնեմոնիկ լեզուն է, որը փոխարինում է մեքենայի հրահանգներին: Տարիների ընթացքում ծրագրավորման լեզուների ցանկը միայն ավելանում է, քանի որ համակարգչային տեխնոլոգիաների շրջանակը դառնում է ավելի ընդարձակ:

Ծրագրավորման լեզուների դասակարգում

Այս պահին ծրագրավորման ավելի քան 300 լեզու կա։ Նրանցից յուրաքանչյուրն ունի իր առանձնահատկությունները և հարմար է մեկ կոնկրետ առաջադրանքի համար: Ծրագրավորման բոլոր լեզուները կարելի է բաժանել մի քանի խմբերի.

  • Aspect-oriented (հիմնական գաղափարը ֆունկցիոնալության տարանջատումն է ծրագրի մոդուլների արդյունավետությունը բարձրացնելու համար):
  • Կառուցվածքային (հիմնված ծրագրի առանձին բլոկների հիերարխիկ կառուցվածքի ստեղծման գաղափարի վրա):
  • Տրամաբանական (հիմնված մաթեմատիկական տրամաբանության ապարատի տեսության և լուծման կանոնների վրա):
  • Օբյեկտա-կողմնորոշված ​​(նման ծրագրավորման ժամանակ այլևս չեն օգտագործվում ալգորիթմներ, այլ օբյեկտներ, որոնք պատկանում են որոշակի դասին)։
  • Multi-paradigm (միավորել մի քանի պարադիգմներ, և ծրագրավորողն ինքն է որոշում, թե որ լեզուն օգտագործել այս կամ այն ​​դեպքում):
  • Ֆունկցիոնալ (հիմնական տարրերն այն գործառույթներն են, որոնք փոխում են արժեքը՝ կախված նախնական տվյալների հաշվարկների արդյունքներից):

Ծրագրավորում սկսնակների համար

Շատերը հարցնում են, թե ինչ է ծրագրավորումը: Հիմնականում դա համակարգչի հետ շփվելու միջոց է։ Ծրագրավորման լեզուների շնորհիվ մենք կարող ենք հատուկ առաջադրանքներ դնել տարբեր սարքերի համար՝ ստեղծելով հատուկ հավելվածներ կամ ծրագրեր։ Այս գիտությունը սկզբնական փուլում ուսումնասիրելիս ամենակարևորը ծրագրավորման հարմար (ձեզ համար հետաքրքիր) լեզուներ ընտրելն է։ Սկսնակների համար ցուցակը ստորև.

  • Basic-ը ստեղծվել է 1964 թվականին, պատկանում է բարձր մակարդակի լեզուների ընտանիքին և օգտագործվում է կիրառական ծրագրեր գրելու համար։
  • Python-ը («Python») բավականին հեշտ է սովորել իր պարզ, ընթեռնելի շարահյուսության շնորհիվ, սակայն առավելությունն այն է, որ այն կարող է օգտագործվել ինչպես սովորական աշխատասեղանի ծրագրեր, այնպես էլ վեբ հավելվածներ ստեղծելու համար:
  • Պասկալ («Պասկալ») - ամենահին լեզուներից մեկը (1969), որը ստեղծվել է ուսանողների ուսուցման համար: Նրա ժամանակակից մոդիֆիկացիան ունի խիստ մուտքագրում և կառուցվածք, սակայն «Pascal»-ը լիովին տրամաբանական լեզու է, որը հասկանալի է ինտուիտիվ մակարդակով։

Սա սկսնակների համար ծրագրավորման լեզուների ամբողջական ցանկ չէ: Հսկայական թվով շարահյուսություններ կան, որոնք հեշտ ընկալելի են և անպայման պահանջված կլինեն առաջիկա տարիներին։ Յուրաքանչյուր ոք իրավունք ունի ինքնուրույն ընտրել այն ուղղությունը, որը հետաքրքիր կլինի իր համար։

Սկսնակները հնարավորություն ունեն արագացնել ծրագրավորման և դրա հիմունքների ուսուցումը հատուկ գործիքների շնորհիվ։ Հիմնական օգնականը Visual Basic-ի ինտեգրված զարգացման միջավայրն է ծրագրերի և հավելվածների համար («Visual Basic»-ը նաև ծրագրավորման լեզու է, որը ժառանգել է 1970-ականների Basic լեզվի ոճը):

Ծրագրավորման լեզվի մակարդակները

Բոլոր ֆորմալացված լեզուները, որոնք նախատեսված են համակարգչային ծրագրերի ստեղծման, նկարագրության համար և ալգորիթմներ լուծելու համար, բաժանված են երկու հիմնական կատեգորիայի՝ ցածր մակարդակի ծրագրավորման լեզուներ (ցանկը տրված է ստորև) և բարձր մակարդակի: Նրանցից յուրաքանչյուրի մասին խոսենք առանձին։

Ցածր մակարդակի լեզուները նախատեսված են պրոցեսորների համար մեքենայական հրահանգներ ստեղծելու համար: Նրանց հիմնական առավելությունն այն է, որ նրանք օգտագործում են մնեմոնիկ նշում, այսինքն, զրոների և միավորների հաջորդականության փոխարեն (երկուական թվային համակարգից) համակարգիչը հիշում է անգլերեն լեզվից իմաստալից կրճատ բառը: Ցածր մակարդակի ամենահայտնի լեզուներն են «Assembler»-ը (այս լեզվի մի քանի ենթատեսակներ կան, որոնցից յուրաքանչյուրը շատ ընդհանրություններ ունի, բայց տարբերվում է միայն լրացուցիչ հրահանգների և մակրոների շարքում), CIL (հասանելի է Net-ում: հարթակ) և JAVA բայթկոդ:

Բարձր մակարդակի ծրագրավորման լեզուներ՝ ցուցակ

Բարձր մակարդակի լեզուները նախատեսված են հավելվածների հարմարության և արդյունավետության համար, դրանք ճիշտ հակառակն են ցածր մակարդակի լեզուներին: Նրանց տարբերակիչ առանձնահատկությունն այն իմաստային կոնստրուկցիաների առկայությունն է, որոնք հակիրճ և համառոտ նկարագրում են ծրագրերի կառուցվածքներն ու ալգորիթմները։ Ցածր մակարդակի լեզուներում դրանց նկարագրությունը մեքենայական կոդով չափազանց երկար և անհասկանալի կլիներ: Մյուս կողմից, բարձր մակարդակի լեզուները հարթակներից անկախ են: Փոխարենը, կոմպիլյատորները կատարում են թարգմանիչի ֆունկցիան. նրանք ծրագրի տեքստը թարգմանում են տարրական մեքենայի հրահանգների:

Ծրագրավորման լեզուների հետևյալ ցանկը՝ C ("C"), C# ("C-sharp"), "Fortran", "Pascal", Java ("Java") - ամենաշատ օգտագործվող բարձր մակարդակի շարահյուսություններից է: Այն ունի հետևյալ հատկությունները. այս լեզուներն աշխատում են բարդ կառուցվածքների հետ, աջակցում են լարային տվյալների տիպերին և ֆայլերի մուտքի/ելք գործառնություններին, ինչպես նաև առավելություն ունեն՝ աշխատելը շատ ավելի հեշտ՝ ընթեռնելիության և հասկանալի շարահյուսության շնորհիվ:

Ամենաշատ օգտագործվող ծրագրավորման լեզուներ

Սկզբունքորեն, դուք կարող եք գրել ծրագիր ցանկացած լեզվով: Հարցն այն է, արդյոք այն կաշխատի արդյունավետ և անխափան: Այդ իսկ պատճառով տարբեր խնդիրներ լուծելու համար պետք է ընտրել ամենահարմար ծրագրավորման լեզուները։ Հանրաճանաչության ցանկը կարելի է ամփոփել հետևյալ կերպ.

  • OOP լեզուներ՝ Java, C++, Python, PHP, VisualBasic և JavaScript;
  • կառուցվածքային լեզուների խումբ՝ Basic, Fortran և Pascal;
  • բազմաբնույթ պարադիգմ՝ C#, Delphi, Curry և Scala:

Ծրագրերի և կիրառությունների շրջանակը

Լեզվի ընտրությունը, որով գրված է այս կամ այն ​​ծրագիրը, մեծապես կախված է դրա կիրառման ոլորտից: Այսպիսով, օրինակ, ինքնին համակարգչային տեխնիկայի հետ աշխատելու համար (դրայվերներ գրելը և օժանդակ ծրագրերը), լավագույն տարբերակը կլինի C («C») կամ C ++, որոնք ներառված են հիմնական ծրագրավորման լեզուներում (տես ցուցակը. վերևում): Իսկ բջջային հավելվածների, այդ թվում՝ խաղերի մշակման համար պետք է ընտրել Java կամ C# («C-sharp»):

Եթե ​​դեռ չեք որոշել, թե որ ուղղությամբ աշխատել, խորհուրդ ենք տալիս սկսել սովորել C կամ C ++-ով: Նրանք ունեն շատ հստակ շարահյուսություն, հստակ կառուցվածքային բաժանում դասերի և գործառույթների: Բացի այդ, իմանալով C կամ C ++, դուք հեշտությամբ կարող եք սովորել ցանկացած այլ ծրագրավորման լեզու:

Երկաթուղային լեզվի մասին «Գնացքը առանց կանգ առնելու կանցնի Կրասնյե Զորի կառամատույցով». Նշենք, որ վարորդն օգտագործել է «կանգառ» գոյականը, այլ ոչ թե «կանգնել» բայը: Կանգառը երկաթուղու աշխատողների համար շատ կարևոր հասկացություն է։ Գնացքը կարող է «կանգնել», բայց ոչ «կանգառներ ունենալ»։ Տուրչինը [Turchin 2000], բերելով նմանատիպ օրինակ, մատնանշում է նեղ մասնագիտական ​​նպատակներով օգտագործվող լեզվի պաշտոնականացումը։

Պաշտոնականացված լեզուն կարող է սահմանվել հետևյալ կերպ [Turchin 2000]: Դիտարկենք իրականության երկհարկանի լեզվական մոդելը (նկ. 4. 4): Si իրավիճակը կոդավորված է Li լեզվական օբյեկտով: L1 օբյեկտը si-ի անունն է: Որոշ ժամանակ անց S1 իրավիճակը փոխարինվում է S2 իրավիճակով: Լեզվական ինչ-որ գործունեություն իրականացնելով՝ մենք L1-ը վերափոխում ենք մեկ այլ օբյեկտի՝ L2-ի։ Եթե ​​մեր մոդելը ճիշտ է, ապա L2-ը S2-ի անունն է: Արդյունքում, առանց S2 իրական իրավիճակը իմանալու, մենք կարող ենք դրա մասին պատկերացում կազմել՝ վերծանելով L2 լեզվական օբյեկտը։ L1->L2 փոխակերպման կատարումը որոշում է, թե արդյոք լեզուն կձևակերպվի:

    Ֆորմալացված լեզվի համար L1->L2 փոխակերպումը որոշվում է բացառապես Li լեզվական օբյեկտներով, որոնք մասնակցում են դրան և կախված չեն լեզվի իմաստաբանության մեջ դրանց համապատասխանող լեզվական ներկայացումներից:

    Ոչ ֆորմալացված լեզվի համար Li լեզվական օբյեկտի փոխակերպման արդյունքը կախված է ոչ միայն բուն Li-ի ներկայացման տեսակից, այլև այն si ներկայացումից, որը նա առաջացնում է մարդու գլխում, այն ասոցիացիաներից, որոնց մեջ մտնում է:

Մարդը կարողանում է ընկալել ամենաչֆորմալացված լեզուները։ Իսկ համակարգիչը չի հասկանում, ավելի ստույգ՝ չի կարող ծրագիրը ոչ պաշտոնական լեզվով կատարել։ Ահա թե ինչու ծրագրավորման ուսումնասիրության մեջ կարևոր տեղ են գրավում ֆորմալ ալգորիթմական ծրագրավորման լեզուները,

Ոչ պաշտոնականի պաշտոնականացման մասին Չֆորմալիզացվածի ֆորմալացումը ոչ պաշտոնական գործընթաց է։ Չնայած տրամաբանողներն ու զինվորականները փորձում են պայքարել սրա դեմ։

Սիրո բանաձեւի մասին Սիրո բանաձևը չի տրվում պաշտոնականացման. Լավագույն դեպքում այն ​​կարող է ներկայացվել միայն որպես շատ կոպիտ մոդել։

Մոդելավորման լեզուներ

Մոդելավորման լեզու - կանոնների մի շարք, որոնք որոշում են մոդելների կառուցումը (իրականության պարզեցված ներկայացում), ներառյալ դրանց վիզուալացումը և կառուցվածքի և վարքի սահմանումը: Մոդելավորման լեզուն ներառում է.

    մոդելի տարրեր - մոդելավորման հիմնարար հասկացություններ և դրանց իմաստաբանություն.

    նշում - մոդելավորման տարրերի տեսողական ներկայացում;

    օգտագործման ուղեցույց - տարրերի օգտագործման կանոններ տիրույթի մոդելների կառուցման շրջանակներում:

Ծրագրավորման լեզուներ և ինտեգրված միջավայրեր

    Ըստ առաջին FRAMEWORK ինտեգրված միջավայրի ստեղծողի՝ ինտեգրված միջավայրն այնպիսի հավելված է, որ օգտատերը, գործարկելով այն աշխատանքային օրվա սկզբին, գտնում է դրանում աշխատանքի համար անհրաժեշտ բոլոր ռեսուրսները և, հետևաբար, դուրս չի գալիս ինտեգրված միջավայրից։ մինչև աշխատանքային օրվա ավարտը։ Իհարկե, այս սահմանումը այնքան էլ ճիշտ չէ և որոշակիորեն իդեալականացնում է իրավիճակը, բայց դրա ընդհանուր իմաստը բավական պարզ է։ Ինտեգրված միջավայրերի հիմնական առանձնահատկությունը ինտերակտիվության բարձր աստիճանն է: Այն ձեռք է բերվում տարբեր ծրագրային ռեսուրսների ինտեգրման միջոցով մեկ ամբողջության մեջ, այստեղից էլ՝ անվանումը: Այսպիսով, ծրագրավորման լեզվի կոմպիլյատորի ինտեգրված միջավայրը (ծրագիր, որը ստեղծում է գործարկվող ծրագիր այս ծրագրավորման լեզվի տեքստից) սովորաբար պարունակում է տեքստային խմբագիր և հենց ինքը՝ կոմպիլյատորը՝ կոմպիլյացիայի սխալների ախտորոշման համակարգով: Բացի այդ, այն սովորաբար ունի նաև վրիպազերծիչ՝ այս լեզվի թարգմանիչ, որը կատարում է ծրագիրը տող առ տող և ունի մի շարք այլ հատուկ հնարավորություններ։ Ակտիվ զարգացող ոլորտներից մեկը՝ վիզուալ դիզայնը, ամբողջությամբ հիմնված է ինտեգրված միջավայրի հնարավորությունների օգտագործման վրա։ Օգտագործողը ինտերակտիվ կերպով ընտրում է իր ծրագրի համար անհրաժեշտ ծրագրավորման լեզվի օբյեկտները և կապեր հաստատում դրանց միջև: Պատահական չէ այնպիսի լեզուների ժողովրդականությունը, ինչպիսիք են Visual BASIC-ը (Microsoft), ինչպես նաև Object PASCAL-ը (Delphi և Kylix, Borland միջավայրերը): Նույնիսկ անփորձ ծրագրավորողը, ով բացի BASIC-ից բացի այլ ծրագրավորման լեզուներ չգիտի և երբևէ չի ծրագրավորվել Windows-ով, կարող է երկու-երեք օրվա ընթացքում ստեղծել Windows-ի տակ աշխատող հավելված՝ օգտագործելով Visual BASIC: Բայց բարձրակարգ ծրագրավորողը, ով նախկինում չի ծրագրավորել Windows-ի տակ, օգտագործելով C ++, հաճախ ստիպված է լինում շաբաթներ կամ նույնիսկ ամիսներ ծախսել նույն ծրագիրը ստեղծելու համար: Ճիշտ է, Visual BASIC-ն ունի մի շարք նշանակալի սահմանափակումներ: Վիզուալ դիզայնի միջավայրերի օգնությամբ դուք կարող եք ստեղծել շատ բարդ ծրագրեր՝ առանց ստեղնաշարի վրա կոդի մեկ տող մուտքագրելու: Այնուամենայնիվ, ավանդական ընթացակարգային ծրագրավորման լեզուների վրա հիմնված բոլոր ծրագրերը տառապում են նույն թերությունից: Նրանց համար գործարկվող կոդը մի բան է, իսկ ծրագրի կողմից մշակված տվյալները՝ բոլորովին այլ բան։ Իրոք, ծրագրի կոդը պարունակվում է EXE ընդլայնմամբ ֆայլում, և տվյալները կա՛մ հատուկ տվյալների ֆայլերում են (սովորաբար տեքստային կամ երկուական ձևով՝ համակարգչի ներքին ներկայացման մեջ), կա՛մ մուտքագրվում են ստեղնաշարից կամ որևէ այլից։ արտաքին սարք. Եվ հիմա եկեք հարց տանք. իսկ եթե օգտագործողը պետք է գործարկվող ծրագրին տա տեղեկատվություն, որը կարող է դիտվել որպես ծրագրի տեքստի «լրացում»: Օրինակ, մենք ցանկանում ենք, որ էկրանի վրա կառուցվի ֆունկցիայի գրաֆիկ, և նման ծրագրում մենք տրամադրում ենք սպասարկման բոլոր անհրաժեշտ հնարավորությունները։ Սակայն ֆունկցիայի բանաձեւը պետք է սահմանի հենց օգտատերը, իսկ թե դա ինչ կլինի, նախապես հայտնի չէ։ Միանգամայն ակնհայտ է, որ նման խնդիրները հնարավոր է լուծել միայն թարգմանչական համակարգի օգնությամբ։ Բայց «դուք պետք է վճարեք ամեն ինչի համար»: Կոմպիլյատորը ծրագրի տեքստը թարգմանում է գործարկվող կոդի, որը կարող է աշխատել առանց կոմպիլյատորի ծրագրի: Թարգմանչական տիպի լեզուների հիման վրա ստեղծված ծրագրերը կարող են իրականացվել միայն թարգմանիչ ծրագրի հսկողության ներքո: Դրանք նաև ավելի դանդաղ են, քան կազմվածները, քանի որ մեկնաբանելու համար լրացուցիչ ժամանակ է պահանջվում: Այնուամենայնիվ, շատ դեպքերում դա էական չէ:

Ստեղծման ամսաթիվը: 1963 Ազդեցվել է՝ՊՐՈՖՏ Մուտքագրում:անտիպ Բարբառներ:

    Applesoft BASIC

    Commodore BASIC

    Microsoft BASIC

Իրականացումներ և տարբերակներ.

  • Applesoft BASIC թարգմանիչ Javascript-ում

    Atari Microsoft BASIC I/II

  • Commodore BASIC

    Galaxia BASIC

    Microsoft Visual Basic

  • Visual Basic հավելվածների համար

ՀԻՄՆԱԿԱՆ (ՀԻՄՆԱԿԱՆ - կարճ Beginner's All-purpose Symbolic Instruction Code - համընդհանուր ծածկագիր սկսնակների համար խորհրդանշական հրահանգների համար; անգլերեն հիմնական - հիմնական, հիմնական) - բարձր մակարդակի ծրագրավորման լեզուների ընտանիք:

BASIC-ը ստեղծվել է 1963 թվականին Դարթմութ քոլեջի պրոֆեսորներ Ջոն Քեմենիի և Թոմաս Կուրցի կողմից և իրականացվել նրանց ղեկավարությամբ քոլեջի ուսանողների մի թիմի կողմից: Ժամանակի ընթացքում, երբ սկսեցին հայտնվել այլ բարբառներ, այս «բնօրինակ» բարբառը հայտնի դարձավ որպես Dartmouth BASIC:

BASIC-ը նախագծված էր այնպես, որ ուսանողները կարողանան ծրագրեր գրել՝ օգտագործելով ժամանակի փոխանակման տերմինալներ: Այն ստեղծվել է որպես հին լեզուների բարդության հետ կապված խնդիրների լուծում՝ նախատեսված ավելի «պարզ» օգտատերերի համար, որոնք ոչ այնքան հետաքրքրված են ծրագրերի արագությամբ, այլ պարզապես իրենց խնդիրները լուծելու համար համակարգիչ օգտագործելու ունակությամբ:

Լեզվի ձևավորման մեջ օգտագործվել են հետևյալ ութ սկզբունքները.

    հեշտ է օգտագործել սկսնակների համար;

    լինել ընդհանուր նշանակության ծրագրավորման լեզու;

    ապահովել փորձառու ծրագրավորողների համար հասանելի ֆունկցիոնալությունը ընդլայնելու հնարավորություն.

    լինել ինտերակտիվ;

    տրամադրել հստակ սխալի հաղորդագրություններ;

    արագ աշխատել փոքր ծրագրերի վրա;

    չեն պահանջում ապարատային աշխատանքի մասին պատկերացում.

    միջնորդ լինել օգտագործողի և օպերացիոն համակարգի միջև:

Լեզուն հիմնված էր մասամբ Fortran II-ի և մասամբ Algol-60-ի վրա՝ հավելումներով, որպեսզի այն հարմար լինի ժամանակի փոխանակման, տեքստի մշակման և մատրիցային թվաբանության համար։ BASIC-ն ի սկզբանե ներդրվել է GE-265-ում՝ մի քանի տերմինալների աջակցությամբ: Հակառակ տարածված կարծիքի, իր ստեղծման ժամանակ այն եղել է կազմված լեզու։ Լեզուն ընդհանուր ժողովրդականություն է ձեռք բերել Altair 8800 միկրոհամակարգչի վրա հայտնվելուց հետո: Ծրագրավորման շատ լեզուներ չափազանց ծանր էին փոքր հիշողության մեջ տեղավորվելու համար: Դանդաղ կրիչներ ունեցող մեքենաների համար, ինչպիսիք են թղթի ժապավենը, աուդիո ձայներիզը և համապատասխան տեքստային խմբագրիչ չունենալը, BASIC-ի նման փոքր լեզուն աստվածային պարգև էր: 1975-ին Microsoft-ը (այն ժամանակ միայն երկուսն էր՝ Բիլ Գեյթսը և Փոլ Ալենը, Մոնթե Դավիդովի մասնակցությամբ) թողարկեց Altair BASIC-ը։ CP / M օպերացիոն համակարգի համար ստեղծվել է BASIC-80 բարբառը, որը երկար ժամանակ որոշել է լեզվի զարգացումը։ Այս ընթացքում ստեղծվել են BASIC-ի մի քանի նոր տարբերակներ: Microsoft-ը վաճառեց BASIC-ի մի քանի տարբերակներ MS-DOS/PC-DOS-ի համար, այդ թվում՝ BASICA, GWBASIC և Quick BASIC (QBASIC): Borland-ը թողարկեց Turbo BASIC 1.0 1985-ին (դրա իրավահաջորդները հետագայում վաճառվեցին մեկ այլ ընկերության կողմից PowerBASIC անունով): Տնային համակարգիչների վրա հայտնվեցին տարբեր BASIC ընդլայնումներ, որոնք սովորաբար ներառում էին գրաֆիկայի, ձայնի, DOS հրամանների կատարման գործիքներ, ինչպես նաև կառուցվածքային ծրագրավորման գործիքներ: Որոշ այլ լեզուներ օգտագործեցին հայտնի BASIC շարահյուսությունը, որպես հիմք, որի վրա կառուցվեց բոլորովին այլ համակարգ (տես, օրինակ, GRASS): Այնուամենայնիվ, սկսած 80-ականների վերջից, նոր համակարգիչները դարձան շատ ավելի բարդ և ապահովեցին գործառույթներ (օրինակ՝ գրաֆիկական ինտերֆեյս), որոնք BASIC-ին այլևս հարմար չէին դարձնում ծրագրավորման համար: BASIC-ը սկսեց կորցնել իր դիրքերը, չնայած այն հանգամանքին, որ դրա տարբերակների հսկայական քանակությունը դեռ օգտագործվում և վաճառվում էր: BASIC-ը երկրորդ կյանք ստացավ Microsoft-ի Visual Basic-ի գալուստով: Այն դարձել է Microsoft Windows պլատֆորմի ամենաշատ օգտագործվող լեզուներից մեկը: Ավելի ուշ ստեղծվեց WordBasic կոչվող տարբերակը, որն օգտագործվում էր MS Word-ում մինչև Word 97-ը: Visual Basic for Applications (VBA) տարբերակը ներկառուցվել է Excel 5.0-ում 1993-ին, այնուհետև Access 95-ում 1995-ին, այնուհետև բոլոր մյուս գործիքներում: Office փաթեթում - 1997 թ. Internet Explorer 3.0 և ավելի բարձր, ինչպես նաև Microsoft Outlook-ը ներառում էր VBScript լեզվի թարգմանիչ: OpenOffice.org փաթեթի ամբողջական տարբերակը ներառում է նաև BASIC թարգմանիչ:

Բարև, աշխարհ: Օրինակ QBasic 1.1, QuickBasic 4.50

ՏՊԱԳՐԵԼ " Բարեւ Ձեզ , Աշխարհ !"

Գործոնային. Օրինակ՝ QBasic 1.1, QuickBasic 4.50

Օգտագործվում է ֆակտորիլի կրկնվող սահմանումը: 13-ը հաշվարկելիս! տեղի է ունենում թվաբանական արտահոսք, և այստեղ տարբեր իրականացումների վարքագիծը տարբերվում է. QBasic-ը հաղորդում է արտահոսք, մինչդեռ QuickBasic-ը պարզապես տպում է բացասական արժեքներ: Բացի այդ, PRINT հրամանը լռելյայնորեն տպում է մեկ տարածություն թվից առաջ և հետո:

DIM f AS LONG f = 1 PRINT "0 !="; f FOR i = 1-ից 16:

f = f*i:

PRINTi; "!="; զ

ՊԱՇՏՈՆԱԿԱՆ ԼԵԶՈՒ- արհեստական ​​նշանների համակարգ, որը նախատեսված է ինչ-որ տեսություն ներկայացնելու համար: Պաշտոնականացված լեզուն տարբերվում է մարդկային հաղորդակցության և մտածողության բնական (ազգային) լեզուներից, արհեստական ​​լեզուներից, ինչպիսիք են էսպերանտոները, գիտության «տեխնիկական» լեզուներից, որոնք միավորում են բնականի որոշակի մասի միջոցները։ լեզու համապատասխան գիտական ​​նշաններով (քիմիական լեզու, սովորական մաթեմատիկայի լեզու և այլն), սկսած ալգորիթմական լեզու ընդհանուր ծրագրավորման տեսակը և այլն: առաջին հերթին նրանով, որ նրա խնդիրն է ծառայել որպես որոշակի տրամաբանական բովանդակության ամրագրման (ֆորմալացման) միջոց, որը թույլ է տալիս ներմուծել տրամաբանական հետևանքի հարաբերությունը և ապացուցելիության հայեցակարգը (կամ դրանց անալոգները): Պատմականորեն առաջին ֆորմալացված լեզուն եղել է սիլլոգիստիկ Արիստոտել, իրականացվել է ստանդարտացված բնական (հունարեն) լեզվական հատվածի միջոցով։ Ֆորմալացված լեզվի ընդհանուր գաղափարը ձևակերպել է Լայբնիցը (characteristica universalis), ով նախատեսել է դրա ընդլայնումը դեպի «եզրակացությունների հաշվարկ»՝ calculus ratiocinator: Ժամանակակից ժամանակներում ֆորմալացված լեզուների տարբեր տարբերակներ մշակվել են տրամաբանության և հանրահաշվի անալոգիայի հիման վրա: Այստեղ նշաձողը աշխատանքն էր Մորգանա , Բուլ և նրանց հետևորդները, հատկապես Շրյոդեր և Պորեցկի . Ժամանակակից ֆորմալացված լեզուները՝ իրենց ամենատարածված ձևերով, վերադառնում են աշխատանքի: Ֆրեգե «Begriffsschrift» - «Արձանագրություն հասկացություններում» (1879), որտեղից բխում է դրույթային տրամաբանության լեզվի զարգացման հիմնական գիծը և (այն ընդգրկելով) (բազմաթիվ) պրեդիկատների տրամաբանությունը, ինչպես նաև այդ տրամաբանական լեզվական միջոցների կիրառումը. մաթեմատիկայի հիմնավորման խնդիրներին։

Նման ֆորմալացված լեզուների բնորոշ կառուցվածքը՝ սկզբնական նշանների այբուբենի նշանակումը, լեզվի (լավ ձևավորված) բանաձևի ինդուկտիվ սահմանումը, այսպես կոչված. ձեւավորման կանոնների սահմանումը, եզրակացության կանոնների սահմանումը, այսպես կոչված. փոխակերպման կանոններ, որոնք պահպանում են բանաձևերի ընտրված տրամաբանական բնութագիրը (ճշմարտություն, ապացուցելիություն և այլն): Փոխակերպման կանոնների ավելացումը ֆորմալացված լեզուն վերածում է տրամաբանական հաշվարկի: Կան ֆորմալացված լեզուների բազմաթիվ տեսակներ. դրանք առաջին հերթին դեդուկտիվ-աքսիոմատիկ կոնստրուկցիաների լեզուներ են, բնական («բնական») եզրակացությունների և հաջորդական կառուցումների համակարգեր, վերլուծական աղյուսակներ, «փաստարկային տրամաբանություն» համակարգեր և շատ ուրիշներ:

Ֆորմալացված լեզուները տարբերվում են իրենց տրամաբանական ուժով՝ «դասական» լեզուներից (որոնցում գործում են ինքնության, հակասության և բացառված միջինի արիստոտելյան օրենքները, ինչպես նաև տրամաբանական երկիմաստության սկզբունքը) և ավարտվում են բազմաթիվ լեզուներով։ ոչ դասական տրամաբանությունների, որոնք թույլ են տալիս թուլացնել որոշակի սկզբունքներ, ներմուծում են բանաձևերի կամ դրանց ձևերի գնահատման բազմիմաստությունը։ Մշակվել են լեզուներ, որոնցում այս կամ այն ​​իմաստով նվազագույնի են հասցվում տրամաբանական միջոցները։ Այդպիսին են նվազագույն և դրական տրամաբանության լեզուները կամ առաջարկական տրամաբանության լեզուն, որն օգտագործում է, օրինակ, մեկ տրամաբանական գործողություն: Շեֆերի կաթվածը (տես Տրամաբանական կապեր ).

Ֆորմալացված լեզուները սովորաբար բնութագրվում են շարահյուսական և իմաստային առումով: Բայց ամենաէականը նրա բանաձեւերի այդ տրամաբանական հատկանիշն է, որը պահպանվում է եզրակացության կանոններով (ճշմարտություն, ապացուցելիություն, ստուգելիություն, հավանականություն և այլն)։ Ցանկացած ֆորմալացված լեզվի համար հիմնարար խնդիրներն են դրանում արտահայտված տրամաբանության ամբողջականությունը, դրա վճռականությունն ու հետևողականությունը. օրինակ՝ դասականի լեզուն առաջարկային տրամաբանություն ամբողջական, լուծելի և հետևողական և դասական պրեդիկատային տրամաբանություն (բազմաթիվ) թեև ամբողջական, բայց անլուծելի; Ընդլայնված պրեդիկատային հաշվարկի լեզուն՝ ըստ պրեդիկատների քանակականների և աբստրակցիայի սկզբունքի անսահմանափակ կիրառման, հակասական է (այդպիսին էր Ֆրեգեի տրամաբանական-թվաբանական համակարգը, որում Ռասելը հայտնաբերեց իր անվան հականոմինիան)։

Պաշտոնականացված լեզուն կարող է լինել «մաքուր ձև», այսինքն. ոչ մի արտալոգական տեղեկատվություն չտանել. եթե այն կրում է, ապա այն դառնում է կիրառական ֆորմալացված լեզու, որի առանձնահատկությունը հաստատուն պրեդիկատների և տերմինների (նկարագրությունների) առկայությունն է, օրինակ. թվաբանություն - արտացոլում է կիրառման տարածքի հատկությունները: Վերացականության բարձր մակարդակի տեսությունները պաշտոնականացնելու համար ֆորմալացված լեզուն կարող է փոփոխվել, ընդլայնվել կամ «կառուցվել» տարբեր ձևերով. Օրինակ՝ դասական հաշվարկի ձևակերպում որպես երկրորդ կարգի թվաբանություն (այսինքն՝ քանակականներով՝ նախադրյալ փոփոխականների վրա): Մի շարք դեպքերում ֆորմալացված լեզուն պարունակում է բազմաթիվ, նույնիսկ անսահման շատ կարգերի տրամաբանական կառուցվածքներ (օրինակ, օրինակ, Ա. «հնարավոր աշխարհների» հիերարխիայի մասին): Տրամաբանության ֆորմալացված լեզվի իմաստային հիմքը կարող է լինել բազմատեսական, հանրահաշվական, հավանականական, խաղի տեսական և այլն: Կարող են լինել նաև նրա այնպիսի «թուլացումներ», որոնք նման են միայն հավանականական իմաստաբանությանը. այսպես, օրինակ. առաջանում է «անորոշ տրամաբանության» ֆորմալացված լեզու (զադեի իմաստով): Այնուհետև լեզուն ձեռք է բերում կոնկրետ պրագմատիկա՝ հաշվի առնելով մայրենիի գործոնը (առարկայի «պատկանելիության» գնահատական ​​տալով այս հասկացության շրջանակին): Հենց այստեղ է դրսևորվում ֆորմալացված լեզուներում «մարդկային գործոնը» այս կամ այն ​​ձևով հաշվի առնելու այժմ աճող միտումը, որն ակնհայտորեն դրսևորվում է քվանտային մեխանիկայի տրամաբանության որոշ ֆորմալացված լեզուներում։ Մեկ այլ ուղղությամբ կա ֆորմալացված լեզուների զարգացում, որոնց իմաստաբանությունը ենթադրում է էքզիստենցիալ ենթադրությունների կամ որոշակի գոյաբանական նախադրյալների մերժում՝ անսահման թվով նախադրյալներով կանոնների ընդունելիություն, առարկայական ոլորտների «բազմատեսակ»՝ նույնիսկ հակասական։ դրանք և այլն:

Ֆորմալացված լեզվի անփոխարինելի հատկանիշը եզրակացության կանոնների «հնարավորության» մեկնաբանությունն է. օրինակ՝ որոշակի քայլում մենք ազատ ենք օգտագործել կամ չօգտագործել, ասենք, modus ponens կանոնը։ Այս հատկանիշը զրկված է ալգորիթմական լեզուներից, որոնք ունեն «նախորդագրող» բնույթ։ Բայց համակարգչային տրամաբանության զարգացմամբ և «նկարագրող» տիպի ծրագրերի մշակմամբ այս տարբերությունը սկսում է հարթվել։ Նույն ուղղությամբ է գործում նաև ֆորմալացված լեզուների զարգացումը, որը կենտրոնացած է էվրիստիկական խնդիրների լուծման վրա:

Գրականություն:

1. Եկեղեցու Ա.Մաթեմատիկական տրամաբանության ներածություն, հատոր 1. Մ., 1960;

2. Քլին Ս.Կ.Մետամաթեմատիկական ներածություն. Մ., 1957;

3. Քարի Հ.Մաթեմատիկական տրամաբանության հիմքերը. Մ., 1969;

4. Ֆրոյդենտալ Հ.Տրամաբանության լեզուն. Մ., 1969;

5. Սմիրնովա Է.Դ.Ֆորմալացված լեզուներ և տրամաբանական իմաստաբանության խնդիրներ: Մ., 1982: