Jump to content

Преттипринт

(Перенаправлено с Prettyprinting )

Pretty-printing (или Prettyprinting ) — это применение любого из различных соглашений о стилистическом форматировании к текстовым файлам , таким как исходный код , разметка и подобные виды контента. Эти соглашения о форматировании могут предполагать соблюдение стиля отступов , использование другого цвета и шрифта для выделения синтаксических элементов исходного кода или настройку размера, чтобы людям было легче читать и понимать контент. Симпатичные принтеры для исходного кода иногда называют форматтерами кода или украшателями .

Красиво-печатная математика

[ редактировать ]
Набранное математическое выражение

Под красивой печатью обычно подразумевается отображение математических выражений так, как если бы они были набраны профессионально. Например, в системах компьютерной алгебры, таких как Maxima или Mathematica, система может записывать выходные данные типа « х ^ 2 + 3 * х " как " TI - Некоторые графические калькуляторы , такие как серии Casio 9860 , серии HP-49/50 и HP Prime , TI-84 Plus , 89 и TI-Nspire , TI-83 Plus с PrettyPt [1] надстройка, или TI-84 Plus с той же надстройкой, или операционные системы с поддержкой MathPrint, могут выполнять красивую печать. Кроме того, ряд новых научных калькуляторов оснащены матричными экранами, обеспечивающими красивую печать, например, серия Casio FX-ES (Natural Display), серия Sharp EL-W (WriteView), HP SmartCalc 300s , TI-30XB и Нумворкс .

Многие программы форматирования текста умеют также набирать математические данные: TeX был разработан специально для качественного математического набора .

Красиво печатаемая разметка и код на основе тегов

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

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

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

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

[ редактировать ]

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

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

Lisp красивый принтер

[ редактировать ]

Ранним примером красивой печати была программа Билла Госпера «GRINDEF» ( т. е. «функция измельчения») ( около 1967 г.), которая использовала комбинаторный поиск с обрезкой для форматирования программ LISP . Ранние версии оперировали исполняемой (списковой) формой программы Lisp и не обращали внимания на специальные значения различных функций. В более поздних версиях были специальные соглашения о чтении для включения неисполняемых комментариев, а также для сохранения макросов чтения в нераскрытой форме. Они также допускали специальные соглашения об отступах для специальных функций, таких как if. [5] [6] Термин «шлифовка» использовался в некоторых кругах по Лиспу как синоним красивой печати. [7]

Правила стиля проекта

[ редактировать ]

Многие проекты с открытым исходным кодом установили правила компоновки кода. Наиболее типичными являются GNU. форматирование [8] и стиль BSD. [9] Самая большая разница между ними заключается в расположении фигурных скобок: в стиле GNU открывающие и закрывающие скобки находятся на отдельных строках с одинаковым отступом. Стиль BSD помещает открывающую скобку в конце предыдущей строки, а за закрывающей скобкой может следовать else . Размер отступа и расположение пробелов также различаются.

Пример форматирования и украшения кода

[ редактировать ]

В следующем примере показаны некоторые типичные структуры C и то, как стиля отступов их форматируют различные правила . Без какого-либо форматирования это выглядит так:

int foo(int k){if(k<1||k>2){printf("out of range\n");
printf("this function requires a value of 1 or 2\n");}else{
printf("Switching\n");switch(k){case 1:printf("1\n");break;case
2:printf("2\n");break;}}}

Программа GNU indent выдает следующий результат, когда ее просят сделать отступ в соответствии с правилами GNU :

int
foo (int k)
{
  if (k < 1 || k > 2)
    {
      printf ("out of range\n");
      printf ("this function requires a value of 1 or 2\n");
    }
  else
    {
      printf ("Switching\n");
      switch (k)
        {
        case 1:
          printf ("1\n");
          break;
        case 2:
          printf ("2\n");
          break;
        }
    }
}

Он выдает следующий результат при форматировании в соответствии с правилами BSD:

int
foo(int k) {
	if (k < 1 || k > 2) {
		printf("out of range\n");
		printf("this function requires a value of 1 or 2\n");
	} else {
		printf("Switching\n");
		switch (k) {
		case 1:
			printf("1\n");
			break;
		case 2:
			printf("2\n");
			break;
		}
	}
}

См. также

[ редактировать ]

Связанные понятия

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

Утилиты

  • enscript — конвертер текста в PostScript с удобными функциями печати.
  1. ^ «PrettyPrint — ticalc.org» . www.ticalc.org . Проверено 13 апреля 2022 г.
  2. ^ Барон, Л. Дэвид. «Пробелы в DOM» . Сеть разработчиков Mozilla . Проверено 27 августа 2012 г.
  3. ^ разметка.ts
  4. ^ Столлман, Ричард М. «Отступы для программ» . Руководство по GNU Emacs . Фонд свободного программного обеспечения . Проверено 20 октября 2011 г.
  5. ^ Ира Гольдштейн, «Красивая печать: преобразование списка в линейную структуру», Памятка по искусственному интеллекту 279, Массачусетский технологический институт, февраль 1973 г., полный текст
  6. ^ Ричард К. Уотерс, «Использование нового обычного принтера Lisp», ACM SIGPLAN Lisp Pointers 5 : 2: 27-34, апрель – июнь 1992. полный текст
  7. ^ Файл жаргона , sv Grind
  8. ^ Стили GNU
  9. ^ Стиль BSD
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 15c34184d6ebb3b5ca54b6183a93606f__1719303600
URL1:https://arc.ask3.ru/arc/aa/15/6f/15c34184d6ebb3b5ca54b6183a93606f.html
Заголовок, (Title) документа по адресу, URL1:
Prettyprint - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)