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

|  |
| --- |
| Программалау |
|  |
|  |
| Алдағы | псевдокод[d] |
| Продукция | компьютер программаһы[d] |
| Социаль селтәрҙә күҙәтеүселәр | 5 427 662 һәм 515 599 |
| WordLift URL | data.thenextweb.com/tnw/… |
| ‎Lemmy instance URL | programming.dev |
| CIP коды | 11.02 |
| MCC | 7372 |
| Өлөшләтә тура килә | разработка программного обеспечения[d] |
|  Программалау Викимилектә |

**Программалау** (программа яҙыу) — компьютер программаларын эшләү процесы.
Программалау (программа яҙыу) телдәренә нигеҙ һалыусыларҙың береһе Никлаус Вирт фекеренсә: «Программалар = алгоритмдар + бирелмәләр структураһы».

Программалау программа яҙыу телдәрендә программаларҙың сығанаҡ текстарын яҙыуға ҡоролған.

## Тарих

Шулай уҡ ҡарағыҙ: История языков программирования

Коммутационная панель суммирующей машины IBM 402
Беҙҙең эраға тиклем 205 йыл (150 год до н. э.) — Боронғо Грециялағы антикитер механизмы тип аталған төрлө ҙурлыҡтағы һәм рәүештәге шестернялар ҡуйылған калькулятор, хәҙерге заманда ла Ай һәм Ҡояш календарында ҡулланылған Метон циклын иҫәпләү өсөн эшләнгән.

1206 йыл— Аль-Джазари программаланған автомат-гуманоид эшләй.
1804 йыл — Жозеф Мари Жаккар жаккард туҡыу станогын уйлап сығара. Уның станогында префокарталар ярҙамында төрлө биҙәктәр төшөрөп туҡырға була. Был туҡыу сәнәғәтендә революция була.
1843 йылдың 19 июле— Чарлз Бэббидж тәүге «Аналитик машина» эшләй, уны ҡайһы берәүҙәр беренсе программаланған хисаплау ҡоролмаһы ла тип атай .

19 июль, 1843 йыл — графиня Ада Августа Лавлейс, инглиз шағиры Джордж Байрон ҡыҙы, Аналитик машина өсөн донъялағы тәүге программаны яҙа. Был программа аҡҡан шыйыҡсала энергия һаҡланыуы законына ҡағылышлы Бернулли тигеҙләмәһен сисә. Үҙенең берҙән-бер фәнни хеҙмәтендә Ада Лавлейс бик күп мәсьәләрҙе яҡтырта.

1954—1957 йылдарҙа Джон Бакус етәкселегендә IBM хеҙмәткәрҙәре тәүге киң билдәле Fortran (Фортран) программалау телен эшләп сығара. Уларҙң эшенә таянмаған Джон Маккарти (Массачусетс технология институты) Lisp программалау телен эшләй (лямбда-хисаплауға нигеҙләнгән).

## Программа яҙыу телдәре

Программистар эшенең күп өлөшө программа яҙыу телдәренең береһендә сығанаҡ код яҙыуҙан, тестлауҙан һәм программаны көйләүҙән тора. Программаларҙың сығанаҡ текстары һәм башҡарыусы файлдары автор хоҡуғы объекттары була һәм авторҙарының һәм хоҡуҡ эйәләренең интеллектуаль милке булып тора.
Программа яҙыуҙың төрлө телдәре программа яҙыуҙың төрлө стилдәрендә эшләүгә яраҡлаштырыла (программа яҙыу парадигмалары). Алгоритмдың ҡайһы бер өлөштәре өсөн программа яҙыу телен һайлау программа яҙыу ваҡытын ҡыҫҡарта һәм алгоритмды һүрәтләү мәсьәләһен һөҙөмтәлерәк сисергә мөмкинлек бирә. Төрлө телдәр программистан алгоритмды тормошҡа ашырыуҙа деталдәргә төрлө кимәлдәге иғтибар талап итә, бының һөҙөмтәһе — ябайлыҡ менән етештереүсәнлек араһында компромисс (йә иһә *программист ваҡыты* менән *файҙаланыусы ваҡыты* араһында).

ЭВМ тик *машина теле* (йәки  *машина коды* һәм  *машина командалары теле*) менән эш итә. Башта бөтә программалар ҙа машина кодында яҙылған, ләкин хәҙер улай түгел. Хәҙер программистар ниндәй ҙә булһа программа яҙыу телендә сығанаҡ код яҙа, шунан уны, компилятор ҡулланып, бер йәки бер нисә этапта маҡсатлы процессорҙа ҡулланыу әҙерлегенә еткереп машина кодына йәки махсус интерпретатор (виртуаль машина) үтәй алған арауыҡ күренешкә ебәрәләр (трансляциялайҙар). Был тик юғары кимәлдәге компьютер программалары яҙыу телдәренә генә ҡағыла. Әгәр система өҫтөнән машина командалары һәм айырым хәтер күҙәнәктәре кимәлендә түбән кимәлдәге тулы контроль кәрәкһә, программаларҙы *ассемблер* телендә яҙалар. Был телдең мнемоник инструкциялары ЭВМ-дың маҡсатлы процессорының машина теле инструкцияларына ярашлы итеп бермә-бер үҙгәртелә (шул сәбәпле ассемблер телдәренән трансляторҙар алгоритмдар яғынан иң ябай транслятор булып тора).

Ҡайһы бер телдәрҙә машина коды урынына интерпретацияланыусы икеле «виртуаль машина» коды, йәғни *байт-код* (*byte-code*) генерациялана. Ул Forth'та, Lisp, Java, Perl, Python'дың айырым ғәмәлләшеүҙәрендә һәм .NET Framework өсөн телдәрҙә ҡулланыла.

Java телендәге код фрагментының vim текст редакторындағы скриншоты; синтаксисты яҡтыртыуы, Unicode'ты ҡулланыуы, фолдингы күренә
## Инструменттар

Программалау мөхите текст редакторының махсус функциялары булыуы мөмкин- исемдәр индекслау, документтарҙы күрһәтеү, синтаксисты яҡтыртыу, ҡулланыусы интерфейсын визуаль яһау. Программалау теле сығанаҡ кодтың синтаксисын һәм башланғыс семантикаһын билдәләй.

Хәҙерге ваҡытта программалау ваҡытында эштәрҙең интеграцияланған мөхиттәре ҡулланыла, улар иҫәбенә
, ғәҙәттә ошолар инә:

* программалар текстын индереү һәм редакторлау өсөн код редакторы;
* йүнәтеү өсөн йүнәтеүсе ( хаталарҙы эҙләү һәм бөтөрөү өсөн);
* транслятор - программа тексын машина төшөнсәһенә әйләндереү өсөн;
* йыйыусы (компоновщик) - бер нисә модулдән программа йыйыусы;
* башҡа эш өсөн кәрәкле модулдәр һәм инструменттар.

## Иҫкәрмәләр

## Әҙәбиәт

* *Китов А. И.* «Электронные цифровые машины» М.:, Издательство «Советское радио», 1956, 276 с.
* *Китов А. И., Криницкий Н. А., Комолов П. Н.* «Элементы программирования» (для электронных вычислительных машин). Под редакцией А. И. Китова. Издательство Артиллерийской инженерной академии, М.:, 1956, 286 с.
* *Китов А. И., Криницкий Н. А.* «Электронные цифровые машины и программирование» М.:, Издательство «ФИЗМАТГИЗ», 1959 (второе издание в 1961 г.), 572 с.
* *Дейкстра Э.* Дисциплина программирования = A discipline of programming. — 1-е изд. — М.: Мир, 1978. — 275 с.
* *Бьярне Страуструп.* Программирование: принципы и практика использования C++, исправленное издание = Programming: Principles and Practice Using C++. — М.: Вильямс, 2011. — С. 1248. — ISBN 978-5-8459-1705-8.
* *Александр Степанов, Пол Мак-Джонс.* Начала программирования = Elements of Programming. — М.: Вильямс, 2011. — С. 272. — ISBN 978-5-8459-1708-9.
* *Роберт У. Себеста.* Основные концепции языков программирования / Пер. с англ. — 5-е изд. — М.: Вильямс, 2001. — 672 с. — ISBN 5-8459-0192-8 (рус.) ISBN 0-201-75295-6 (англ.).
* *Иан Соммервилл.* Инженерия программного обеспечения / Пер. с англ. — 6-е издание. — М.: Вильямс, 2002. — 624 с.
* *Иан Грэхем.* Объектно-ориентированные методы. Принципы и практика / Пер. с англ. — 3-е изд. — М.: Вильямс, 2004. — 880 с.
* *Дональд Кнут.* Искусство программирования. В четырёх томах / Пер. с англ. — М.: Вильямс, 2001 − 2013.
* *Долгов В. А.* Китов Анатолий Иванович — пионер кибернетики, информатики и автоматизированных систем управления */ М.:, Минобрнауки, КОС-ИНФ, 2010. 337 с.*(

## Һылтанмалар

* *Программирование* Open Directory Project (dmoz) һылтанмалар каталогында.