Easyelectronics.ru

Электроника для всех
Текущее время: 25 мар 2019, 17:33

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 66 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 20 июл 2018, 07:24 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2143
Захотелось сочинить свой скриптовый язык.
Начал изучать тему - наткнулся на генераторы компиляторов, например CoCo/R.
Видео с лекциями посмотрел на тему компиляторов.
Понял - без пузыря не разобраться.
Или проще самому с нуля писать?
Никто подобным не интересовался?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 20 июл 2018, 09:32 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 2905
у человека видимо много свободного времени


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 20 июл 2018, 10:04 
Старожил

Зарегистрирован: 08 авг 2013, 09:43
Сообщения: 1547
Давно копался в каком-то проекте, где был bison/flex. Что-то поменял там, что нужно было и решил что ну его нафиг )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 20 июл 2018, 10:25 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1338
Pingvin, это очередная попытка сделать пользовательские скрипты в лазертаг?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 20 июл 2018, 10:34 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 2473
Pingvin писал(а):
Захотелось сочинить свой скриптовый язык.
Начал изучать тему - наткнулся на генераторы компиляторов, например CoCo/R.
Видео с лекциями посмотрел на тему компиляторов.
Понял - без пузыря не разобраться.
Или проще самому с нуля писать?
Никто подобным не интересовался?

Как минимум прежде чем браться за эту тему стоит почитать толковую книгу по теме. Например, "Грис Д. Конструирование компиляторов для цифровых вычислительных машин". Когда появится первое понимание - написать грамматику своего языка в форме BNF/EBNF. Сам разбор можно писать хоть руками, хоть с помощью компиляторов компиляторов (так традиционно называют то, что вы назвали генератором компиляторов). Если синтаксис удастся вписать в LL(k) грамматику, то самый удобный и простой вариант - использовать рекурсивный спуск. Его вполне можно писать руками, код получается вполне читаемый и, что очень полезно, он получается весьма похож на грамматику.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 20 июл 2018, 13:04 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2143
vt340 писал(а):
Pingvin, это очередная попытка сделать пользовательские скрипты в лазертаг?

Верно. :-)
Только почему очередная?
Кто то уже делал?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 20 июл 2018, 13:24 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2143
Книгу не нашел, но вот на лекции наткнулся.
https://www.youtube.com/watch?v=Qwai9cxD3ak


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 20 июл 2018, 14:29 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 1837
Откуда: Китай, Пекин
Цитата:
Парсеры, генераторы компиляторов.

на выходе предполагается получать бинарник?

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

разумнее подняться на уровень позволяющий абстрагироваться от железа. Для микроконтроллеров это исходники на С.

И соответственно "компилятор" уже становится кодогенератором.

Добро пожаловать! Писать программы - которые пишут другие программы это всегда "весело"!
Как когдато 1с ка на одном компе заменила отдел бухгалтеров, наступают времена когда один програмер кодогенераторщик заменит отдел програмистов.

Но на этом пути очень много грабель. Поскольку думать придется не только о низком уровне выходного кода, но и о проблемах на уровне самого кодогенератора.
Настоятельно рекомендую начать с изучения IntelliJ MPS Create your own domain-specific language

Когда я начинал делать BlackBox, MPS был в самом зачаточном состоянии, поэтому пришлось сидти своим путем.
Новые проекты буду делать только в нем.

Вот ещё небольшой обзорчик

_________________
unirail.org


Последний раз редактировалось cheblin 20 июл 2018, 17:55, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 20 июл 2018, 16:25 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1338
Pingvin писал(а):
vt340 писал(а):
Pingvin, это очередная попытка сделать пользовательские скрипты в лазертаг?

Верно. :-)
Только почему очередная?
Кто то уже делал?

Делал ли кто не знаю, но помню, что кое-кто тут уже поднимал тему скриптов для своего лазертага )
И каждый раз на нереально высоком [глубоком] уровне, и соответственно без шансов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 20 июл 2018, 19:57 
Только пришел

Зарегистрирован: 27 окт 2011, 17:16
Сообщения: 26
Pingvin писал(а):
Книгу не нашел ...

Есть на booksee.org - http://booksee.org/book/792044


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 20 июл 2018, 20:20 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 1837
Откуда: Китай, Пекин
dartav писал(а):
Pingvin писал(а):
Книгу не нашел ...

Есть на booksee.org - http://booksee.org/book/792044

перевод книги 1971 года? безнадежно устарело.
кстати в контексте вышеозвученного мной по кодогенерации предлагаю глянуть на такой интересный проектик как:

Excel to Code
Цитата:
excel_to_c - roughly translate some Excel files into C.
excel_to_ruby - roughly translate some Excel files into Ruby.

This allows spreadsheets to be:

Embedded in other programs, such as web servers, or optimisers
Without depending on any Microsoft code


используя банальный Excel описываем необходимое, и затем генерируем исходники.
напильником, скорее всего, поработать придется. но зато не с нуля.

_________________
unirail.org


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 20 июл 2018, 21:20 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1872
Откуда: Харьков
Ты еще скажи что Д. Кнут "Искусство программирования" безнадежно устарело...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 20 июл 2018, 21:55 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 1837
Откуда: Китай, Пекин
First edition, 1968 ? конечно устарело
именно поэтому вышло Third Edition 1997 года. и это книги посвященые теории.
а книги о компиляторах.... прочно привязаные к архитектуре, устаревают вместе с железом.

_________________
unirail.org


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 21 июл 2018, 03:06 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 2473
cheblin писал(а):
перевод книги 1971 года? безнадежно устарело

Не порите чушь, ей больно. Эта книга - теория и с тех пор ничего в этой области не изменилось. Во всяком случае эти знания не утратили актуальность.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 21 июл 2018, 03:16 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 2473
cheblin писал(а):
First edition, 1968 ? конечно устарело
именно поэтому вышло Third Edition 1997 года. и это книги посвященые теории. .

Книга упомянутая выше - тоже теория.
cheblin писал(а):
а книги о компиляторах.... прочно привязаные к архитектуре, устаревают вместе с железом.

Сразу видно, что вы их не читали. Там - самая что ни на есть база, и привязки к архитектуре там нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 21 июл 2018, 03:44 
Старожил
Аватара пользователя

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1629
PicoC
MicroPython


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 21 июл 2018, 11:37 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1338
evsi писал(а):
Книга упомянутая выше - тоже теория.

Книга экстремально старая, экстремально тяжёлая и абсолютно бесполезная в контексте топика [да и вообще]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 21 июл 2018, 12:34 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2016, 18:04
Сообщения: 1837
Откуда: Китай, Пекин
vt340 писал(а):
evsi писал(а):
Книга упомянутая выше - тоже теория.

Книга экстремально старая, экстремально тяжёлая и абсолютно бесполезная в контексте топика [да и вообще]

vt340 - выж вроди как давно тут, а пытаетесь возражать "памятнику радиоточке". это бессмысленно.

_________________
unirail.org


Последний раз редактировалось cheblin 21 июл 2018, 13:04, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 21 июл 2018, 12:53 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 832
vt340 писал(а):
Книга экстремально старая, экстремально тяжёлая и абсолютно бесполезная в контексте топика [да и вообще]

Большинство книг по компиляторам перегружены терминологией и абстрактными схемами, нужно быть очень продвинутым товарищем чтобы прочитать такое и потом что-то написать :) Из относительно нового могу порекомендовать Language Implementation Patterns и вот еще совсем недавно наткнулся на почти законченную книгу Crafting Interpreters от одного из разработчиков Dart, когда-то я его Game Programming Patterns читал. В обоих книгах много кода, в последнем случае на выходе получится готовый компилятор, даже если в процессе прочтения мало что понято :)

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 21 июл 2018, 19:13 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2143
cheblin писал(а):
Цитата:
Парсеры, генераторы компиляторов.

на выходе предполагается получать бинарник?

Нет, конечно.
Либо непосредственное исполнение на контроллере считанного с SD карты скрипта (интерпретатор).
Либо конвертирование скрипта в байт-код (софтиной на ПК) и выполнение его на контроллере (виртуальная машина).
Была и такая мысль - при первом чтении контроллер сам компилирует байт-код, в последующем исполняет его.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 21 июл 2018, 19:16 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2143
dartav писал(а):
Pingvin писал(а):
Книгу не нашел ...

Есть на booksee.org - http://booksee.org/book/792044

Спасибо большое!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 21 июл 2018, 22:25 
Старожил

Зарегистрирован: 27 апр 2013, 13:53
Сообщения: 908
Pingvin писал(а):
Была и такая мысль - при первом чтении контроллер сам компилирует байт-код, в последующем исполняет его.

Насколько важно придерживаться синтаксиса классических компьютерных языков программирования в вашем понимании?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 22 июл 2018, 11:39 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1338
Reflector писал(а):
Большинство книг по компиляторам перегружены терминологией и абстрактными схемами

Да я думал, что Pingvin дошёл за это время от книжного до какого-то практического подхода, наподобие того как alexsam излагал - viewtopic.php?f=56&t=35438 или как moxa делает - https://www.moxa.com/doc/man/Click-n-go_V2_UM_e3.1.pdf
Потому как даже если получится сделать некий транслятор текст-->байткод, то сразу возникнет вопрос как им пользоваться


Последний раз редактировалось vt340 22 июл 2018, 12:55, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 22 июл 2018, 12:54 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2143
KPG писал(а):
Pingvin писал(а):
Была и такая мысль - при первом чтении контроллер сам компилирует байт-код, в последующем исполняет его.

Насколько важно придерживаться синтаксиса классических компьютерных языков программирования в вашем понимании?

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Парсеры, генераторы компиляторов.
СообщениеДобавлено: 22 июл 2018, 13:26 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 3931
Откуда: г. Липецк
Но это же скриптовый интерпретатор, LUA например, да много их под разные платформы и языки. Пользуйтесь тем что есть, зачем изобретать свое?
P.S. LUA имеет С подобный синтаксис, конечному пользователю может быть сложно, есть скриптовые языки с Паскале-подобным синтаксисом. Для гурманов в конце концов есть Форт...
Pingvin писал(а):
...Подразумевается, что скрипты писать будут пользователи, а не программисты...

Все программы MS Office включают возможность написания скриптов на Visual Basic. И что, все конечные пользователи на нем пишут? Скорее тянут с инета написанное программистами.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 66 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB