DuAL

Материал из Циклопедии
Перейти к навигации Перейти к поиску
DuAL
Семантика:Предметно-ориентированный язык программирования
Появился в:2004
Автор(ы):Тимченко Максим
Типизация данных:динамическая
Испытал влияние:Structured Query Language, ActionScript

DuAL (англ. Document Access Language — «язык доступа к документам»)  — сверхвысокоуровневый язык программирования с динамической типизацией, сочетающий в себе возможности языка структурированных запросов — SQL и объектно-ориентированного программирования. Главная особенность языка, это возможность управления содержимым форматированных электронных документов. Обработчик данных реализован на С++. В основе лежит принцип обработки списка правил, в соответствии с которыми происходит изменение содержания документа. Задачи, на решение которых ориентирован язык: изменение вида отображаемой в электронном документе информации, декомпозиция содержания документа, преобразование списков документов из одного типа в другой, прямой доступ к служебным данным документа, печать выбранных фрагментов из списка документов.

История[править]

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

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

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

  • изменение вида отображаемой в электронном документе информации;
  • декомпозиция содержания документа с целью её использования в электронных учебных курсах и Интернет ресурсах;
  • преобразование списков документов из одного типа в другой;
  • прямой доступ к служебным данным документа;
  • печать фрагментов данных из списка исходных документов.

Характеристика языка[править]

Основные концепции[править]

Человек, читая текст, воспринимает отдельные символы, используя пробелы, объединяет их в слова, точки воспринимает как разделители предложений, предложения обобщает в главы. Сложность в оперировании машиной текстовыми блоками, заключается в том, что при одинаковой логике, вариантов компоновки этих блоков бесчисленное множество. Решением этой проблемы является технология обработки данных, оперирующая логическими единицами документа — текстовыми объектами, такими как: символ, слово, предложение, абзац, глава, раздел. К одной из её ключевых особенностей относится возможность анализа списка правил предоставляемых пользователем, в соответствии с которыми происходит изменение внутреннего содержания документа.

Обрабатываются не единичные объекты, а все объекты отвечающие заданным критериям:

  1. Минимальная структурная единица — символ или объект, который невозможно разделить на более мелкие части;
  2. Наборы структурных единиц — слова, таблицы и составные объекты;
  3. Логические элементы текста — абзацы, параграфы, главы, документы.

Особенности синтаксиса[править]

  • ключевые функции, системные константы и логические указатели методов пишутся заглавными буквами.
  • методы и указатели описывающие параметры пишутся с большой буквы
  • имена объектов пишутся с маленькой буквы;
  • символ . разделитель метода объекта;
  • символ ` комментарии;
  • символ " текстовые данные. Для использования кавычек в тексте используется косая наклонная черта /;
  • символ в начале строки # обозначает директивы препроцессора (Зарезервировано).

Правило — это логически законченная конструкция языка, записываемая компактно, состоит из:

  • управляющей функции;
  • параметры обработки данных;
  • логического указателя направления вывода;
  • основного объекта.

Схема:

ФУНКЦИЯ параметры УКАЗАТЕЛЬ объект

Пример использования[править]

<source lang="sdlbasic"> 'Загрузка файлов OPEN Mask("Файл.docx") AS исходные_файлы 'Определяем видимые символы GRUP исходные_файлы.Symbol(ALL) AS символ 'Группируем символы в слова GRUP символ.Where(NOSELF, LEFT) FOR символ.Where(NOSELF, RIGHT) AS слово 'Группируем слова в предложения GRUP слово.Where(новая_строка, EDGE, LEFT) FOR слово.Where(новая_строка, EDGE, RIGHT) AS предложение 'Определяем имя раздела GRUP предложение.Font(Type "Bold", Size "14", FUZZY) AS имя_главы 'Подсвечиваем имена глав другим цветом GRUP имя_главы.Apply(Font(Color "Red")) AS имя_главы_красный 'Суммируем указатели GRUP исходные_файлы.Apply(имя_главы_красный) AS изменённые_файлы 'Сохраняем файл SAVE изменённые_файлы AS Mask("Документ%.html") </source>

Среда разработки[править]

DuAL Имеет бесплатное и полноценное IDE.

В процессе запуска приложения пользователю выводится окно «Мастера подготовки данных», состоящего из нескольких вложенных окон:

  • первое окно — выбор базового типа обработки документов;
  • настройки местоположения результирующих документов;
  • определения исходных документов, участвующих в обработке;
  • конструктор управляющих правил, устанавливающий параметры текстовых блоков, на основе которых будет строить выборка данных из основной последовательности. Каждый из трёх блоков должен соответствовать текстовому блоку в документе;
  • добавление/замещение текстовых блоков в файлах документов;
  • настройка параметров печати.

По завершению работы окна «Мастер подготовки данных», создаются файлы нового проекта, содержащие в себе правила для обработки исходных документов. Далее выводится окно «Редактор управляющих правил» и «Вывод информации о состоянии процесса обработки» и на основе анализа содержимого файлов созданных мастером, создается дерево проекта со списком документов подлежащих обработке. В окне редактора управляющих правил, каждый логический элемент, для удобства восприятия автоматически подсвечивается соответствующим цветом. Пользователю предоставляется возможность изменить структуру правил в соответствии со своими задачами и личными предпочтениями. Система автоматически отслеживает все изменения, вносимые в структуру правил. На основании этих данных, система изменяет список документов подлежащих обработке, при этом осуществляется контроль правильности логических конструкций и доступность документов поставленных на обработку.

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

См. также[править]

Литература[править]

  • Тимченко М. С., Прохоров С. А.. «Автоматизация процесса формирования электронных учебных пособий с применением технологии объектной обработки текста». Журнал «Качество. Инновации. Образование», Москва, 2010, № 2, стр.53-56.
  • Тимченко М. С., Прохоров С. А.. «Преимущества объектной обработки текста в создании электронных учебных пособий». Международный журнал «Программные продукты и системы», Москва, 2010, № 3, стр. 90-92
  • Тимченко М. С.. «Система поддержки принятий решений при формировании электронных учебных курсов». Журнал «Качество. Инновации. Образование», Москва, 2011, № 1, стр. 83-85.

Ссылки[править]

 
Используемые
в разработке

Ада A+ APL Atlast Forth AWL Язык ассемблера ActionScript ABAP/4 AutoIt AWK BeanShell Бейсик Си Кобол C++ C# Clarion Clojure ColdFusion Common Lisp D dBase Delphi DuAL Eiffel Erlang Euphoria F# Форт Фортран Gambas Go Groovy HAL/S Haskell IBM PL/S Icon IridiumJava JavaScript Limbo Lua Модула-3 Object Pascal Objective-C OCaml Oz Parser Паскаль Компонентный Паскаль Perl Pixilang PHP PowerBASIC Python ПЛ/1 Пролог Qi Ruby Scala Scheme Seed7 Smalltalk SQL PL/SQL Tcl TouchDesigner Vala Visual Basic (.NET) • X-Robot

Академические

Agda Clean Curry Idris Лого ML Оберон Planning C РЕФАЛ Симула

IEC 61131-3

Instruction List ST FBD Ladder Diagram (LD) • SFC

Прочие

Алгол Алгол 68 Модула-2 Миранда Hope НОРМИН Санда

Эзотерические

HQ9+/HQ9++ • INTERCAL Brainfuck Befunge Malbolge Piet Spoon Unlambda Whitespace FALSE LOLCODE Глагол

Визуальные

G (LabVIEW) • Microsoft VPL Sikuli VisSim Алиса ДРАКОН Скретч

Прочее

ДинамическиеКомпилируемыеС ключевыми словами не на английском языке С C-style синтаксисом СинтаксисYoptaScript

Категория Языки программирования

 
Архитектура

Base Class Library • Common Language Infrastructure • .NET assembly • метаданные • COM Interop

Инфраструктура

Common Language Runtime • Common Type System • Common Intermediate Language • Virtual Execution System • Dynamic Language Runtime

Языки Microsoft

C# •  • Visual Basic .NET • C++/CLI (Managed) • Visual J# • JScript .NET • Windows PowerShell • IronPython • IronRuby • F# • Spec# • Sing#

Другие языки

A# • Boo • IronLisp • IronScheme • Clojure • L# • Nemerle • P# • PascalABC.NET • PHP • Scala • Cobra • Delphi Prism

Windows Foundations

Presentation • Communication • Workflow

Компоненты

ADO.NET (Entity Framework · Data Services) · ASP.NET (AJAX · MVC · Dynamic Data) · .NET Remoting · Language Integrated Query · Windows CardSpace · Windows Forms · XAML · ClickOnce · Dynamic Language Runtime · Parallel FX Library (PLINQ · TPL)

Реализации

DotGNU • Mono • .NET Compact Framework (Xbox 360) • .NET Micro Framework • Portable.NET • XNA Framework • Silverlight • Shared Source Common Language Infrastructure

Сравнения

C# и Java • C# и Visual Basic .NET

Будущие технологии

Acropolis • Jasper

Информационные ресурсы

The .NET Show • MSDN TV