# Программалау теле

Программалау теле — санак өчен программалар язу өчен формаль тамгалар системасы. Программалау теле, программаның тышкы кыяфәтен һәм башкаручы (гадәттә санак) үтәргә тиеш гамәлләрне билгеләүче, лексика, синтаксис и семантика кагыйләләрен билгели. MKT (урысча ЯМК — язык машинных команд) программаларында бирелмәләр — санак хәтерендәге юлламаларны, үтәлүче ысулларны санлы кодлар аша тамгаланган. Программа биремнәренең һәм бирелмәләрнең ЭХМ хәтерендә ничек урнашуын программачы үзе кайгыртырга тиеш булган. Хәзерге чорда программачылар алай эшләмиләр. Бүгенге санакларда өчен программалау системалары (ПС) кулланыла. Санакның программа белән тәэмин ителеше өч кисәккә бүленә:
* системалы программа белән тәэмин ителеш
* гамәли программа белән тәэмин ителеш
* программалау системалары
Программалау системасы санак белән идарә итү программаларын төзү өчен билгеләнгән.
Программалау теле санак командалары теленнән югарырак дәрәҗәдәге телләрдә язылган программаларны санакта башкарырга мөмкинлек бирә.
Программалау теленең дәрәҗәсе санак эшкәрткече (урысча процессор) теленнән арынып, кеше теленә, предмет өлкәсенең (бигрәк тә математиканың) формаль теленә якынлашу дәрәҗәсе белән бәйләнгән. Дәрәҗә югарырак булган саен, ул санактан ераграк, ә кешегә якынрак тора.
Иң түбән дәрәҗәдәге тел — Санак биремнәре теле. Санак биремнәре телләреннән аерылучы Автокодлар дип аталган тәүге программалау телләре беренче буын санакларда барлыкка килә.

# Программалау теле
## Программалау телләренең дәрәҗәләре

Автокод — символик программалауның санакка яраклашкан теле.
Автокодтагы бер бирем бер санак биременә туры килә. Автокодта эшләүче программачы хәтерне программа һәм зурлыклар буенча билгеләүдән азат ителә; аңа «күзәнәк юллары» белән эшләргә кирәкми. Үзгәрешле зурлыклар һәм санлы константалар математикадагыча ук, ә операция кодлары санлы тамгалар аша күрсәтелә.
Өченче буын компьютерларда мондый тип телләрне Ассемблер теле дип йөртә башлыйлар. Хәзерге көндә Ассемблерда бик сирәк программалыйлар. Моны, кагыйдә буларак, система программачылары эшли.
ЮДПТ — югары дәрәҗәдәге программалау теленең кыскартылган исеме. Бүгенге көндә күпчелек программачылар нәкъ менә шул телләрдә эшлиләр. Иң күп таралыш алган телләр булып СИ, C++, Java, PHP, Фортран, Паскаль һ. б. телләре тора.
Автокод, Паскаль, Фортран һәм башка телләрне машина теленә күчерүче программа-тәрҗемәчеләр трансляторлар дип атала. Шулай итеп санак, программа-тәрҗемәче идарәсе астында, тәрҗемәне үзе үк эшли. Программаларны машина командалары теленә күчерү эше трансляцияләү дип атала. Мисал өчен, Паскальдәге программаны үтәү өчен, иң элек аны трансляцияләргә кирәк.
Транслятор теләсә кайсы программалау системасының мәҗбүри элементы булып тора. Беренче программалау системалары үз эченә бары тик трансляторларны гына алганнар. Аннары трансляторларга төрле сервис чаралары: текст редакторлары, программа китапханәләренә хезмәт күрсәтү системалары, кулланучы белән дустанә интерфейс оештыру чаралары өстәлә башлый . Кулланучы өчен снак булдырылган программалау системалары иң уңайлысы санала.
Программалау системасы файдалана торган программалау телен аның керу теле дип атыйлар. Программалау системасы керүтеленең исеме буенча атап йөртелә. Мәсәлән: «Бейсик системасы», «Паскаль системасы », «Фортран системасы».
Югары баскычтагы телләргә караганда, Автокод-Ассемблердан компиляцияләү, әлбәттә, күпкә җиңелрәк. Бу процедура өчен еш кына ассемблирлау дигән махсус термин кулланыла. Ә «Ассемблер» сүзеннән программалау теле генә түгел, транслятор да аңлашыла.
Программаның эше дәвамында интерпретатор эчке хәтердә тора. Эш хәтерендә ЮДПТдагы программа урнаша. Интерпретатор аның беренче операторын «укый», аны компьютер командаларына күчерә һәм шул командаларны үтәүне оештыра. Аннан соң чираттагы кабул итүче тәрҗемә итәргә һәм башкарырга керешә һәм программаның ахырына кадәр шулай дәвам итә. Алдагы тәрҗемәләрнең нәтиҗәләре хәтердә сакланмау сәбәпле, циклдагы бер үк операторны башкаруны кабатлаганда, ул кабат трансляцияләнә, һәр операторны трансляцияләү алдыннан ана синтаксик тәхлил ясала.

# Программалау теле
## Программалау теленең тарихы

50 нче елларда барлыкка килгән югары дәрәҗәдәге иң беренче популяр телләр булып Фортран, Кобол (АКШта) һәм Алгол (Европа) телләре санала. Фортран һәм Алгол — математик исәпләүләр өчен булса, Кобол икътисади мәсьәләләрне программалау өчен кулланыла. Беренче программалау телләренең төп үзенчәлеге — аларның предметка бәйле ориентлашуы. Бу — һәрбер тел нинди дә булса билгеле бер класска кергән мәсьәләләрне чишү өчен билгеләнә дигән сүз.
60—70 елларда күп төрле телләр барлыкка килә. ЭХМ тари¬хында аларның саны меңнәр белән исәпләнә. Ләкин вакытлар узу белән аларның бик азы гына кулланышта кала.
1965 ел да Дартмут университетында (АКШ) Бейсик теле иҗат ителә. Авторлар фикеренчә, бу — җиңел үзләштерелә торган, кат¬лаулы булмаган исәпләү мәсьәләләрен программалауга корылган гади тел. Бейсик микрокомпьютерлар һәм персональ компьютерлар өчен программалауда иң киң таралган тел булып тора. Көнкүреш һәм мәктәп компьютерларының кайбер модельләрендә бары тик Бейсик телендә генә программалау мөмкин.
Өченче буын компьютерлары чорында IBM фирмасы тарафыннан эшләнгән PL/1 (Program Language/1) теле киң тарала. Бу тел беренче булып универсальлеккә, ягъни теләсә нинди мәсьәлә¬ләрне чишәргә — исәпләү мәсьәләләрен чишәргә, текстларны эш¬кәртергә, мәгълүматларны тупларга һәм эзләргә — омтыла. PL/1 бик катлаулы тел булып чыга һәм шуңа күрә алдагы буын компью¬терларда кулланылмый. Ләкин телләрне универсальләштеру дәвам ителә. Иске телләр Алгол-68, Фортран-77 универсаль вариантларына модернизацияләнә.
1971 елда Паскаль теленең барлыкка килүе программалау телләре тарихында зур вакыйга булып санала. Алгол, PL/1 телләре нигезендә эшләнгән бу телне Швейцария профессоры Никлаус Вирт структуралы программалауга өйрәтү теле буларак иҗат итә.
Паскаль теле персональ компьютерларга бәйле рәвенхтә уңыш казана. Borland International, Inc. (АКШ) ПК өчен Турбо-Паскаль программалау системасын эшли. Хәзер инде Турбо-Паскаль универсаль мөмкинлекләре булган профессиональ программалау теле булып санала. Өстен сыйфатларга ия булуы сәбәпле, Паскаль Ада (программалау теле)Ада, Си, Модула-2 һ.б. бик күп хәзерге көн программалау телләре өчен чишмә башы булып тора.СИ программалау теле операцион системаларны, трансляторлар, бирелмәләр базалары һ.б. системалы һәм гамәли программаларны " эшләү өчен уйлап табыла.
СИ теленә, Паскальдән аермалы буларак, санакның Н.Вирт тарафыннан тәкъдим ителгән Модула-2 — Паскаль телен үстерүче һәм зур программаларны эшли торган чаралардан торучы тел. Киләсе, бишенче буын компьютерларын «ясалма интеллект» машиналары дип атыйлар. Бу санаклар өчен телләр прототиплары күптән уйлап табылды. Алар — ЛИСП һәм Пролог телләре.
1965 елда барлыкка килгән ЛИСП телендә төп төшенчә булып рекурсив рәвештә билгеләнгән функцияләр тора. Теләсә кайсы алгоритмның рекурсив функцияләр җыелмасы ярдәмендә тасвирлануы белгечләр тарафыннан исбат ителгән. Шуңа күрә дә ЛИСП күпкырлы тел булып санала. Аның ярдәмендә санакта җитәрлек дәрәҗәдәге катлаулы процессларны, шул исәптән кешенең интеллектуаль эшчәнлеген дә модельләштерергә мөмкин.
Пролог теле 1972 елда Франциядә шулай ук «ясалма интеллект» мәсьәләләрен чишү өчен эшләнә. Бу тел белән сез бераз таныш инде. Пролог төрле карарларны, фикерләү логикасын формаль рәвеш тә сурәтләргә мөмкинлек бирә. Компьютерны куелган сорауларга җа¬ваплар бирергә мәҗбүр итә. XX гасыр ахырында компьютерны программа белән тәэмин итү үсешендә объектлы-ориентлашкан якын килү әһәмиятле роль уйнады. «Җисем» сүзен бирел мәләрне һәм ал арны эшкәртү программаларын бербөтенгә берләштерү структурасы дип аңларга кирәк. Объектлы-ориентлашкан операцион системалар (мәсәлән, Windows), гамәли программалар, шулай ук объектлы-ориентлашкан программалау (ООП) системалары популярлаша.
ООП элементларын үз эченә алган беренче тел Симула-67 теле дип атала. Си теленең үсеше Си++ дип исемләнгән объектлы-ориентлашкан версиянең килеп чыгуына сәбәп була. 5.5 версиясеннән башлап, Турбо-Паскальдә дә ООП чаралары барлыкка килә. Соңгы вакытларда программалау технологиясендә яңа юнәлеш — визуаль программалау уйлап табылды. Windows буенча эшләүче визуаль программалау системалары барлыкка килде.

# Программалау теле
## Программалау телләрен стандартлаштыру

Программалау теленә, синтакс и семантиканы билгеләүче, спецификацияләр җыелмасы буларак карага була.
Күпчелек киң таралган телләр өчен халыкара стандартлар төзелгән. Махсус оешмалар даими рәвештә спецификацияләрне и формаль билгеләмәләрне яңартып һәм бастырып тора. Бу оешмалар кысаларында программалаштыру телләрен ясау һәм камилләштерү бара, телгә яңа конструкцияләр өстәү, киңәйтү мәсәләләре хәл ителә.