Разработка интерпретатора и браузерного редактора для заданного Domain Specific Language — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
м (Откат правок Seosky (обсуждение) к версии Aapoludnitsin)
 
Строка 1: Строка 1:
Segeralah Mendaftar langsung di
+
{{Карточка_проекта
* [https://macanplay.net/ Macanslot]
+
|name=Разработка интерпретатора и браузерного редактора для заданного Domain Specific Language
* [https://paradox3d.net/ InaTogel]
+
|mentor=Лев Хотов
* [https://macanwin.net/ QqMacan]
+
|mentor_login={{URLENCODE:lhotov|WIKI}}
* [https://lechers.cc/ RoyalToto]
+
|semester=Осень 2018
* [https://xenogames.net/ JayaTogelUp]
+
|course=3-4
* [https://eeooii.info/ Raja Slot4D]
+
|number_of_students=2-3
* [https://139.180.153.95/ Raja Slot4D]
+
|categorize=yes
* [https://209.58.183.93/ JayaTogelUp]
+
}}
* [https://ronin138.com/ Ronin138]
+
 
* [https://addicthealious.website/ slot 4d]
+
===Что это за проект?===
* [https://18.142.23.191/ Macan Slot]
+
Существует некоторый язык описания биомаркеров(строгих описаний состояния, в котором находится пациент). Существует его реализация в виде Internal Groovy DSL. Однако подход internal DSL имеет серьезные конструктивные недостатки:
* [https://royaltotopedia.com RoyTop88]
+
* чудовищные проблемы с безопасностью
* [https://macanplay.com MacanSlot]
+
* трудности в предоставлении удобного тулинга людям, не являющимся разработчиками(а DSL зачастую разрабатываются для них)
* [https://macantoto88.com Toto 88]
+
В данной работе предлагается познакомиться с профильным инструментом для разработки DSL с тулингом, и реализовать с его помощью подмножество заданного языка, используя для проверки себя существующую реализацию, а также сделать браузерный редактор получившегося DSL с автодополнением. Подробнее, см:
* [https://jayatogelup.com.com jayatogelup]
+
* 8-я глава книги Implementing Domain Specific Languages with Xtext and Xtend - Second Edition.pdf (ссылка на книгу: https://goo.gl/4eJdS6)
[https://ronin19.com/ Ronin138]
+
* Документация на сайте Xtext: https://goo.gl/iiVPW5
[https://addicthealing.website/ slot 4d]
+
 
[https://jayatogelcc.cc/ jayatogel]
+
Пример выражения на DSL:
[https://jayatogelcc.cc/ jayatogelcc]
+
mutation.load(gene: “BRAF”, type: MutationType.frameshift) > 0 && cna.deletion(gene: “KIT”)
[http://northcoaststeelhead.com/ northcoaststeelhead.com]
+
===Начальные требования===
[http://supremeoutlet.us/ supremeoutlet.us]
+
* Уверенное чтение англоязычной технической литературы
[http://208.78.220.231/ freebet]
+
* Уверенное владение каким-либо объектно-ориентированным языком(Java, C#, C++, Python…)
[http://blackfridaymichaelkors.us/ freebet]
+
* Желание изучать Java
[https://supremeshirtshop.us/ supremeshirtshop.us]
+
===Чему вы научитесь===
[https://macanplayslot.web.fc2.com/ macanplay]
+
* Писать на разных языках для JVM
[https://royaltotopedia4d.web.fc2.com/ royaltotopedia]
+
* Создавать свой собственный язык программирования вместе с тулингом для него
[https://macanplay8.web.fc2.com/ macanplay slot]
+
===Какие будут использоваться технологии===
[https://royaltotopedia88.web.fc2.com/ royaltoto]
+
* Семейство похожих языков для JVM (Java, Kotlin, Groovy, возможно Xtend)
[https://olxtotos.web.fc2.com/ olxtoto]
+
* Eclipse Xtext для разработки DSL
[https://linklist.bio/OLX.TOTO olxtoto]
+
=== Критерии оценивания ===
[https://c.mi.com/thread-4131553-1-0.html olxtoto]
+
* 4 балла --- реализован интерпретатор DSL, который поддерживает несколько функций, арифметические операторы над четырьмя типами: boolean, logical, enum и collection. При этом разрешается(и приветствуется) переиспользование существующего интерпретатора в любом виде.  
[https://heylink.me/FAFA138 fafa138]
+
* +2 балла --- реализован веб-сервис, предоставляющий редактор DSL с возможностью создания, сохранения(в любую СУБД, хоть redis) и редактирования существующих выражений с базовым автодополнением.
[https://heylink.me/FaFa138 fafa138]
+
* +4 балла --- продвинутое автодополнение, поддерживающее огромные словари, доступ к которым предоставляется через третий сервис(например, словарь генов).
[https://heylink.me/Fafa138 fafa138]
+
[https://magic.ly/FAFA138 fafa138]
+
===Контакты===
[https://fafa138slot.web.fc2.com fafa138]
+
Лев Хотов lev.khotov@bostongene.com
[https://heylink.me/FAFA138 fafa138]
+
[http://ec2-13-250-3-146.ap-southeast-1.compute.amazonaws.com/ fafa138]
+

Текущая версия на 13:35, 26 августа 2022

Ментор Лев Хотов
Учебный семестр Осень 2018
Учебный курс 3-4-й курс
Максимальное количество студентов, выбравших проект: 2-3



Что это за проект?

Существует некоторый язык описания биомаркеров(строгих описаний состояния, в котором находится пациент). Существует его реализация в виде Internal Groovy DSL. Однако подход internal DSL имеет серьезные конструктивные недостатки:

  • чудовищные проблемы с безопасностью
  • трудности в предоставлении удобного тулинга людям, не являющимся разработчиками(а DSL зачастую разрабатываются для них)

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

  • 8-я глава книги Implementing Domain Specific Languages with Xtext and Xtend - Second Edition.pdf (ссылка на книгу: https://goo.gl/4eJdS6)
  • Документация на сайте Xtext: https://goo.gl/iiVPW5

Пример выражения на DSL: mutation.load(gene: “BRAF”, type: MutationType.frameshift) > 0 && cna.deletion(gene: “KIT”)

Начальные требования

  • Уверенное чтение англоязычной технической литературы
  • Уверенное владение каким-либо объектно-ориентированным языком(Java, C#, C++, Python…)
  • Желание изучать Java

Чему вы научитесь

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

Какие будут использоваться технологии

  • Семейство похожих языков для JVM (Java, Kotlin, Groovy, возможно Xtend)
  • Eclipse Xtext для разработки DSL

Критерии оценивания

  • 4 балла --- реализован интерпретатор DSL, который поддерживает несколько функций, арифметические операторы над четырьмя типами: boolean, logical, enum и collection. При этом разрешается(и приветствуется) переиспользование существующего интерпретатора в любом виде.
  • +2 балла --- реализован веб-сервис, предоставляющий редактор DSL с возможностью создания, сохранения(в любую СУБД, хоть redis) и редактирования существующих выражений с базовым автодополнением.
  • +4 балла --- продвинутое автодополнение, поддерживающее огромные словари, доступ к которым предоставляется через третий сервис(например, словарь генов).

Контакты

Лев Хотов lev.khotov@bostongene.com