0 |
Компьютеры за последние десятилетия коренным образом изменили наш образ жизни, разработка же программного обеспечения для них во многом осталась прежней и представляет собой трудоёмкий процесс, изобилующий ошибками. Изменить это призван финансируемый Национальным Научным Фондом (NSF) 5-летний проект Expeditions in Computer Augmented Program Engineering (ExCAPE), в рамках которого создаётся технология автоматического сопровождения работы программистов.
Используя модель программирования, называемую автоматическим синтезом программ, компьютеры могут генерировать фрагменты кода с учётом пожеланий пользователя, выражаемых различными, не программными способами, например, примерами, демонстрацией или командами на естественном языке.
«ExCAPE должен изменить программирование, превратив его из процесса, полностью выполняемого вручную, в такой, в котором программист и средство автоматического синтеза программ могут взаимодействовать для генерирования ПО в соответствии с его спецификациями», — объясняет Раджив Алур (Rajeev Alur), профессор Университета Пенсильвании, участвующий в проекте ExCAPE.
Избавляя от необходимости изучать эзотерические языки программирования, новый метод может способствовать значительному увеличению круга людей, вовлечённых в разработку ПО в различных областях — от личного самосовершенствования до робототехники.
Для операторов программно-конфигурируемых сетей (SDN), большинство из которых не являются программистами, участники проекта разработали и запатентовали инструментарий NetEgg. Он автоматически формирует код, реализующий заданное оператором поведение коммутатора, параллельно обеспечивая максимальную пропускную способность для сетевого трафика. Инструмент уже прошёл испытания в учебных аудиториях и образует основу проекта NSF I-Corps, исследующего возможности его преобразования в коммерческий продукт.
Другие детища ExCAPE нацелены на сферу онлайнового обучения. Automata Tutor генерирует автоматические ответы студентам — анализ их решений, выставление оценок за задания и наглядное объяснение допущенных ошибок. Итоги его использования примерно 5 тысячами студентов из десятка университетов во всем мире, Алур и его коллеги обсудили в статье, вышедшей в ACM Transactions on Computer-Human Interaction, а также на международной объединённой конференции по искусственному интеллекту. AutoProf проводит разбор вводных заданий по программированию на таких языках, как Python, а CPSgrader автоматически выставляет оценки за лабораторные курсы по кибер-физическим системам.
Команда ExCAPE смогла разработать также Syntax-Guided Synthesis, метод формализации и стандартизации основных вычислительных проблем в новых синтезаторах кода. За последние два года с помощью этого метода учеными было создано множество прототипов, в том числе автоматический оптимизатор программ для квантовых компьютеров.
Деятельность ExCAPE вдохновила Microsoft, которая разработала специализированные синтезаторы FlashFill (вошел в состав Excel 2013) и FlashExtract (в PowerShell), а также универсальное средство программирования на основе примеров, FlashMeta.
«Этот проект вобрал в себя десятилетия прогресса в формальных методах и языках программирования, — заявила Нина Амла (Nina Amla), директор программы в подразделении компьютерных и коммуникационных фондов NSF. — Он сигнализирует о смещении парадигм в обучении принципам программирования и в разработке программных систем».
Ready, set, buy! Посібник для початківців - як придбати Copilot для Microsoft 365
0 |