DSL generator
41 PLNЗадача состоит в том, чтобы реализовать программу, которая генерирует свою реализацию на C из файла, написанного на предметно-ориентированном языке (DSL) для определения конечного автомата, а сам генератор будет написан на Java (требуется версия 15 или выше).
Вход
Файл, написанный на DSL, содержит:
- события (
events) - ввод отдельных символов с клавиатуры, что вызовет переход в другое состояние, - события перезапуска (
resetEvents) — подмножество событий, всегда вызывающих переход в исходное состояние, - команды (
commands) — действия, которые выполняются автоматически при переходе в заданное состояние — конкретные операторы персонажей на экране, - и сами состояния (
state), опционально содержащие действия (actions) и переходы в видеudalosť -> nový_stav.
Упомянутые 4 основные части не имеют фиксированного порядка и могут повторяться. Однако определение запасов в состоянии должно предшествовать определениям переходов. Начальное состояние — это то, которое определено первым. Простой пример ввода выглядит следующим образом:
events {
next 'n'
reset 'r'
}
resetEvents {
reset
}
commands {
printX 'X'
}
state s1 {
next -> s2
}
state s2 {
actions { printX }
}Выход
На выходе генератора должен быть файл с исходным кодом программы на языке C. Он должен иметь следующее поведение после компиляции и исполнения:
- Изначально он устанавливает начальное состояние и выполняет соответствующие действия. В нашем примере это состояние
s1, без запаса. - Затем он ожидает события, т. е. символа из стандартного ввода. Игнорирует неподдерживаемые символы. Выполняет переход после чтения символа, принадлежащего событию. Таким образом, при вводе «n» происходит событие
next, котороеs1вызывает переход состояния в состояниеs2. - Сразу после перехода снова выполнит соответствующие действия. В частности, для состояния
s2это действиеprintX, которое печатает «X». Затем он снова ждет следующего события (шаг 2).
Если мы встречаем символ, соответствующий событию перезапуска (в нашем случае resetтогда r), мы переходим в исходное состояние ( s1).
в файли FJ пример кода на си
Załączniki 4
Aktualne zlecenia dla freelancerów w kategorii Java
Opracowanie aplikacji Android odtwarzacza dla usługi telewizji online
2220 PLN
Potrzebny programista Android do stworzenia natywnej aplikacji Android dla usługi telewizji online. Planowane są dwie wersje: dla urządzeń mobilnych: smartfony i tablety; dla Android TV / Android STB: dekodery. Orientacyjne terminy: do 3 miesięcy. Orientacyjny budżet: 150… Java, Programowanie na Androida ∙ 25 dni 6 godzin temu ∙ 31 ofert |