Prettyprint

редактировать
Форматирование для облегчения чтения кода или разметки

Pretty-Printing (или prettyprinting ) - это применение любого из различных стилистических соглашений форматирования к текстовые файлы, такие как исходный код, marku p и подобные типы контента. Эти соглашения о форматировании могут повлечь за собой соблюдение стиля отступа , использование другого цвета и шрифта для выделения синтаксических элементов исходного кода или изменение размера, чтобы люди могли читать контент, и пойми. Художественные принтеры для исходного кода иногда называют украшениями кода .

Содержание
  • 1 Красиво-печатная математика
  • 2 Красиво-печатная разметка и код на основе тегов
  • 3 Форматирование программного кода
    • 3.1 HTML
    • 3.2 Lisp pretty-printer
    • 3.3 Правила стиля проекта
    • 3.4 Пример форматирования и улучшения кода
  • 4 См. Также
  • 5 Ссылки
  • 6 Внешние ссылки
Довольно печатная математика
Наборное математическое выражение

Красиво-печатное обычно относится к отображению математических выражений, аналогичных тому, как это было бы в профессиональном плане. Например, в системах компьютерной алгебры, таких как Maxima или Mathematica, система может записывать вывод как «x ^ 2 + 3 * x"как" x 2 + 3 x {\ displaystyle x ^ {2} + 3x}x ^ 2 + 3x ". Некоторые графические калькуляторы, например 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 был разработан специально для высококачественного математического верстки.

Красиво печатная разметка и код на основе тегов
Исходный код HTML, красиво напечатанный, чтобы лучше показать иерархические отношения его элементов (называемых тегами)

Хорошая печать в экземплярах языка разметки обычно ассоциируется с отступом тегов и строкового содержимого для визуального определения иерархии и вложенности. Хотя синтаксические структуры языков на основе тегов существенно не различаются, отступы могут значительно отличаться из-за того, как интерпретируется язык разметки или из-за данных, которые он описывает.

В MathML, символы пробела не отражают данные, значение или синтаксис сверх того, что требуется синтаксисом XML. В HTML пробелы между тегами считаются текстом и анализируются как текстовые узлы в анализируемом результате. Хотя отступы могут быть широко применены к документу MathML, при красивой печати HTML-документа необходимо проявлять достаточную дополнительную осторожность, чтобы гарантировать, что дополнительные текстовые узлы не будут созданы или уничтожены в непосредственной близости от содержимого или элементов тегов, отражающих содержимое. Эта разница в сложности нетривиальна с точки зрения автоматизированной операции красивого вывода, где не требуются специальные правила или крайние случаи, как в более простом примере MathML. В примере HTML может потребоваться серия прогрессивных взаимосвязанных алгоритмов для учета различных шаблонов элементов тегов и контента, которые соответствуют единому стилю и согласованы в применении в различных экземплярах, о чем свидетельствует компонент приложения markup.ts, используемый для украшения HTML, XML и связанные технологии для инструмента Pretty Diff.

Форматирование программного кода

Программисты часто используют инструменты для форматирования исходного кода языка программирования определенным образом. Правильное форматирование кода упрощает чтение и понимание. Разные программисты часто предпочитают разные стили форматирования, такие как использование кода , отступ и пробелов или расположение скобок . Средство форматирования кода преобразует исходный код из одного стиля формата в другой. Это относительно просто из-за однозначного синтаксиса языков программирования. Усовершенствование кода включает в себя анализ исходного кода на компонентные структуры, такие как операторы присваивания, блоки if, циклы и т. Д. (См. Также поток управления ), и их форматирование способом, указанным в пользователя в файле конфигурации.

Средства улучшения кода существуют как отдельные приложения и встроены в интегрированные среды разработки. Например, Emacs 'различные языковые режимы могут правильно отступать блоки кода привлекательно.

HTML

Lisp pretty-printer

Ранним примером красивой печати была программа Билла Госпера "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"); перемена; }}}
См. Также

Понятия, связанные с данным

  • Elastic tabstop, функция некоторых редакторов исходного кода, которая обнаруживает и поддерживает выровненные отступы
  • Minification, делая исходный код компактным, даже если людям становится труднее понять
  • Обфускация, намеренно делая исходный код очень трудным для понимания людьми, даже если он становится несколько запутанным

Утилиты

  • начертание, текст- в PostScript, с функциями красивой печати
  • indent, красивый принтер для кода C и C ++, в комплекте с Unix
  • Pretty Diff, веб-приложением для сравнения данных, с красивой печатью функции
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-02 05:30:32
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте