Prettyprint - Prettyprint
Довольно-полиграфический (или же красивая печать) - это применение любого из различных стилистических форматирование соглашения текстовые файлы, Такие как исходный код, разметка, и подобный контент. Эти соглашения о форматировании могут повлечь за собой соблюдение стиль отступа, используя другой цвет и шрифт для выделить синтаксические элементы исходного кода или регулировки размера, чтобы людям было легче читать и понимать контент. Довольно-принтеры для исходного кода иногда называют код украшения.
Красиво-печатная математика
Симпатичная печать обычно относится к отображению математические выражения похожи на то, как они были бы наборный профессионально. Например, в системы компьютерной алгебры Такие как Максима или же Mathematica система может записывать вывод типа "х ^ 2 + 3 * х" в качестве "". Немного графические калькуляторы, такой как Casio 9860 серии, HP-49 серия, 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 разработан специально для качественной математической наборный.
Хорошая разметка и код на основе тегов
Хорошая печать в экземплярах языка разметки обычно связана с отступ тегов и строковое содержимое для визуального определения иерархии и вложенности. Хотя синтаксические структуры языков на основе тегов существенно не различаются, отступы могут значительно отличаться из-за того, как интерпретируется язык разметки или из-за данных, которые он описывает.
В MathML, пробельные символы не отражают данные, значение или синтаксис выше того, что требуется XML синтаксис. В HTML, пробелы между тегами считаются текстом и анализируются как текстовые узлы в анализируемом результате.[2] Хотя отступы могут быть широко применены к документу MathML, необходимо проявлять дополнительную осторожность при красивой печати HTML-документа, чтобы гарантировать, что дополнительные текстовые узлы не будут созданы или уничтожены в непосредственной близости от содержимого или элементов тегов, отражающих содержимое. Эта разница в сложности нетривиальна с точки зрения автоматизированной операции красивого вывода, где не требуются специальные правила или крайние случаи, как в более простом примере MathML. В примере HTML может потребоваться ряд прогрессивных взаимосвязанных алгоритмов для учета различных шаблонов элементов тегов и содержимого, которые соответствуют единому стилю и согласованы в применении в различных случаях, о чем свидетельствует markup.ts[3] компонент приложения, используемый для улучшения HTML, XML и связанных технологий для Pretty Diff инструмент.
Форматирование программного кода
Программисты часто используют инструменты для форматирования язык программирования исходный код определенным образом. Правильное форматирование кода упрощает чтение и понимание. Разные программисты часто предпочитают разные стили форматирования, например использование кода. отступ и пробелы или расположение подтяжки. Средство форматирования кода преобразует исходный код из одного стиля формата в другой. Это относительно просто из-за однозначного синтаксиса языков программирования. Усовершенствование кода включает в себя анализ исходного кода на компонентные структуры, такие как операторы присваивания, если блоки петли и т. д. (см. также поток управления ) и форматирование их способом, указанным пользователем в файле конфигурации.
Средства улучшения кода существуют как отдельные приложения и встроены в текстовые редакторы и интегрированные среды разработки. Например, Emacs 'различные языковые режимы могут правильно отступ блоки кода привлекательно.[4]
HTML
Лисп красивый принтер
Ранним примером красивой печати был Билл Госпер "GRINDEF" (т.е. 'функция измельчения') программа (c. 1967), который использовал комбинаторный поиск с обрезкой до формата LISP программы. Ранние версии работали с исполняемой (структура списка) формой программы Lisp и не обращали внимания на особые значения различных функций. В более поздних версиях были специальные соглашения о чтении для включения неисполняемых комментариев, а также для сохранения читать макросы в нерасширенном виде. Они также разрешили специальные соглашения об отступах для специальных функций, таких как если
.[5][6] Термин «измельчение» использовался в некоторых кругах Лиспа как синоним красивого шрифта.[7]
Правила стиля проекта
Многие проекты с открытым исходным кодом установили правила для макета кода. Наиболее типичным является форматирование GNU[8] и стиль BSD.[9] Самая большая разница между ними заключается в расположении фигурных скобок: в стиле GNU открывающая и закрывающая фигурные скобки находятся на отдельных строках с одинаковым отступом. В стиле BSD открывающая скобка помещается в конец предыдущей строки, а за закрывающей фигурной скобкой может следовать еще. Размер отступа и расположение пробелов также различаются.
Пример форматирования и украшения кода
В следующем примере показаны некоторые типичные структуры C и различные стиль отступа правила их форматируют. Без форматирования это выглядит так:
int фу(int k){если(k<1||k>2){printf("вне диапазона п");printf("для этой функции требуется значение 1 или 2 п");}еще{printf("Переключение п");выключатель(k){дело 1:printf("1 п");перемена;дело2:printf("2 п");перемена;}}}
В Программа отступов GNU выдает следующий результат, когда его просят сделать отступ в соответствии с Правила GNU:
intфу (int k){ если (k < 1 || k > 2) { printf ("вне диапазона п"); printf ("для этой функции требуется значение 1 или 2 п"); } еще { printf ("Переключение п"); выключатель (k) { дело 1: printf ("1 п"); перемена; дело 2: printf ("2 п"); перемена; } }}
Он производит такой вывод при форматировании в соответствии с правилами BSD:
intфу(int k) { если (k < 1 || k > 2) { printf("вне диапазона п"); printf("для этой функции требуется значение 1 или 2 п"); } еще { printf("Переключение п"); выключатель (k) { дело 1: printf("1 п"); перемена; дело 2: printf("2 п"); перемена; } }}
Смотрите также
Связанные понятия
- Эластичный таблит, функция некоторых редакторов исходного кода, которая обнаруживает и поддерживает выровненные отступы
- Минификация, делая исходный код компактным, даже если людям становится труднее понять
- Запутывание, намеренно затрудняющий понимание исходного кода людьми, даже если он становится несколько запутанным
Утилиты
- Enscript, конвертер текста в PostScript с удобными функциями печати
- отступ, симпатичный принтер для кода C и C ++, связанный с Unix
- Pretty Diff, веб-приложение для сравнения данных с удобными функциями печати
Рекомендации
- ^ PrettyPt
- ^ Барон, Л. Давид. "Пробелы в DOM". Сеть разработчиков Mozilla. Получено 2012-08-27.
- ^ markup.ts
- ^ Столмен, Ричард М. «Отступы для программ». Руководство по GNU Emacs. Фонд свободного программного обеспечения. Получено 2011-10-20.
- ^ Ира Гольдштейн, «Красивая печать: преобразование списка в линейную структуру», Памятка по искусственному интеллекту 279, Массачусетский технологический институт, февраль 1973 г. полный текст
- ^ Ричард С. Уотерс, "Использование нового симпатичного принтера для Лиспа", ACM SIGPLAN Lisp-указатели 5: 2: 27-34, апрель – июнь 1992 г. полный текст
- ^ Файл жаргона, s.v. молоть
- ^ Стиль GNU
- ^ BSD стиль
внешняя ссылка
- Алгоритм 268: редактор справочного языка ALGOL 60 Уильям М. МакКиман: Commun. ACM 8 (11): 667-668 (1965).
- lgrind, Комплексная сеть архивов TEX
- NEATER2: программа преобразования исходных текстов PL / I Кеннет Конроу, Рональд Г. Смит: Commun. ACM 13 (11): 669-675 (1970).
- SOAP - Упростите непонятные программы на языке Algol Р. С. Скоуэн, Д. Аллин, А. Л. Хиллман, М. Шимелл: Отчет центрального вычислительного блока Национальной физической лаборатории CCU6 (Апрель 1969 г.) Включает форматированный список исходного кода SOAP.
- SOAP - программа, которая документирует и редактирует программы на Алголе 60. Р. С. Скоуэн, Д. Аллин, А. Л. Хиллман, М. Шимелл: Comput. J. 14 (2): 133-135 (1971).
- Исходный исходный код SOAP из KDF9 (неформатированный)
- Руководство пользователя SOAP. (за Эдинбург IMP ) Питер Салкельд Робертсон (1976)
- Исходный код SOAP в / для IMP9
- Soap80: программа для форматирования исходных программ IMP80. Дж. М. Мерисон, Эдинбургский региональный компьютерный центр (1980)
- Исходный код SOAP в / для IMP80 Э. Н. Грегори, Кентский университет в Кентербери; Питер Д. Стивенс, Эдинбургский региональный компьютерный центр
- PRETTYP.PAS Ранний паскаль prettyprinter. Ledgard et al.
- Паскаль со стилем (1979)
- стиль (9) Рекомендации по стилю FreeBSD
- vgrind, Проект [Unix] Heirloom
- Форматирование исходного кода Рекомендации по стилю GNU