Кіріспе
Кодты немесе таңбалауды оқуды жеңілдету үшін пішімдеу
Әдемі басып шығару (prettyprinting) – мәтіндік файлдарға, мысалы, бастапқы кодқа, таңбалауға және ұқсас мазмұнға, әр түрлі стильдік пішімдеу ережелерін қолдану. Бұл пішімдеу ережелеріне іздерлеу стилін сақтау, бастапқы кодтың синтаксистік элементтерін бөліп көрсету үшін әртүрлі түстер мен шрифттерді пайдалану немесе мазмұнды адамдарға оқуға және түсінуге ыңғайлы ету үшін көлемін реттеу кіруі мүмкін. Бастапқы кодты әдемілеп басып шығаратын бағдарламаларды кейде код форматтаушылар немесе сәндеушілер деп атайды.
Математиканың әдемі үлгісі
Әдемі баспа, әдетте математикалық өрнектерді кәсіби басылымдардағыдай көрсетуді білдіреді. Мысалы, Maxima немесе Mathematica сияқты компьютерлік алгебра жүйелерінде жүйе "x ^ 2 + 3 * x" сияқты нәтижені осылай шығаруы мүмкін. Casio 9860 сериясы, HP 49/50 сериясы және HP Prime, TI 84 Plus, TI 89, TI Nspire, PrettyPt қосымшасы орнатылған TI 83 Plus немесе TI 84 Plus, сондай-ақ "MathPrint" функциясы қосылған операциялық жүйелер әдемі баспаны қолдайды. Бұған қоса, Casio FX ES сериясы (Natural Display), Sharp EL W сериясы (WriteView), HP SmartCalc 300s, TI 30XB және Numworks сияқты нүктелік матрицалы экраны бар көптеген жаңа ғылыми калькуляторлар да әдемі баспа мүмкіндігіне ие. Көптеген мәтіндік форматтау бағдарламалары да математикалық өрнектерді жасай алады: TeX бағдарламасы жоғары сапалы математикалық жиынтықтарды жасау үшін әзірленген.
Жақсы таңбалау және тегке негізделген код
Белгілеу тілінің мысалдарында әдемі басып шығару көбінесе тегтер мен жол мазмұнын ығыстырумен байланысты, бұл иерархияны және ұялауды көзбен анықтауға мүмкіндік береді. Тегге негізделген тілдердің синтаксистік құрылымы айтарлықтай өзгеше болмаса да, кіріспе, таңбалау тілінің интерпретациясына немесе оның сипаттайтын деректерге байланысты айтарлықтай өзгеріп, әртүрлі болуы мүмкін. MathML-де бос орын белгілері XML синтаксисының талаптарынан артық деректерді, мағынаны немесе синтаксисті білдірмейді. HTML-де тегтер арасындағы бос орын белгілері мәтін ретінде қарастырылады және талдау нәтижесіне мәтін түйіндері ретінде енгізіледі. MathML құжатына кеңінен кіріспе қолданылуы мүмкін болса да, HTML құжатын әдемі басып шығару кезінде мазмұнға немесе мазмұнды көрсететін тег элементтеріне жақын жерде қосымша мәтін түйіндерінің жаратылмауына немесе жойылмауына көз жеткізу үшін жеткілікті күтім қабылдануы керек. Бұл күрделілік айырмашылығы автоматтандырылған әдемі басып шығару операциясы үшін маңызды, себебі онда ерекше ережелер немесе шектен шығу жағдайлары қажет емес, MathML мысалындағыдай. HTML мысалында біркелкі стильге сәйкес келетін және әртүрлі мысалдарда қолданылуында тұрақты болатын тег элементтері мен мазмұнының әртүрлі үлгілерін есепке алу үшін бір-бірімен байланысты бірнеше прогрессивті алгоритмдер қажет болуы мүмкін, бұл таңбалаудан көрінеді. ts қолданба компоненті Pretty Diff құралы үшін HTML, XML және олармен байланысты технологияларды әдемілеу үшін пайдаланылады.
Бағдарламалау кодын пішімдеу
Бағдарламашылар бағдарламалау тілінің бастапқы кодын белгілі бір стильде форматтау үшін әртүрлі құралдарды жиі пайдаланады. Дұрыс код форматтау оны оқуды және түсінуді жеңілдетеді. Әртүрлі бағдарламашылар көбінесе әртүрлі форматтау стильдерін ұсынады, мысалы, кодты ығыстыру (indentation) және бос орынды қолдану, немесе жақшаларды (braces) орналастыру сияқты. Код форматтаушы немесе код ығыстырғыш бастапқы кодты бір формат стильінен екіншісіне түрлендіреді. Бұл бағдарламалау тілдерінің нақты синтаксисының арқасында салыстырмалы түрде оңай. Кодты әдемілеу – бұл бастапқы кодты құрамдас бөліктерге, мысалы, тапсырма операторларына, if блоктарына, циклдарға және т.б. (сонымен қатар басқару ағынына қараңыз) жіктеу және оларды пайдаланушы конфигурациялық файлда көрсеткендей форматтау процесі. Кодты әдемілеуге арналған бағдарламалар жеке қолданбалар түрінде де, мәтіндік редакторлар мен интеграцияланған орталарда да қолжетімді. Мысалы, Emacs-тің әртүрлі тіл режимдері код блоктарын тартымды және дұрыс ығыстыра алады.
Lisp әдемі-баспасы
Қалыпты әдемі басып шығарудың алғашқы мысалы – Билл Госпердің "GRINDEF" (яғни 'функцияны өңдеу') бағдарламасы (шамамен 1967 ж.), ол LISP бағдарламаларын форматтау үшін комбинаторлық іздеу және тармақтауды қолданды. Бағдарламаның алғашқы нұсқалары Lisp бағдарламасының орындалатын (тізімдік құрылым) түрімен жұмыс істеді және түрлі функциялардың арнайы мағыналарын ескермеді. Кейінірек жасалған нұсқаларда орындалмайтын түсініктемелерді қосу және оқылған макростарды кеңейтілмеген күйде сақтау үшін арнайы оқу талаптары енгізілді. Сонымен қатар, if сияқты арнайы функциялар үшін ерекше енгізу талаптары қолданылды. "Гринд" термині кейбір Lisp қауымдастықтарында әдемі басып шығарудың синонимі ретінде пайдаланылды.
Жобаның стилі ережелері
Көптеген ашық кодты жобалар кодты форматтау ережелерін қалыптастырған. Ең көп таралғаны – GNU форматтау және BSD стилі. Екеуінің арасындағы басты айырмашылық – жақшалардың орналасуы: GNU стилінде ашылу және жабылу жақшалары жеке-жеке жолға жазылады, бірдей кіріспемен. BSD стилінде ашылу жақшасы алдыңғы жолдың соңында орналасады, ал жабылу жақшаларынан кейін else сөзі келе берілуі мүмкін. Кіріспе мөлшері мен бос орын орналасуы да өзгеше.