LINUX.ORG.RU

Нужны ли компиляторам универсальные парсеры?

 , ,


3

5

Доброй пятницы, ЛОР.

Вопрос в первую очередь тем, кто погружался в исходники компиляторов: gcc, clang, rustc, fpc, go… Используют ли они универсальные инструменты для лексического анализа и разбора — все эти flex, bison и др., которые рекомендуют учебники?

Или же там для разбора исходников написано что-то своё, более низкоуровневое?

И второй вопрос — что посоветуете человеку, который хочет что-то вытаскивать из написанного людьми (*) кода на C или C++? Пойти по классике и упороться flex-ом или?..

В первую очередь интересен первый вопрос, особенно в части gcc и clang. Жду рассказов людей, которые туда погружались и выплыли. :)

(*) - так-то понятно, что можно повесить вывеску «принимается только код, обработанный бьютифаером» и по-бырому сделать «парсер» на регулярках, а то и вручную. И «для себя» и даже для небольшого коллектива это будет вполне нормальное инженерное решение, даже в чём-то юниксвейное. А вот если задаться целью сделать как следует…

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

castxml globals.cpp --castxml-gccxml -o ./out.xml -I ../core -I /usr/include/qt4

Upd2: gcc-xml, предшественник CastXML, тоже поддерживает ключ -I, но в имевшемся у меня мане он не описан. Выходной файл в этом случае задаётся ключом -fxml=...

Всем спасибо за помощь.

★★★★★

Последнее исправление: hobbit (всего исправлений: 4)
Ответ на: пользуйтесь на здоровье :)) от anonymous

«Заходи» /из «Белое солнце пустыни»/.

Грамматика языка 1С 7.7
(с) А.С. Орефков

http://1c.alterplast.ru/files/ocs/
http://1c.alterplast.ru/files/ocs/ocs-2014-01-21.dos.zip
http://1c.alterplast.ru/files/ocs/ocs-2014-01-21.win.zip

В них имеется файл lang1c.y в директории "… OpenConf_Scripts\СистемныеФайлы\1CLangParser".

Владимир

anonymous
()
Ответ на: пользуйтесь на здоровье :)) от anonymous

Спасибо!

Много чего хотелось бы сказать, но каждый раз останавливает помысел - «Владимир, хвастовство людей не красит».

Владимир

anonymous
()
Ответ на: комментарий от metaprog

Sorry повторю message /а то @metaprog не прочитает/.

Не унывайте.

«Задайте вопрос на русском форуме и вам расскажут, какой вы мудак, все ваши родственники до пятого колена и ваша собака»

Владимир

anonymous
()
Ответ на: ещё про STEP от anonymous

здесь (спасибо, DR_SL. неплохую выжимку сделал).

как полезно читать стандарт. внезапно, PDF по ссылке по 9 сноске – это пример схемы данных, моделей данных для функциональных сетей SPICE для моделирования схем.

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

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

в первом приближении, нагуглилось jsdai и нечто на лиспе, eengine. какое-то тяжеловесное и то, и другое.

запилить что ли, свой велосипед на Spoofax и/или, ANTLR…

ну и рисовалку какую-то прикрутить.

anonymous
()
Ответ на: комментарий от anonymous

внезапно, текстовые языки.

Express-G не такой уж и текстовый.

anonymous
()
Ответ на: комментарий от anonymous

хотя по-настоящему вставляет эта обучалка на Red.

берём один архив, распаковываем и получаем предустановленное «IDE» на базе NotePad++, лол.

колбасим код и нажимаем [>]. или с шестерёнкой, чтобы .exe получить.

скорость разработки взлетает в небеса просто.

а если этот ребольный код кодогенерировать из какого-то jsdai, то ….

или взять смоллток spry + Nim + NiGui, и кодогенерировать им в сишечку.

anonymous
()
Ответ на: комментарий от metaprog

Реализуйте для начала не «графический Си», а возможность
графической записи алгоритмов и возможности формирования библиотек на их основе.

Графические диаграммы LabView может быть и удобны для разработки
кода для работы с разными железяками, но примеры диаграмм, которые вы ранее приводили «трудно понимаемы».

Они похожи на "тайнопись", которую программист должен понять.

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

Шутка /но в ней и смысл имеется/.

Если вам удастся это достичь, то ваше имя программисты будут произносить с трепетом и дрожью в голосе /включая и Торвальдса/.

Владимир

anonymous
()
Ответ на: комментарий от anonymous

Добавочка /шутка/ к:

Если вам удастся это достичь, то ваше имя программисты будут произносить с трепетом и дрожью в голосе /включая и Торвальдса/.

А некоторые при этом будут падать на колени и посыпать голову пеплом.

Владимир

anonymous
()
Ответ на: комментарий от anonymous

Еще …

Графическая запись алгоритмов не должна быть «прибита гвоздями» к Си.
Здесь самое трудное - создание графического концепта для записи алгоритмов.

PS: Если сумеете создать, то однозначно будут использовать.
И Nginx будет стоять в стороне с «нервной дрожью».

Владимир

anonymous
()
Ответ на: комментарий от anonymous

К еще, еще …

И лишь после создания графического концепта для записи алгоритмов,
реализовать /один из вариантов/ графического языка программирования.

Владимир

anonymous
()
Ответ на: комментарий от anonymous

«Задайте вопрос на русском форуме и вам расскажут, какой вы мудак, все ваши родственники до пятого колена и ваша собака»

Есть такое. Даже антиметапрогер rebforce писал:

Что, никогда не было такого, когда на очередном форуме в домене .сру этот самый социум оказывался таким поциумом, что хотелось всех послать вследствие обстановки вездесущего на этих форумах хамства, барыжничества, лицемерия и ЧСВ, когда все вокруг корчат из себя непонятно кого? Никогда не было чувства, когда понимаешь, что тебя и твою команду от мирового господства, хоть и в очень узкой сфере, отделяет наличие файлика размером не более 290 КБ, а все вокруг либо вообще не вдупляют, о чём ты им говоришь, либо намеренно кидают этот файлик в зашифрованном виде?

metaprog
()
Ответ на: комментарий от byko3y

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

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

t184256 ★★★★★
()
Ответ на: комментарий от t184256

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

Откуда инфа? Да, по ощущениям похоже на то, что ты описываешь, но вот проблема - кроме крестов было еще много полигонов, про которые нынче уже никто не знает. Но почему-то именно кресты стали очень популярными.

byko3y ★★★★
()
Ответ на: комментарий от anonymous

@liksys @i-rinat @balsoft @shpinog @DELIRIUM @AntonI

Довожу до вашего ведома, что теперь имеется RSS-лента, посвящённая цитатам нашего гуру квадратных уравнений и урановых самоваров. Можно подписаться и получать свежие перлы со ссылками на них.

anonymous
()
Ответ на: комментарий от anonymous

Довожу до вашего ведома, что теперь имеется RSS-лента

Как раз всегда хотел начать пользоваться RSS.

shpinog ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.