Создание инструментов для открытия языков программирования для нескольких пользователей

Прочитано: 175 раз(а)


Языки программирования используются самыми разными конечными пользователями с разными знаниями и опытом. Эти языки обычно предлагают единый пользовательский интерфейс или синтаксис, в то время как важно предлагать разные интерфейсы в зависимости от задачи программирования и опыта пользователей. С точки зрения языковой инженерии предлагать несколько пользовательских интерфейсов для одного и того же языка дорого. Таким образом, к.т.н. Кандидат Маурисио Верано Мерино изучал, как на практике разрабатывать различные интерфейсы конечного пользователя для предметно-ориентированных языков (DSL).

Вычислительные ноутбуки, блочные среды и проекционные редакторы позволяют конечным пользователям создавать программы, но они, как правило, недоступны для предметно-ориентированных языков (DSL). Тем не менее, многие DSL выиграют от наличия этих сред, доступных для конечных пользователей. Вот почему Маурисио Верано Мерино изучил три различных практических, но успешных способа сделать их доступными для DSL.

Четыре технологических пространства

В своей диссертации он предлагает различные механизмы для разработки нескольких сред программирования для конечных пользователей DSL. Эти механизмы в значительной степени зависят от повторного использования существующих языковых компонентов для существующих языков или помощи языковым разработчикам в определении этих интерфейсов для новых языков.

Его исследования были сосредоточены на четырех технологических областях, а именно: грамматика (текстовые редакторы), вычислительные записные книжки, блочные среды и проекционные редакторы. Технологическое пространство — это общий контекст, который содержит стандартную совокупность знаний, концепций и содержит различные обозначения. Это приводит к трем различным языково-параметрическим интерфейсам для взаимодействия с DSL, а именно вычислительным блокнотам, проекционным редакторам и блочным редакторам. Эти интерфейсы предлагают пользователям различные пользовательские возможности, соответствующие их потребностям в использовании DSL по их выбору.

Грамматика

Разные обозначения связаны с разными технологическими пространствами. Рассмотрим, например, программное обеспечение для грамматики, которое связано с текстовыми файлами, в то время как блочные среды связаны с файлами Blockly и JavaScript. Таким образом, Маурисио Верано Мерино должен был представить себе технологическое пространство, для которого должен был быть создан опыт конечного пользователя. Таким образом, он мог предложить языковым инженерам выбор технологических пространств для использования. Таким образом, они, в свою очередь, могли выбрать наиболее подходящие технологические пространства и интерфейсы для своей целевой аудитории.

Чтобы создать эти возможности для языковых программистов, Маурисио Верано Мерино определил программное обеспечение грамматики как общую отправную точку. С этого момента он и его команда представляли различные технологические пространства (например, пространство для вычислительных ноутбуков, пространство для проекционных редакторов или пространство на основе блоков). Основываясь на этой идее, он разработал три инструмента, которые позволяют языковым инженерам создавать различные интерфейсы для своих DSL на основе грамматического определения языка.

Воспользуйтесь опытом пользователей

В своей диссертации Маурисио Верано Мерино показывает, что можно создавать различные среды программирования из одного определения языка, такого как DSL. Разработанные им инструменты также уменьшают усилия, необходимые для их создания. Это может улучшить опыт пользователей в области программирования, ускорить внедрение предметно-ориентированных языков и сократить объем инженерных работ.

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

Создание инструментов для открытия языков программирования для нескольких пользователей



Новости партнеров