С-- (ծրագրավորման լեզու)

Վիքիպեդիայից՝ ազատ հանրագիտարանից

C-- (արտասանվում է «C մինուս մինուս») C- ի նման ծրագրավորման լեզու է։ Լեզվի ստեղծողները ՝ ֆունկցիոնալ ծրագրավորման հետազոտողներ Սայմոն Փեյթոն Ջոնսը և Նորման Ռեմսին, նախագծել են, որ այն ստեղծվի հիմնականում շատ բարձր մակարդակի լեզուների կոմպիլյատորների կողմից, այլ ոչ թե գրվի ծրագրավորողների կողմից։ Ի տարբերություն շատ այլ միջանկյալ լեզուների, դրա ներկայացումը պարզ ASCII տեքստ է, այլ ոչ թե բայթկոդ կամ այլ երկուական ձևաչափ։

Դիզայնը[խմբագրել | խմբագրել կոդը]

«C--»- ը «շարժական ասսեմբլեր լեզու է», որը նախատեսված է բարձր կարգի մեքենայական կոդ արտադրող կոմպիլյատորների գործարկումը հեշտացնելու համար։ Լեզվի շարահյուսությունը հիմնականում փոխառվում է C- ից ՝ միաժամանակ չներառելով կամ փոփոխելով С լեզվի ստանդարտ առանձնահատկությունները և C լեզվի տիպի համակարգի ասպեկտները, քանի որ դրանք խոչընդոտում են «C--»-ի հիմնական հատկանիշներին և կոդավորման հեշտությանը։

Լեզվի անունը ցույց է տալիս, որ «C--»-ը C- ի կրճատված ձևն է, այնպես ինչպես «C ++»-ը C- ի ընդլայնված ձևն է (-- նշանակում է «նվազում», իսկ ++ «ավելացում»)։

«C--»-ի վրա աշխատանքը սկսվել է 1990-ականների վերջին։ Լեզվի առաջին տարբերակը թողարկվել է 1998 թվականի ապրիլին։ 1999 թվականի մայիսին HTML ձևով տեղադրվեց վերանայված ձեռնարկ[1]։ 2000 թվականին Նորման Ռեմսիի («Առաջարկվող փոփոխություններ») և Քրիստիան Լինդիգի («Նոր քերականություն») կողմից առաջարկված փոփոխությունների արդյունքում ստացվեց «C--»-ի 2-րդ տարբերակը, որը վերջնական տեսքի բերվեց 2004 թվականին և պաշտոնապես թողարկվեց 2005 թվականին[2]։

Տիպային համակարգը[խմբագրել | խմբագրել կոդը]

Ռեգիստրում կամ հիշողության մեջ պահվող արժեքը կարող է ունենալ միայն մեկ տեսակ `բիթերի զանգված։ Այնուամենայնիվ, բիթերի զանգվածը պոլիմորֆ տեսակ է, որը լինում է տարբեր մեծությամբ, օրինակ. bits8, bits32 կամ bits64: 32 կամ 64 բիթանոց «floating-point» տիպերը ներառված են։ Բացի բիթ-վեկտորի տեսակից, «C--»- ն ապահովում է բուլյան տիպը (bool), որը կարելի է հաշվարկել արտահայտություններով և օգտագործել կառավարման հոսքի համար (control flow), բայց չի կարող պահվել ռեգիստրում կամ հիշողության մեջ։

«C--» 2-րդ տարբերակում չկա տարբերություն բիթերի զանգվածի և «floating-point»-ի միջև։ Այս տեսակները կարող են նշվել լարային «բարի» պիտակով ՝ ի թիվս այլ բաների, տարբերելու համար փոփոխականի ամբողջը ընդդեմ բոց մուտքագրումը և դրա պահպանման պահվածքը (գլոբալ կամ տեղական)։ Առաջինն օգտակար է այն թիրախների վրա, որոնք ունեն առանձին գրանցիչներ ամբողջ և լողացող կետերի արժեքների համար։ Ներկայացվեցին ցուցիչների և մայրենի բառերի հատուկ տեսակներ, չնայած դրանք քարտեզագրված են թիրախից կախված երկարությամբ բիթ-վեկտորի վրա։

C– ի որոշ ծրագրավորողներ, այդ թվում ՝ Սայմոն Փեյթոն Ջոնսը, Ջոաո Դիասը և Նորման Ռեմսին, աշխատել են GHC–ի վրա, որի զարգացումը հանգեցրել է C-- լեզվի ընդլայնումների ՝ կազմելով Cmm դիալեկտը[3]։

Ծանոթագրություններ[խմբագրել | խմբագրել կոդը]

  1. www.cs.tufts.edu https://www.cs.tufts.edu/~nr/c--/extern/manual.html. Վերցված է 2021 թ․ հոկտեմբերի 16-ին. {{cite web}}: Missing or empty |title= (օգնություն)
  2. https://www.cs.tufts.edu/~nr/c--/extern/man2.pdf. {{cite book}}: External link in |title= (օգնություն)
  3. https://takenobu-hs.github.io/downloads/haskell_ghc_illustrated.pdf. {{cite book}}: External link in |title= (օգնություն)