Re[2]: Написание своего DSL
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 10.09.20 21:56
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

M>>Запилил статейку на эту тему со своими практиками, предлагаю обсудить. Но — с конструктивом, а не просто: "ты лошара неграмотная, я тебя на работу не возьму".


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


Было, было.

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


НС>Особо неверно вот это:

НС>

НС>Делайте тупой построчный разбор. В 90 процентов случаев этого достаточно для DSL


Хочу не согласиться. Но, может, это просто моя "ошибка выжившего". Обычно хватает тупых инишек. Иногда — древовидных, где вложенность определяется отступами. Ещё реже — построчник с более хитрым синтаксисом, нежели у инишки. Полноценный лексер/парсер по всем правилам науки обычно нужен, если хочется парсить ЯП.

Я вот приводил пример своего языка
Автор: Marty
Дата: 10.09.20
. Построчник, маркер директивы — '$', маркер продолжения строки (как в сишечке) — '\', маркеры для тупого сплита строки — ':' '-'. Зато через неделю уже в бой пошло.

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


Дракон — драгон бук, что ли? Читал. Про образование — это типа задеть хотел? Я на кафедре ВТ учился, у нас было ближе к железу. Приятель учился на мат обеспечении ЭВМ, у них по парсерам был курс(ы). Я вот парсеры пишу между делом, а он 1С конфигурирует.


НС>Теперь про создание DSL в частности и языков в общем.


Спс. Хороший текст.

Но есть вопросы.
1) Примеры удачных DSL? Где взять? Чтобы с сорцами, чтобы понимать, как оно сделано. И сколько времени на это потрачено?
2) Тесты — хм. На них нет времени. Но у меня два отдела сотрудников, которые юзают мой DSL, если что-то не так — присылают исходники, которые его ломают.
3) Тесты — дампы AST как должно быть — руцами писать? У меня нет пары лет на вылизывание всего этого. Я за недельку по вечерам хочу тулзу сделать, чтобы снять часть рутины в основной работе
4) Вот пример
Автор: Marty
Дата: 10.09.20
исходника на моём языке. Он сейчас вполне всех устраивает. Если тебе не сложно, не мог бы ты коротенько написать, как бы ты сделал его разбор? Ну, и как можно улучшить сам язык

У нас эта шляпа используется для обмена данными по шинам RS-232, RS-485 и CAN по своему протоколу. Его автор краем глаза посматривал на CANopen. Сейчас вот появились сторонние устройства в нашей CAN-сетке с CANopen'ом, пришлось в том проекте пересесть на CANopen и этот язык отлично на него лег. А вот CANopen'овские EDS — для описания профилей устройств используют что? Да-да, тупые инишки. А могли бы нормально сделать, там куча бездельников, и за каждый сраный документ денег хотят
Маньяк Робокряк колесит по городу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.