Pretty-Printing (или prettyprinting ) - это применение любого из различных стилистических соглашений форматирования к текстовые файлы, такие как исходный код, marku p и подобные типы контента. Эти соглашения о форматировании могут повлечь за собой соблюдение стиля отступа , использование другого цвета и шрифта для выделения синтаксических элементов исходного кода или изменение размера, чтобы люди могли читать контент, и пойми. Художественные принтеры для исходного кода иногда называют украшениями кода .
Красиво-печатное обычно относится к отображению математических выражений, аналогичных тому, как это было бы в профессиональном плане. Например, в системах компьютерной алгебры, таких как Maxima или Mathematica, система может записывать вывод как «x ^ 2 + 3 * x"как" ". Некоторые графические калькуляторы, например Casio 9860 series, HP-49 series, TI-84 Plus, TI- 89 и TI-Nspire, TI-83 Plus с надстройкой PrettyPt или TI-84 Plus с той же надстройкой -в ОС или ОС с поддержкой "MathPrint" могут выполнять красивую печать. Кроме того, ряд новейших научных калькуляторов оснащены матричными экранами, способными воспроизводить красивую печать, например Casio FX-ES series (Natural Display), (WriteView) и TI-30XB.
Многие программы форматирования текста может также набирать математику: TeX был разработан специально для высококачественного математического верстки.
Хорошая печать в экземплярах языка разметки обычно ассоциируется с отступом тегов и строкового содержимого для визуального определения иерархии и вложенности. Хотя синтаксические структуры языков на основе тегов существенно не различаются, отступы могут значительно отличаться из-за того, как интерпретируется язык разметки или из-за данных, которые он описывает.
В MathML, символы пробела не отражают данные, значение или синтаксис сверх того, что требуется синтаксисом XML. В HTML пробелы между тегами считаются текстом и анализируются как текстовые узлы в анализируемом результате. Хотя отступы могут быть широко применены к документу MathML, при красивой печати HTML-документа необходимо проявлять достаточную дополнительную осторожность, чтобы гарантировать, что дополнительные текстовые узлы не будут созданы или уничтожены в непосредственной близости от содержимого или элементов тегов, отражающих содержимое. Эта разница в сложности нетривиальна с точки зрения автоматизированной операции красивого вывода, где не требуются специальные правила или крайние случаи, как в более простом примере MathML. В примере HTML может потребоваться серия прогрессивных взаимосвязанных алгоритмов для учета различных шаблонов элементов тегов и контента, которые соответствуют единому стилю и согласованы в применении в различных экземплярах, о чем свидетельствует компонент приложения markup.ts, используемый для украшения HTML, XML и связанные технологии для инструмента Pretty Diff.
Программисты часто используют инструменты для форматирования исходного кода языка программирования определенным образом. Правильное форматирование кода упрощает чтение и понимание. Разные программисты часто предпочитают разные стили форматирования, такие как использование кода , отступ и пробелов или расположение скобок . Средство форматирования кода преобразует исходный код из одного стиля формата в другой. Это относительно просто из-за однозначного синтаксиса языков программирования. Усовершенствование кода включает в себя анализ исходного кода на компонентные структуры, такие как операторы присваивания, блоки if, циклы и т. Д. (См. Также поток управления ), и их форматирование способом, указанным в пользователя в файле конфигурации.
Средства улучшения кода существуют как отдельные приложения и встроены в интегрированные среды разработки. Например, Emacs 'различные языковые режимы могут правильно отступать блоки кода привлекательно.
Ранним примером красивой печати была программа Билла Госпера "GRINDEF" (т.е. "функция измельчения") (ок. 1967), в которой использовался комбинаторный поиск с обрезкой до форматирования. LISP программы. Ранние версии работали с исполняемой (структура списка) формой программы Lisp и не обращали внимания на особые значения различных функций. В более поздних версиях были специальные соглашения о чтении для включения неисполняемых комментариев, а также для сохранения макросов чтения в нераскрытой форме. Они также разрешили специальные соглашения об отступах для специальных функций, таких как if
. Термин «измельчение» использовался в некоторых кругах Лиспа как синоним красивого печатного текста.
Многие проекты с открытым исходным кодом установили правила для компоновки кода. Наиболее типичными являются форматирование GNU и стиль BSD. Самая большая разница между ними заключается в расположении фигурных скобок: в стиле GNU открывающая и закрывающая фигурные скобки находятся на отдельных строках с одинаковым отступом. Стиль BSD помещает открывающую фигурную скобку в конец предыдущей строки, а за закрывающей фигурной скобкой может следовать else . Размер отступа и расположение пробелов также различаются.
В следующем примере показаны некоторые типичные структуры C и то, как различные правила стиля отступа форматируют их. Без какого-либо форматирования это выглядит так:
int foo (int k) {if (k <1||k>2) {printf ("вне диапазона \ n"); printf ("этой функции требуется значение 1 или 2 \ n");} else {printf ("Переключение \ n"); switch (k) {case 1: printf ("1 \ n"); break; case 2 : printf ("2 \ n"); break;}}}
Программа отступа GNU выдает следующий вывод, когда его просят сделать отступ в соответствии с правилами GNU :
int foo ( int k) {if (k < 1 || k>2) {printf ("вне допустимого диапазона \ n"); printf ("этой функции требуется значение 1 или 2 \ n"); } else {printf ("Переключение \ п"); switch (k) {case 1: printf ("1 \ n"); перемена; случай 2: printf ("2 \ n"); перемена; }}}
Он производит следующий вывод при форматировании в соответствии с правилами BSD:
int foo (int k) {if (k < 1 || k>2) {printf ("out of range \ n"); printf ("этой функции требуется значение 1 или 2 \ n"); } else {printf ("Переключение \ п"); switch (k) {case 1: printf ("1 \ n"); перемена; случай 2: printf ("2 \ n"); перемена; }}}
Понятия, связанные с данным
Утилиты