Pull to refresh
0

User

1
Subscribers
Send message

Не сказали в какую сторону смотреть.

В 2026 году вопрос "лексинга и парсинга" грамматики ЯП не является актуальным (выглядит так, что человеку наверху очень хотелось "зацепить" автора, ну оттоптался он на 16-летнем парне который молодец, но повторять за ним зачем?)

Если этот вопрос каким-то чудом попал на повестку дня, то средства в таком порядке от "типового парсера для PoC" до продукта выглядят примерно так:

  1. Парсинг грамматики "из коробки": Antlr, Bison, Yacc (огромный класс на выбор). Возможно что-то есть под вашу конкретную задачу.

  2. Библиотеки парсер-комбинаторов (почти всегда мой выбор, хвалить могу долго совмещают и плюсы и минусы "1" и "3"). Главный минус - новичок может словить экспоненциальную сложность - но в парсинге ЯП это почти исключено.

  3. Самописные библиотеки под конкретный ЯП - если нужны содержательные сообщения об ошибках и хороший Error Recovery и Ad Hoc прокидывания состояний из парсера в лексер.

Через теорию формальных грамматик пишут формльные грамматики для ЯП.

Сам же ЯП и компилятор к нему столь же далёк от "формальой грамматики" как реальный самолёт, от платоновского "духа полёта".

Лексер и парсер - исчезающе малая часть компилятора.
Стандартные средства (Antlr, Bison, Yacc) - настолько плохо справляются даже с этой задачей, что в эту сторону лучше даже не смотреть.

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

Это утверждение следует доказать.
Т.к. закон сохранения энергии при течении жидкости формулируется для потока, а не для отдельных частиц.

П.С.
Да любое произвольное утверждение может быть "случайно верным" или "случайно не верным". Но в науке утверждения всё-таки принято доказывать.

Каждый раз, когда я нарушал одно из правил леса, я всегда вспоминал этот список.

Это классическая логическая ошибка, называется инверсия импликации.
Как будет правильно (при условии что в выдуманной статье персонаж говорит правду)? Правильно будет: "каждый раз когда обнаруживались проблемы - выяснялось, что я нарушал одно из правил".
Чуть-чуть по-другому да?

Однако обе крайности - быть параноиком и совсем не заботится о безопасности вредны.
Параноик платит кратным снижением производительности, беззаботный - повышением числа инцидентов.

Профессионал же умеет отличать безобидные ситуации от потенциально опасных. В безобидных - не тратит лишнее время на перестраховку. В потенциально опасных - тратит больше ресурсов на уменьшение рисков.

нет вы, как и человек выше путаете Undefined Behavior c Implementation Defined Behavior ( https://timsong-cpp.github.io/cppwp/n4868/impldefindex ).

К стати есть ещё unspecified behavior (это когда есть несколько вариантов реализации и разработчик вправе использовать один из них - ну что-то типа BE \ LE, или выпеленное в 2020 году Ones' component \ two's component).

Ну лично я бы проверил, что он вообще понимает что такое VCS[ystems].
В смысле что человек пользуется инструментами на отличном от "нажми на кнопку произойдёт магия" уровне.

Тут скорее вопрос - "на какую вакансию претендуете: джун / мид / синьёр".

Давайте проверим одну из (по какой у меня есть экспертиза) ваших компетенций ДО КОНЦА. И проверим соответствует ли она лычкам которые вы хотите.

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

П.С.
Но в целом не понимать в 2к26 принципы VCS-систем (не конкретные ключи git) - для джун+ уже очень странно.

UB в спеке означает "компилятор волен выбирать сам, какое поведение использовать"

Нет. Вы путаете UB(undefined behavior) и IB (implementations behavior).
UB - это именно "может произойти всё что угодно". Например если мы переполняем signed int (например чтобы вернуть потом как часть структуры) выше по коду - то ниже по коду войдём в ветку с заведомо неверным условием, где сохраним неверное второе поле структуры.
Или например "return из функции удалился (соптимизировался)" и вместо возврата мы начали выполнять следующую ф-ию с её начала.


Также разница между "UB ведут себя достаточно предсказуемо" и "при UB в коде и О3-О2 компилятор переврёт ф-ию до неузнаваемости" случился в районе начала 2020х.
My best guess - компиляторная команда продавила-таки формальный подход что компилятор обязан то, что написано в его спеке и ни битом разумного больше.

Статья - классная завязка на "подумать" (хотя остановилась в самом интересном месте).

Начал изучать - есть ли скин-эффект в Copper Pillars - и выяснил, что нет.
Во-первых керамические конденсаторы стоят сразу после них (именно чтобы убрать скин-эффект).
А во вторых микро-конденсаторы стоят прямо в слоях металлизации. Об это КРАЙНЕ полезно было бы упомянуть в статье: https://ieeexplore.ieee.org/document/9943549

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

Существует измеримый коллапс поколений в устойчивом и осмысленном переводе, и переводческая сфера реагирует на это импровизацией нейросетей и иногда — истощением здравого смысла, а не структурной перестройкой, которую требует профессия».

Очевидно, что себестоимость вайбкодинга для компаний, при фиксированном качестве будет снижаться со временем (на горизонте 2-5 лет это будет заментно).

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

В 2004 году переповторили классическое исследование Стивен Крашена (где comprehensible input превзошло стандартную методику преподавание с преподом).

И внезапно в 2004 году - CI снова превзошло стандартную методику (правда всего по 4 из 6 показателей).

Да это при том, что преподаватели заведомо не были шарлатанами.
https://www.sciencedirect.com/science/article/abs/pii/S0346251X03000964

===================

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

В реальности нужно рассчитывать на медианного преподавателя. А медианный полуторатыщерублёвый преподаватель действительно нужен, для самого-самого начала которое в принципе в школе дают. А дальше хорошо если мешать не будет (см первую часть ответа) и уж точно по способностям что объяснения, что составления нормальной программы хуже нейросети.

А вот исправлять редкие ошибки или отвечать на сложные и заковыристые вопросы "как и почему так устроена вот эта часть языка" - ментора на час в неделю как раз хватит (я думаю что пока ещё нейронки его вряд ли заменяют).

Примерно до 1970 года преподаватели английского в универах немножечко мешали - если убрать препода и просто сравнивать с чтением \ слушанием материалов по уровню (см. comprehensible input Стивена Крашена).

С тех пор, конечно, в передовом обучении языкам произошла революция, но в бытовом обучении остались проблемы. Если честно - я думаю что преподаватель для изучения языков не нужен, нужен ментор 1 час в неделю (по х2 тарифу от "преподавателя") отвечающий на сложные вопросы. С преподавателем же вот какой набор скрытых проблем:

  1. Чтобы достигнуть уровня С1 нужно примерно 1_500_000 рублей - что исходит из 1000 часов с преподавателем (у русских как и вообще славяноязычных есть поправочный коэффициент кэмбриджской норме в 700-800 часов с преподавателем).

  2. Качество медианных преподавателей часто не такое же высокое, как рассказывают в передовых методиках

  3. Сегодня чтобы составить себе comprehensible input программу - достаточно поговорить с нейросеткой, которая сама определит твой уровень какие материалы смотреть\слушать\читать в зависимости от сложности и "lexile measure" материалов

  4. У недобросовестных учителей остался последний оплот почему люди должны нести им деньги - "священная идеальная грамматика". Прикол в том, что она не нужна. Человеку нужно нормально изъясняться (для этого достаточно 3.5 грамматических форм) и точно также нормально понимать что ему скажут на international english. При этом говорить достаточно бегло, достаточно понятно, использовать привычные в ЕГО ТЕКУЩЕЙ СРЕДЕ распространённые слова выражения и конструкции.

Сколько слов ты сейчас знаешь

Активный словарный запас, обычно в 2-4 раза меньше пассивного (для изучающих иностранный).

  • Такая разница несомненно имеет большое значение если надо научить пользователя языку (и на этом заработать денег).

  • Такая разница (в 2-4 раза) - имеет очень мало значения если цель - втюхать пользователю подписку, а дальше - пользователь сам подписался, сам не мамонт.

У вас в приложении как?

Если что - моё предложение начать заново в силе (кажется я понял что вы имеете в виду - но додумывать за вас вашу работу не хочу - в конце концов не я залетел в трэд с двух ног с придирками к определению).

=======================================

I.
Вы так и не привели контрпример - который бы противоречил приведённому мною определению.

II.
Вы повторяете то, что я гораздо кратче (и глубже с точки зрения иерархии абстракций) описал 3 дня назад.
Зачем?

III.
Вы так и не смогли привести где я говорил, что "параллелизм это модель" - или эквивалентное, например "параллелизм является моделью".
Факт.

IV.
> Но добавлю, что параллелизм – это и не свойство модели исполнения тоже. Он (параллелизм) вообще не имеет непосредственного отношения к тому, как устроены процессы.

> параллелизм - это техническая характеристика вычислительной системы

А потом этот человек обижается, что ему указывают на его ошибки как-то слишком "строго".

Update:
Наш разговор уходит в какие-то мелочи.
Если хотите - можем начать заново с формулировки позиций с чистого листа.

===============================================

  1. Докопаться до определнения.

  2. Совершить 3 очевидные ошибки когда были поставлены в равные условия.

  3. Жаловаться на "менторский" тон.

Л - логика.

П.С.

Параллелизм - это не модель исполнения

Снова ошибка №2 (из пунктов выше) - вы спорите с тем, чего я не говорил. В очередной раз.

Если я не прав - вы же с лёгкостью процитируете где я сказал, что "параллелизм - модель...." (а не например свойство модели или например google: "модель параллельных процессов" или ещё что-то похожее по форме но иное по содержанию)".


Или опять будете прятаться за "неправильный" тон собеседника.

Параллелизм - это физическое понятие - определённая зависимость от времени, а не логическое. Тут не в последовательности операций дело.

Вполне себе логическое. CS-еры \ компиляторщики именно так об этом и говорят. Более того, определение дано именно в таком ключе (как о гарантиях для всех случаев) - если вас это смущает, могли бы сразу об этом и написать. А не портить объяснения об IT неуместными аналогиями с "завтраками" (как это очень любят делать нейросетки, например).

==============
Ну и до кучи ошибки допущенные вами:

  1. Вы пытались доказать неверность моего определения, а доказали (доказали с ошибкой) неверность какого-то левого выдуманного вами. Зачем?

  2. Вы пытаетесь совершить логическкую ошику "инверсия импликации". (a => b) => (!b => !a). Не надо так.
    Если предусловие не выполняется импликация всегда истинна, просто запомните.

  3. Зачем Вообще говорить о параллельности полностью независимых процессов \ потоков? О параллельности говорят когда потоки как-то влияют друг на друга: control flow \ data flow \ да хоть замедление выполнения или увеличение времени отклика.

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

Не понимаю как это делает невалидным определение (не говоря уже о использовании каких-то мутных конструкций типа "фактически последовательных".
Из-за мутности примера кажется что вы хотели использовать инверсию импликации - но точно утверждать не могу).

Пожалуйста приведите конкретный пример последовательности операций при многопоточности когда моё определение не верно.

Это другая параллельность - на уровне микроархитектурной реализации.

Ваш студент применил термин "параллельные процессы" - пришлось пояснять все три источника параллельности в аппаратуре.
Если бы в примере была, например "вытесняющая многозадачность" - я бы рассказал только про неё.

Так что ваши разъяснения (1) (2) и (3) - говорят что предполагаемый студент просто плохо понимает термины которыми пользуется и если он сказал "параллельные процессы" то ответ будет именно про них.
===================================================

Если же говорить про дедактическую часть - то да, разумеется вы правы и про вытесняющую многозадачность следует рассказать в курсе ОС.

Но всё равно - рассказать про "контекст процесса" и "переключение контекста" вполне можно без регистров. И это будет не "магия" а "таков API", через месяц пройдём.

П.С.
Извините - вопрос распался на 2 "фактология" vs "дидактика" я не очень понимаю про какую вы сейчас.

Если это определение неверное - вы легко приведёте контрпример.
Пожалуйста.

1
23 ...

Information

Rating
4,561-st
Registered
Activity