Jump to content

Редактор структуры

Редактор структуры , также структурированный редактор или проекционный редактор документа , — это любой редактор документов, который знает основную структуру . Редакторы структур можно использовать для редактирования иерархического или размеченного текста , компьютерных программ , диаграмм , химических формул и любого другого типа контента с четкой и четко определенной структурой. Напротив, текстовый редактор — это любой редактор документов, используемый для редактирования простых текстовых файлов . [ нужны разъяснения ]

Обычно преимущества редактирования текста и структуры сочетаются в пользовательском интерфейсе одного гибридного инструмента. Например, Emacs по своей сути является текстовым редактором, но поддерживает манипулирование словами, предложениями и абзацами как структурами, выводимыми из текста. И наоборот, Dreamweaver по сути является редактором структуры размеченных веб-документов, но поддерживает отображение и обработку необработанного HTML- также текста. Аналогично, редакторы молекул обычно поддерживают как графический, так и текстовый ввод. Редактирование структуры преобладает, когда контент графический , а текстовые представления неудобны, например, в системах CAD и PowerPoint . Редактирование текста преобладает, когда контент в значительной степени лишен структуры, например текстовые поля в веб-формах. WYSIWYG, Системы обработки текста такие как Word , которые, по-видимому, предназначены для непосредственного редактирования форматированного текста, по сути являются структурными редакторами для основного размеченного текста.

В лингвистике синтаксически - синтаксис – это изучение структуры грамматических высказываний, и соответственно ориентированный редактор – это синоним структурного редактора. Языковой редактор и языково-зависимый редактор также являются синонимами. Функции языкового редактора могут быть реализованы с помощью специального кода или формальной грамматики . Например, чувствительность к языку в Emacs реализована в определении Lisp режима редактирования для данного языка. Напротив, чувствительность к языку в редакторе XML определяется формальной схемой DTD для данного языка.

Хотя структурированные редакторы позволяют просматривать и манипулировать базовым документом в структурированном виде, формат файла, в котором документ хранится на диске, может быть или не быть сильно структурированным и может быть или не быть открытым или стандартизированным (например, простой текст вместо документы Microsoft Word).

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

Каждый язык программирования обычно имеет четко определенный синтаксис, заданный контекстно-свободной грамматикой , и, соответственно, значимые структурные элементы в исходном коде, написанном на этом языке, соответствуют грамматическим фразам в тексте. Ранние редакторы исходного кода, ориентированные на синтаксис, включали Interlisp-D (для Emily ограниченного синтаксиса Lisp) и [1] (для PL/I богатого синтаксиса ).

Редактор, управляемый синтаксисом, может рассматривать грамматические правила как порождающие (например, предлагающие пользователю шаблоны , соответствующие одному или нескольким шагам формального создания текста программы) или запрещающие (например, предотвращающие фразы данной части речи). перемещение в контекст, где требуется другая часть речи) или аналитический (например, анализ текстовых правок для создания структурированного представления). Функции редактирования структуры в редакторах исходного кода усложняют написание программ с неверным синтаксисом. Редакторы, чувствительные к языку, могут предъявлять синтаксическую правильность как абсолютное требование (например, как это сделал Mentor [2] ), или может допускать синтаксические ошибки после выдачи предупреждения (например, как это сделал Корнельский программный синтезатор [3] ). Редакторы со строгой структурой часто затрудняют редактирование, которое легко выполнить с помощью текстовых редакторов, что является одним из факторов, способствующих недостаточному внедрению структурированного редактирования в некоторых областях, таких как редактирование исходного кода.

Некоторые редакторы, ориентированные на синтаксис, контролируют соблюдение контекстно-зависимых ограничений языка, таких как правильность типов . Такие статико-семантические ограничения могут быть императивно заданы действиями (например, как в «Гэндальфе»). [4] [5] [6] ) или декларативно с помощью грамматики атрибутов (например, как в генераторе синтезатора [7] [8] ) или объединением в многосортной алгебре (например, как в PSG [9] ) или логическую программу (например, как в Centaur [10] и Пан [11] ), при этом соответствие проверяется с помощью основного механизма редактирования. Структурированные редакторы различаются по степени, в которой они позволяют пользователям вносить изменения, которые приводят к тому, что документ становится синтаксически или семантически неверным.

Редактор, чувствительный к языку, обычно представляет документ в виде дерева синтаксического анализа с учетом грамматики языка или в виде абстрактного синтаксического дерева (AST). Например, дерево DOM по сути является AST по отношению к данному DTD . Часто текстовое представление этого базового дерева создается путем красивой печати базового дерева. Редакторы, связанные с намеренным программированием [12] и языково-ориентированное программирование для языков общего назначения и предметно-ориентированных языков имеют многие особенности языково-зависимых редакторов, но стремятся к большему разделению между базовым представлением ( намерением ) и поверхностным представлением (текстом на языке программирования). .

См. также

[ редактировать ]
  1. ^ Хансен, Уилфред Дж. (1971). «Принципы пользовательской разработки интерактивных систем». Материалы осенней совместной компьютерной конференции FJCC 39 . АФИПС. стр. 5623–532.
  2. ^ Донзо Гуж, В.; Хют, Г.; Кан, Г.; Ланг, Б. (июль 1980 г.). «Среды программирования на основе структурированных редакторов: опыт Mentor» (PDF) . INRIA Отчет об исследовании №. 26 .
  3. ^ Тейтельбаум, Т.; Т. Репс (сентябрь 1981 г.). «Программный синтезатор Корнелла: среда синтаксически-ориентированного программирования» . Коммуникации АКМ . 24 (9): 563–573. дои : 10.1145/358746.358755 .
  4. ^ Хаберманн, А. Нико; Ноткин, Дэвид (1986). «Гэндальф: Среды разработки программного обеспечения» (PDF) . IEEE Транс. англ . 12 (12): 1117–1127. дои : 10.1109/TSE.1986.6313007 . S2CID   11474349 .
  5. ^ Медина Мора, Рауль (1982). Редактирование, ориентированное на синтаксис: путь к интеграции сред программирования . Питтсбург, Пенсильвания: Университет Карнеги-Меллона (докторская диссертация).
  6. ^ Кайзер, Гейл Элейн (1985). Семантика сред редактирования структуры . Питтсбург, Пенсильвания: Университет Карнеги-Меллона (докторская диссертация).
  7. ^ Репс, Т. (1984). Создание языковой среды . Кембридж, Массачусетс: MIT Press. (Награжден премией за докторскую диссертацию ACM 1983 года .).
  8. ^ Репс, Томас В .; Тейтельбаум, Тим (1988). Генератор синтезатора: система создания языковых редакторов . Кембридж, Массачусетс: Springer-Verlag.
  9. ^ Снелтинг, Грегор; Хенхапл, Вольфганг (1986). «Объединение в многосортных алгебрах как средство инкрементного семантического анализа». Материалы 13-го симпозиума ACM SIGACT-SIGPLAN по принципам языков программирования (POPL) . Нью-Йорк, штат Нью-Йорк: ACM Press. стр. 229–235.
  10. ^ Боррас, П.; Клемент, Д.; Деспейруз, Т.; Инчерпи, Дж.; Кан, Г.; Ланг, Б.; Паскуаль, В. (1989). «КЕНТАВР: Система». «Материалы симпозиума по разработке программного обеспечения ACM SIGSOFT/SIGPLAN по практическим средам разработки программного обеспечения (PSDE) . Том 24. Нью-Йорк, Нью-Йорк: ACM Press. стр. 14–24.
  11. ^ Балланс, Роберт А.; Грэм, Сьюзен Л.; Ван Де Вантер, Майкл Л. (1990). «Пан-языковая система редактирования для комплексной разработки». SDE 4: Материалы четвертого симпозиума ACM SIGSOFT по средам разработки программного обеспечения . Ирвин, Калифорния: ACM Press. стр. 77–93.
  12. ^ Чарнецкий, Кшиштоф и Эйзенекер, Ульрих (июнь 2000 г.). Генеративное программирование: методы, инструменты и приложения, глава 11 (преднамеренное программирование) . Ридинг, Массачусетс: Аддисон-Уэсли.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 001777154238db18feea1cbf1c00e7ab__1691186400
URL1:https://arc.ask3.ru/arc/aa/00/ab/001777154238db18feea1cbf1c00e7ab.html
Заголовок, (Title) документа по адресу, URL1:
Structure editor - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)