Зыходны код на мове Python.
**Зыходны код** (англ.: source code) або **зыходны тэкст** праграмы (гутарк. **зыходнік**) — тэкст камп’ютарнай праграмы, напісаны на якой-небудзь мове праграмавання або мове разметкі, які можа быць прачытаны чалавекам. Звычайна зыходны код праграмы знаходзіцца ў некалькіх тэкставых файлах. *Зыходны код* — гэта сукупнасць файлаў, якія можна з дапамогай адмысловай праграмы (кампілятара) пераўтварыць у машынны код, які можна выконваць на камп’ютары. Зыходны код некаторых моў праграмавання можна выконваць і без папярэдняй кампіляцыі, з дапамогай інтэрпрэтатара.

Прызначэнне
-----------

Зыходны код выкарыстоўваецца для стварэння аб'ектнага кода, або выконваецца інтэрпрэтатарам. Пры гэтым, калі ў праграму неабходна ўнесці змены, аб'ектны код амаль ніколі не змяняецца непасрэдна, як правіла, змяняюць зыходны код, які затым збіраюць з дапамогай кампілятара ў аб'ектны.

Таксама, зыходны код выконвае ролю апісання праграмы. Па тэксце праграмы можна ўзнавіць логіку яе паводзін. Каб палягчыць разуменне зыходнага кода звычайна карыстаюцца каментаваннем. Існуюць таксама адмысловыя інструменты, якія дазваляюць ствараць дакументацыю па зыходным кодзе — т.зв. генератары дакументацыі.

Акрамя таго, зыходны код мае шмат іншых дастасаванняў. Яго можна выкарыстоўваць у мэтах адукацыі; праграмістам-пачаткоўцам бывае карысна даследаваць існуючы зыходны код дзеля вывучэння тэхнікі праграмавання. Таксама, дзякуючы сваёй лаканічнасці і адназначнасці, код можа выкарыстоўвацца ў якасці своеасаблівай мовы зносін між вопытнымі праграмістамі.

Праграмісты часта пераносяць зыходны код (у выглядзе модуляў, у наяўным выглядзе або з адаптацыяй) з аднаго праекта ў іншы, што называецца паўторным выкарыстаннем кода.

Зыходны код — найважнейшы складнік працэсу пераносу праграмнага забеспячэння на іншыя платформы. Без зыходнага кода якой-небудзь часткі ПЗ перанос становіцца або занадта складаным, або ўвогуле немагчымым.

Арганізацыя
-----------

Зыходны код некаторай часткі ПЗ (модуля, кампанента) можа складацца з аднаго ці некалькіх файлаў. Код праграмы не абавязкова пішацца толькі на адной мове праграмавання. Напрыклад, часта праграмы, напісаныя на мове Сі, з мэтай аптымізацыі, утрымліваюць устаўкі кода на мове асэмблера. Таксама магчымы сітуацыі, калі некаторыя складнікі ці часткі праграмы напісаны на розных мовах, з наступнай зборкай у адзіны выканальны модуль пры дапамозе тэхналогіі, вядомай як кампаноўка бібліятэк (*library linking*).

Складанае праграмнае забеспячэнне пры зборцы патрабуе выкарыстання дзясяткаў, альбо нават соцень файлаў з зыходным кодам. У такіх выпадках для спрашчэння зборкі звычайна выкарыстоўваюцца файлы праектаў, якія ўтрымліваюць апісанні залежнасцей паміж файламі з зыходным кодам, і апісваюць працэс зборкі. Гэтыя файлы таксама могуць утрымліваць настройкі для кампілятара і асяроддзя праектавання. Для розных асяроддзяў праектавання могуць выкарыстоўвацца розныя файлы праекта, прычым у некаторых асяроддзях гэтыя файлы могуць быць у тэкставым фармаце, прыдатным для непасрэднай праўкі праграмістам з дапамогай звычайных тэкставых рэдактараў, у іншых асяроддзях падтрымліваюцца адмысловыя фарматы, а стварэнне і змяненне файлаў ажыццяўляюцца з дапамогай адмысловых праграм. Файлы праектаў звычайна ўключаюць у паняцце «зыходны код». У пераважнай большасці сучасных асяроддзяў праграмавання абавязкова выкарыстоўваюцца файлы праектаў незалежна ад складанасці астатняга зыходнага кода, які ўваходзіць у гэты праект. Часта пад зыходным кодам маюць на ўвазе і файлы рэсурсаў, якія ўтрымліваюць разнастайныя даныя, напрыклад, графічныя выявы, неабходныя для зборкі праграмы.

Дзеля спрашчэння работы з зыходным кодам і забеспячэння магчымасці сумеснай працы над кодам камандай праграмістаў, выкарыстоўваюцца сістэмы кіравання версіямі.

Якасць
------

У адрозненне ад чалавека, для камп'ютара няма «добра напісанага» або «кепска напісанага» кода. Але тое, як напісаны код, можа моцна ўплываць на працэс суправаджэння ПЗ. Пра якасць зыходнага кода можна меркаваць з наступных паказчыкаў:

* чытальнасць кода (у тым ліку наяўнасць каментарыяў да кода);
* лёгкасць у падтрымцы, тэсціраванні, адладцы і выпраўленні памылак, мадыфікацыі і пераносе;
* эканомнае ўжыванне рэсурсаў — памяці, працэсара, дыскавай прасторы;
* адсутнасць папярэджанняў, якія выводзяцца кампілятарам;
* адсутнасць «смецця» — зменных, якія не выкарыстоўваюцца, недасяжных блокаў кода, непатрэбных састарэлых каментарыяў і г. д;
* адпаведная апрацоўка памылак;
* пераноснасць — магчымасць выкарыстання апрацоўшчыка (кампілятара, інтэрпрэтатара, транслятара) розных версій, ці нават розных АС;
* магчымасць інтэрнацыяналізацыі інтэрфейса.

Літаратура
----------

* Тлумачальны слоўнік па інфарматыцы: / Мікола Савіцкі. Мінск: "Энцыклапедыкс". 2009. – 300 с. ISBN 978-985-6742-83-8
* Г.А. Расолька, Ю. А. Крэмень. Курс лекцый. Метады праграміравання. Частка 1. Мінск, БДУ, 2007