MyWackoSite: ПроектыЛаборатории/ИдеиПроектов

Идеи проектов

Расширяемый язык программирования

Extensible Term Language (ETL) – это попытка создать инструментальную среду, пригодную для быстрой разработки и поддержки интерпретаторов и компиляторов. В отличие от традиционных парсеров, которые в конечном итоге основаны на вариантах формализма Бэкуса-Науэра, ETL предлагает подход, во многом аналогичный XML. Парсер ETL получает на вход описание грамматики на специальном метаязыке и выдает на выходе дерево разбора операторов, аналогичное дереву DOM, или последовательное представление этого дерева. Кроме того, разработчики ETL ставят перед собой цель обеспечить возможность использования тех же самых описаний грамматик в инкрементальных парсерах, которые могли бы использоваться в синтаксически-ориентированных редакторах, утилитах для рефакторинга, round-trip CASE tools и т.д.

Язык описания грамматик ETL беднее формализма Бэкуса-Науэра (разработчики даже не ставили цели реализовать таким методом все существующие или наиболее популярные языки программирования). Главная цель разработчиков – обеспечить возможность переиспользования элементов грамматик и легкое расширение грамматики, вплоть до возможности создания динамически расширяемых компиляторов. Описав на ETL новую конструкцию и реализовав плагин, который обрабатывает эту конструкцию, пользователь компилятора мог бы немедленно получить расширенную версию языка, причем новая конструкция немедленно получала бы полную поддержку во всех вспомогательных инструментах – редакторах, отладчиках, CASE. Последнее требование практически невозможно обеспечить в рамках современных технологий реализации расширяемых языков.

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

В настоящее время проект ведется автором идеи, Константином Плотниковым.

Сайт проекта – http://sourceforge.net/projects/etl/

Web GNU CAP

На ФИТ читается курс «Радиоэлектроника». В рамках этого курса студенты изучают основы радиоэлектроники, методы расчетов линейных и нелинейных электрических цепей. Для закрепления пройденного материала и проверки получаемых результатов студентам предлагается замоделировать схемы в OrCad-е.

Данный подход обладает рядом недостатков:

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

Предлагается использовать систему GNU CAP (свободнораспространяемый продукт) для счета. Сделать Web интерфейс к ней, в котором студент выбирает схему, задает параметры и отправляет на моделироване. После чего в виде графиков получает результат. Поскольку студенты по большей части моделируют одни и теже схемы с одними и теми же параметрам, то система может быть дополнена прокси сервером.

Реализация данного проекта позволит перевести курс радиоэлектроники в on-line режим.

Практикум по квантовой механике

В НГУ с 1980х годов проводится практикум по имитационному моделированию некоторых простых квантовых систем. Программный комплекс, на котором проводится этот практикум, был написан еще в начале 1990х под ДОС. Необходимо реализовать аналог этого программного комплекса на основе современных технологий. Выбор технологий (Java, C#, Win32/MFC или что-нибудь еще) будет осуществляться с учетом пожеланий участников проекта.

Mobile Morse

Одна из важнейших проблем, ограничивающая применение портативных компьютеров (КПК, смартфонов и др.) – это отсутствие удобного средства ввода текста в эти устройства. Наиболее популярный метод – набор букв многократными нажатиями на цифровую клавиатуру, даже с эвристическими расширениями вроде iTap, очевидно не годится для быстрого набора длинных текстов. QWERTY-клавиатуры, присутствующие в некоторых устройствах этого типа, слишком велики для карманного устройства и в то же время значительно уступают обычным клавиатурам по эргономическим характеристикам, так что скорость набора на таких устройствах во много раз уступает скорости нормальной печати на обычной клавиатуре настолького компьютера или ноутбука. «стилусы», аккордные наборы и прочие экзотические методы совершенно непригодны для массового рынка.

В то же время, существует давно известный и хорошо освоенный на практике метод быстрого набора текста с использованием компактного устройства – телеграфный ключ. Зарегистрированный рекорд скорости для полуавтоматического ключа (Vibroplex) составляет 72 слова (360 алфавитных символов) в минуту, что сравнимо с нормальным темпом речи; нормальной скоростью при использовании виброплекса оператором средней квалификации считается 30 слов в минуту, т.е. 150 алфавитных символов в минуту, что сравнимо с темпом работы квалифицированной машинистки на QWERTY-клавиатуре.

Существует ряд устройств для ввода информации в компьютер при помощи азбуки Морзе, но эти устройства ориентированы на использование инвалидами и при их разработке и реализации не ставилось цели достичь высоких скоростей набора. Однако при разработке таких устройств были учтены потребности современных компьютерных интерфейсов; в частности, есть несколько версий расширенного кода Морзе, содержащих аналоги всех клавиш 101-кнопочной клавиатуры IBM PC.

Конечной целью данного проекта является разработка устройства, подключаемого по USB и/или Bluetooth к КПК, смартфонам или даже ноутбукам, которое можно было бы использовать в качестве полуавтоматического ключа для высокоскоростного набора текстов азбукой Морзе.

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