дыбро

Nov. 10th, 2017 06:15 pm
netch80: (finch)
[personal profile] netch80
Немного IT-дыбра.

Обновил и подлатал представления о теме синтаксического анализа и вокруг. Общий вывод - всё достаточно грустно, разрыв теории с практикой достиг состояния "не сходятся, и всем пофиг". Все более-менее сложные реальные проекты творят нисходящий закат солнца вручную (Clang, Go...) или делают хитрые подпорки под относительно стандартные средства (как bison в GCC, но со специфичными C/C++ хаками, когда лексер смотрит в таблицы идентификаторов). Особенно "порадовало" Most vexing parse - после такого однозначно понятно, почему Go, Rust, Swift (и наверняка ещё много кто) взяли паскалевский порядок слов в определениях. (Напоминает конкуренцию SVO/SOV/etc. в живых языках и её последствия в виде позиции определяющего слова.) Или аналог для C# - когда парсинг конструкции вида f(G<1,2>(7)) зависит от достаточно "левых" признаков вроде следующих скобок.
При этом много голосов за "нематематичные" подходы вроде PEG (для которого фиг определишь в общем случае, написал конфликтную грамматику или нет - приоритеты и контекстные ограничения гарантируют разбор стандартных случаев, а там хоть трава не расти).

Обнаружил, что, несмотря на достаточно большой опыт в C/C++, не вляпывался до сих пор в самые мрачные варианты undefined behavior и его последствий, типа такого. И при этом никто не учит, что "here may be dragons" (целыми стадами) - например, Шилдт («C++ базовый курс») вообще ни слова, Страуструп - одно упоминание вскользь на 1000 страницах; в вузах тоже про это ни слова (по тому, как учили дочку); словно завеса умолчания, после которой вдруг встречаешься с последствиями, когда приступаешь к реальной работе. Как-то всё это странно. (Ещё ссылок, кому надо: 1, 2.)
Радует, что при всём при этом уже есть средства (как UB sanitizers) детекта заметного количества таких ситуаций (так что плотность их влияния на некорректность выходного результата становится ниже плотности влияния испорченной памяти).

Перевёл домашний настольник с FreeBSD на Linux. Причина - при переходе на 11ю фрю начало саморесетиться в произвольные моменты, но при реальной загрузке (два браузера) не жило больше 10 минут. На форуме не помогли, были только смутные обвинения видео в Haswell процессоре. Но умудрялось падать даже в Virtualbox, то есть видео ни при чём. Времени и настроения разбираться не было, так что привет, Kubuntu (такая же, как на работе и на лаптопе). Linux по крайней мере там работает :) но обидно. У фряхи было таки много мелких, но приятных удобств.

Осознал, что после превращения linkedin в обыкновенную соцсеть с лайками - присутствие на нём означает не только цель куда-то перейти, но и просто почитать что-то от коллег :) Для поддержки этой ситуации - начал закидывать такие же заметки на linkedin (на английском). Ну, начал - громко сказано :) но парочка есть ;)

Date: 2017-11-10 05:58 pm (UTC)
From: [identity profile] filonov.livejournal.com
Потихоньку склоняюсь к мысли, что человеко-читаемый формат хранения программ надо бы закопать чем быстрее тем лучше.
Машиночитаемый вариант порешал бы довольно много проблем, а современные процессорные мощности позволяют нарисовать в реалтайме желаемую для программиста картинку (чем собственно большая часть вменяемых IDE и так занимается).

Идея в общем не новая (настолько не новая, что гугль уже даже по SCID не находит искомого без подсказок), но вменяемых реализаций за 15+ лет так и не появилось.

Date: 2017-11-10 09:08 pm (UTC)
From: [identity profile] filonov.livejournal.com
Лисп не позволяет получить рендеринг во что-то внятно читаемое, в силу изначальной же ориентированности на человекочитаемость.

Date: 2017-11-10 06:51 pm (UTC)
From: [personal profile] moonofnovember
саморесет в произвольные моменты может вылечиться апдейтом микрокода

Date: 2017-11-10 08:59 pm (UTC)
From: [personal profile] moonofnovember
Просто это очень напомнило мои проблемы с hsw - спорадические зависания/ребуты; может где-то (в ядре?) встречается последовательность инструкций, от которых процессору плохо.

Попробуйте - проапдейтить микрокод недолго.

Date: 2017-11-10 09:02 pm (UTC)
From: [personal profile] moonofnovember
Меня на мысль об апдейте навела вот эта статья https://geektimes.ru/post/290461/

Date: 2017-11-24 07:32 pm (UTC)
From: [personal profile] anonim_legion
Интересно, а сколько бы стоила починка конкретно этого крэша? То есть - поиск разработчика freebsd и оплата ему за устранение.

Profile

netch80: (Default)
netch80

September 2025

S M T W T F S
 123456
78910111213
1415 1617 181920
21222324252627
282930    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 2nd, 2026 06:25 am
Powered by Dreamwidth Studios