Сообщение Re[21]: Опциональные типы от 09.03.2017 3:59
Изменено 09.03.2017 4:03 vdimas
Re[21]: Опциональные типы
Здравствуйте, fddima, Вы писали:
F>Шейдерные диалекты пожалуйста спусти в унитаз. Там размеры ультракрошечные и никомуненужечные почти
Тем не менее, юзают.
Это же почти С.
F>EDG же пишет что MS вроде как их юзают в IDE но никак ни в компиляторе. Насчет icc — ещё более пространственные намёки.
NDA — оно такое, угу. ))
EDG is a front-end used by Intel and Comeau.
F> Я хер не знаю что такое EDG, И знать не хочу как он устроен, если эти дибилы его сделали на GLR и ты там работаешь — вы сами себе доктор. Если эти дибилы его просто сделали на GLR — то опять дибилы. Пойми, что в современных процах исключительно все data-dependent algorithms — сосут адски по скорости потому что предсказание ветвлений будет обламываться часто. Хотите скорости... изучайте матчасть проца. Т.е. развопачивайте. Что вручную и делают. В конкретных (т.е. целый язык — ситуациях).
Ммм... Ну вот поэтому не всегда однозначно, какой код лучше для парсинга — на условных ветвлениях или на таблице переходов.
Потому что в первом случае предсказатель может ошибиться и сбросить конвейер, а в другом случае таблица переходов может быть достаточно велика и сбрасывать кеш проца при ходьбе по ней.
Вопрос (не уверен, что правльно понял): алгоритм работы лексера — это "data-dependent algorithms"?
Ну вот базовый LR(0), из которого сделали GLR, он работает примерно по алгоритму лексера.
F>Мэйнстрим нахер о таком не знает потому что icc и мэйнстрим — это вообще вещи несвязные.
Под линухами популярно, когда требуется генерить хорошо оптимизированный код.
Потому что GCC не умеет нихрена.
F> В общем или обрисуй прямо выкладками или давай примем то, как оно есть — в C++ мэйнстриме пока, что побеждают рукописники RD/LL. Никаких альтернатив тут нет. Причину я уже выше озвучил почему табличники в наиве сосут. Неужели это не было ясно с самого начала?
Табличные парсеры работают БЕЗ условных ветвлений.
Это безусловное косвенное извлечение данных.
Современные процы умеют делать такое извлечение еще на этапе предвыборки, т.е. такие вещи занимают ровно 0 тактов процессора (если данные уже в кеше).
F>Тем более одно дело если у нас шарп илиЯва. А C++ с его forced forward declarations — там RD/LL просто делает это.
Порой LL — наихудшее решение.
F>Вот распрасить тот же шарп — посложнее.
Разве?
Грамматика более однозначная.
F>А вот плюсы — в том то и дело что за счёт forward declarations — тривиально.
Не тривиально. Рядом я приводил неоднозначности.
Сложность разбора состоит не только в размере грамматики, но и в степени её однозначности.
F>Классический просто порождает херову ненужную тучу (ага, а всё равно не бесплатную) вариантов.
Ну вот при разборе арифметических выражений, взаимных вызовов ф-ий, операторов языка — не порождает никаких вариантов.
Потому что однозначность.
F>Статьи наглядно показывают соотношения вариантов и единственного правильного пути. 1/30К по сути.
В какой грамматике и в каких данных?
В случае 1/30к у LL-парсера будет 30к откатов.
F>WH, в отличие от тебя хоть как-то пытается аргументировать.
Нет, не пытается.
Он пытается попускать окружающих или сыпет "аргументами" уровня букваря и обрывками прочитанного из Сети, даже мало относящегося к конкретному спору. Офтоп от него — дело обычное. Часто меняет тему, часто пытается перекрутить исходный спор.
ИМХО, это НЕ аргументы, это шумовой фон с целью раскидать внимание собеседника.
И я не уверен, что он это делает специально.
Просто не видит свою линию защиты со стороны.
F>Ты же аппплируешь к вещам никому неизвестным. Тот же EDG. Аппелировать к чёрному ящику — это неспортивно. Во-вторых — в коммерческих продуктах как ты говоришь "ВСЕХ" оно точно не используется.
Оно точно используется почти во всех.
F>Мда. Шейдерные языки. Посмеши нас ещё раз пожалуйста. Шейдерные языки или мегабайты парсинга.
Показанная мною неоднозначность С++ характерна и для С.
Как раз-таки шаблонные навороты С++ НИКАКОЙ неоднозначности не добавляют.
А мы же о неоднозначностях говорим, верно?
F>Я легко читаю и приемлю твои свободные определения некотоых вещей. Но странно — от других ты резко требуешь классику. С чего бы.
Потому я никогда никого не "ловлю", я просто делюсь инфой и могу напомнить некие вводные положения по некоей теме перед тем, как собираюсь что-то озвучить из той области. Считаю этот подход единственно адекватным. Здесь никто никому и ничем не обязан. Мы можем только делиться некоей инфой. Кому захочется больше — тот будет копать больше. Если что-то будет непонятно — можно спросить.
И это, ес-но, противоположный подход тому, что некоторые пытаются кого-то там "поймать на незнании" и больше никакой цели не имеют. ))
Мало того, что сами по себе такием манеры г-но... Тут ведь еще изволь сам тогда соответствовать, верно?
Да вот не изволят нифига в 100% случаев. )))
Потому что это вообще наивность, вот такая "ловля" при работающем интернете у оппоненета.
Ну даже если не владел чем-то оффтопным на некий момент, и?
Назавтра почитал и уже владеет.
Т.е., сам по себе такой подход, помимо того, что это снобистские г-но манеры, так это еще откровенный идиотизм получается (по описанным причинам).
F>Вот VD2 vs WH — это круто. Тож спорят ниочём. Но хотя б пластинка была новая.
WH теоретик, но лентяй.
VD2 практик и администратор, способен вести "долгоиграющие" проекты, но уже устал от теоретика-лентяя.
Вот и всё, что там происходит.
F>Я эт к чему. Не потому что умный. Наоборот. Хочу новых страстей почитать.
Это ты был навеселе, похоже. ))
F>Шейдерные диалекты пожалуйста спусти в унитаз. Там размеры ультракрошечные и никомуненужечные почти
Тем не менее, юзают.
Это же почти С.
F>EDG же пишет что MS вроде как их юзают в IDE но никак ни в компиляторе. Насчет icc — ещё более пространственные намёки.
NDA — оно такое, угу. ))
EDG is a front-end used by Intel and Comeau.
F> Я хер не знаю что такое EDG, И знать не хочу как он устроен, если эти дибилы его сделали на GLR и ты там работаешь — вы сами себе доктор. Если эти дибилы его просто сделали на GLR — то опять дибилы. Пойми, что в современных процах исключительно все data-dependent algorithms — сосут адски по скорости потому что предсказание ветвлений будет обламываться часто. Хотите скорости... изучайте матчасть проца. Т.е. развопачивайте. Что вручную и делают. В конкретных (т.е. целый язык — ситуациях).
Ммм... Ну вот поэтому не всегда однозначно, какой код лучше для парсинга — на условных ветвлениях или на таблице переходов.
Потому что в первом случае предсказатель может ошибиться и сбросить конвейер, а в другом случае таблица переходов может быть достаточно велика и сбрасывать кеш проца при ходьбе по ней.
Вопрос (не уверен, что правльно понял): алгоритм работы лексера — это "data-dependent algorithms"?
Ну вот базовый LR(0), из которого сделали GLR, он работает примерно по алгоритму лексера.
F>Мэйнстрим нахер о таком не знает потому что icc и мэйнстрим — это вообще вещи несвязные.
Под линухами популярно, когда требуется генерить хорошо оптимизированный код.
Потому что GCC не умеет нихрена.
F> В общем или обрисуй прямо выкладками или давай примем то, как оно есть — в C++ мэйнстриме пока, что побеждают рукописники RD/LL. Никаких альтернатив тут нет. Причину я уже выше озвучил почему табличники в наиве сосут. Неужели это не было ясно с самого начала?
Табличные парсеры работают БЕЗ условных ветвлений.
Это безусловное косвенное извлечение данных.
Современные процы умеют делать такое извлечение еще на этапе предвыборки, т.е. такие вещи занимают ровно 0 тактов процессора (если данные уже в кеше).
F>Тем более одно дело если у нас шарп илиЯва. А C++ с его forced forward declarations — там RD/LL просто делает это.
Порой LL — наихудшее решение.
F>Вот распрасить тот же шарп — посложнее.
Разве?
Грамматика более однозначная.
F>А вот плюсы — в том то и дело что за счёт forward declarations — тривиально.
Не тривиально. Рядом я приводил неоднозначности.
Сложность разбора состоит не только в размере грамматики, но и в степени её однозначности.
F>Классический просто порождает херову ненужную тучу (ага, а всё равно не бесплатную) вариантов.
Ну вот при разборе арифметических выражений, взаимных вызовов ф-ий, операторов языка — не порождает никаких вариантов.
Потому что однозначность.
F>Статьи наглядно показывают соотношения вариантов и единственного правильного пути. 1/30К по сути.
В какой грамматике и в каких данных?
В случае 1/30к у LL-парсера будет 30к откатов.
F>WH, в отличие от тебя хоть как-то пытается аргументировать.
Нет, не пытается.
Он пытается попускать окружающих или сыпет "аргументами" уровня букваря и обрывками прочитанного из Сети, даже мало относящегося к конкретному спору. Офтоп от него — дело обычное. Часто меняет тему, часто пытается перекрутить исходный спор.
ИМХО, это НЕ аргументы, это шумовой фон с целью раскидать внимание собеседника.
И я не уверен, что он это делает специально.
Просто не видит свою линию защиты со стороны.
F>Ты же аппплируешь к вещам никому неизвестным. Тот же EDG. Аппелировать к чёрному ящику — это неспортивно. Во-вторых — в коммерческих продуктах как ты говоришь "ВСЕХ" оно точно не используется.
Оно точно используется почти во всех.
F>Мда. Шейдерные языки. Посмеши нас ещё раз пожалуйста. Шейдерные языки или мегабайты парсинга.
Показанная мною неоднозначность С++ характерна и для С.
Как раз-таки шаблонные навороты С++ НИКАКОЙ неоднозначности не добавляют.
А мы же о неоднозначностях говорим, верно?
F>Я легко читаю и приемлю твои свободные определения некотоых вещей. Но странно — от других ты резко требуешь классику. С чего бы.
Потому я никогда никого не "ловлю", я просто делюсь инфой и могу напомнить некие вводные положения по некоей теме перед тем, как собираюсь что-то озвучить из той области. Считаю этот подход единственно адекватным. Здесь никто никому и ничем не обязан. Мы можем только делиться некоей инфой. Кому захочется больше — тот будет копать больше. Если что-то будет непонятно — можно спросить.
И это, ес-но, противоположный подход тому, что некоторые пытаются кого-то там "поймать на незнании" и больше никакой цели не имеют. ))
Мало того, что сами по себе такием манеры г-но... Тут ведь еще изволь сам тогда соответствовать, верно?
Да вот не изволят нифига в 100% случаев. )))
Потому что это вообще наивность, вот такая "ловля" при работающем интернете у оппоненета.
Ну даже если не владел чем-то оффтопным на некий момент, и?
Назавтра почитал и уже владеет.
Т.е., сам по себе такой подход, помимо того, что это снобистские г-но манеры, так это еще откровенный идиотизм получается (по описанным причинам).
F>Вот VD2 vs WH — это круто. Тож спорят ниочём. Но хотя б пластинка была новая.
WH теоретик, но лентяй.
VD2 практик и администратор, способен вести "долгоиграющие" проекты, но уже устал от теоретика-лентяя.
Вот и всё, что там происходит.
F>Я эт к чему. Не потому что умный. Наоборот. Хочу новых страстей почитать.
Это ты был навеселе, похоже. ))
Re[21]: Опциональные типы
Здравствуйте, fddima, Вы писали:
F>Шейдерные диалекты пожалуйста спусти в унитаз. Там размеры ультракрошечные и никомуненужечные почти
Тем не менее, юзают.
Это же почти С.
F>EDG же пишет что MS вроде как их юзают в IDE но никак ни в компиляторе. Насчет icc — ещё более пространственные намёки.
NDA — оно такое, угу. ))
EDG is a front-end used by Intel and Comeau.
F> Я хер не знаю что такое EDG, И знать не хочу как он устроен, если эти дибилы его сделали на GLR и ты там работаешь — вы сами себе доктор. Если эти дибилы его просто сделали на GLR — то опять дибилы. Пойми, что в современных процах исключительно все data-dependent algorithms — сосут адски по скорости потому что предсказание ветвлений будет обламываться часто. Хотите скорости... изучайте матчасть проца. Т.е. развопачивайте. Что вручную и делают. В конкретных (т.е. целый язык — ситуациях).
Ммм... Ну вот поэтому не всегда однозначно, какой код лучше для парсинга — на условных ветвлениях или на таблице переходов.
Потому что в первом случае предсказатель может ошибиться и сбросить конвейер, а в другом случае таблица переходов может быть достаточно велика и сбрасывать кеш проца при ходьбе по ней.
Вопрос (не уверен, что правльно понял): алгоритм работы лексера — это "data-dependent algorithms"?
Ну вот базовый LR(0), из которого сделали GLR, он работает примерно по алгоритму лексера.
F>Мэйнстрим нахер о таком не знает потому что icc и мэйнстрим — это вообще вещи несвязные.
Под линухами популярно, когда требуется генерить хорошо оптимизированный код.
Потому что GCC не умеет нихрена.
F> В общем или обрисуй прямо выкладками или давай примем то, как оно есть — в C++ мэйнстриме пока, что побеждают рукописники RD/LL. Никаких альтернатив тут нет. Причину я уже выше озвучил почему табличники в наиве сосут. Неужели это не было ясно с самого начала?
Табличные парсеры работают БЕЗ условных ветвлений.
Это безусловное косвенное извлечение данных.
Современные процы умеют делать такое извлечение еще на этапе предвыборки, т.е. такие вещи занимают ровно 0 тактов процессора (если данные уже в кеше).
F>Тем более одно дело если у нас шарп илиЯва. А C++ с его forced forward declarations — там RD/LL просто делает это.
Порой LL — наихудшее решение.
F>Вот распрасить тот же шарп — посложнее.
Разве?
Грамматика более однозначная.
F>А вот плюсы — в том то и дело что за счёт forward declarations — тривиально.
Не тривиально. Рядом я приводил неоднозначности.
Сложность разбора состоит не только в размере грамматики, но и в степени её однозначности.
F>Классический просто порождает херову ненужную тучу (ага, а всё равно не бесплатную) вариантов.
Ну вот при разборе арифметических выражений, взаимных вызовов ф-ий, операторов языка — не порождает никаких вариантов.
Потому что однозначность.
F>Статьи наглядно показывают соотношения вариантов и единственного правильного пути. 1/30К по сути.
В какой грамматике и в каких данных?
В случае 1/30к у LL-парсера будет 30к откатов.
F>WH, в отличие от тебя хоть как-то пытается аргументировать.
Нет, не пытается.
Он пытается попускать окружающих или сыпет "аргументами" уровня букваря и обрывками прочитанного из Сети, даже мало относящегося к конкретному спору. Офтоп от него — дело обычное. Часто меняет тему, часто пытается перекрутить исходный спор.
ИМХО, это НЕ аргументы, это шумовой фон с целью раскидать внимание собеседника.
И я не уверен, что он это делает специально.
Просто не видит свою линию защиты со стороны.
F>Ты же аппплируешь к вещам никому неизвестным. Тот же EDG. Аппелировать к чёрному ящику — это неспортивно. Во-вторых — в коммерческих продуктах как ты говоришь "ВСЕХ" оно точно не используется.
Оно точно используется почти во всех.
F>Мда. Шейдерные языки. Посмеши нас ещё раз пожалуйста. Шейдерные языки или мегабайты парсинга.
Показанная мною неоднозначность С++ характерна и для С.
Как раз-таки шаблонные навороты С++ НИКАКОЙ неоднозначности не добавляют.
А мы же о неоднозначностях говорим, верно?
F>Я легко читаю и приемлю твои свободные определения некотоых вещей. Но странно — от других ты резко требуешь классику. С чего бы.
Потому я никогда никого не "ловлю", я просто делюсь инфой и могу напомнить некие вводные положения по некоей теме перед тем, как собираюсь что-то озвучить из той области. Считаю этот подход единственно адекватным. Здесь никто никому и ничем не обязан. Мы можем только делиться некоей инфой. Кому захочется больше — тот будет копать больше. Если что-то будет непонятно — можно спросить.
И это, ес-но, противоположный подход тому, что некоторые пытаются кого-то там "поймать на незнании" и больше никакой цели не имеют. ))
Мало того, что сами по себе такием манеры г-но... Тут ведь еще изволь сам тогда соответствовать, верно?
Да вот не изволят нифига в 100% случаев. )))
Потому что это вообще наивность, вот такая "ловля" при работающем интернете у оппоненета.
Ну даже если твой оппонент не владел чем-то оффтопным на некий момент, и?
Назавтра почитал и уже владеет.
Т.е., сам по себе такой подход, помимо того, что это снобистские г-но манеры, так это еще откровенный идиотизм получается (по описанным причинам).
F>Вот VD2 vs WH — это круто. Тож спорят ниочём. Но хотя б пластинка была новая.
WH теоретик, но лентяй.
VD2 практик и администратор, способен вести "долгоиграющие" проекты, но уже устал от теоретика-лентяя.
Вот и всё, что там происходит.
F>Я эт к чему. Не потому что умный. Наоборот. Хочу новых страстей почитать.
Это ты был навеселе, похоже. ))
F>Шейдерные диалекты пожалуйста спусти в унитаз. Там размеры ультракрошечные и никомуненужечные почти
Тем не менее, юзают.
Это же почти С.
F>EDG же пишет что MS вроде как их юзают в IDE но никак ни в компиляторе. Насчет icc — ещё более пространственные намёки.
NDA — оно такое, угу. ))
EDG is a front-end used by Intel and Comeau.
F> Я хер не знаю что такое EDG, И знать не хочу как он устроен, если эти дибилы его сделали на GLR и ты там работаешь — вы сами себе доктор. Если эти дибилы его просто сделали на GLR — то опять дибилы. Пойми, что в современных процах исключительно все data-dependent algorithms — сосут адски по скорости потому что предсказание ветвлений будет обламываться часто. Хотите скорости... изучайте матчасть проца. Т.е. развопачивайте. Что вручную и делают. В конкретных (т.е. целый язык — ситуациях).
Ммм... Ну вот поэтому не всегда однозначно, какой код лучше для парсинга — на условных ветвлениях или на таблице переходов.
Потому что в первом случае предсказатель может ошибиться и сбросить конвейер, а в другом случае таблица переходов может быть достаточно велика и сбрасывать кеш проца при ходьбе по ней.
Вопрос (не уверен, что правльно понял): алгоритм работы лексера — это "data-dependent algorithms"?
Ну вот базовый LR(0), из которого сделали GLR, он работает примерно по алгоритму лексера.
F>Мэйнстрим нахер о таком не знает потому что icc и мэйнстрим — это вообще вещи несвязные.
Под линухами популярно, когда требуется генерить хорошо оптимизированный код.
Потому что GCC не умеет нихрена.
F> В общем или обрисуй прямо выкладками или давай примем то, как оно есть — в C++ мэйнстриме пока, что побеждают рукописники RD/LL. Никаких альтернатив тут нет. Причину я уже выше озвучил почему табличники в наиве сосут. Неужели это не было ясно с самого начала?
Табличные парсеры работают БЕЗ условных ветвлений.
Это безусловное косвенное извлечение данных.
Современные процы умеют делать такое извлечение еще на этапе предвыборки, т.е. такие вещи занимают ровно 0 тактов процессора (если данные уже в кеше).
F>Тем более одно дело если у нас шарп илиЯва. А C++ с его forced forward declarations — там RD/LL просто делает это.
Порой LL — наихудшее решение.
F>Вот распрасить тот же шарп — посложнее.
Разве?
Грамматика более однозначная.
F>А вот плюсы — в том то и дело что за счёт forward declarations — тривиально.
Не тривиально. Рядом я приводил неоднозначности.
Сложность разбора состоит не только в размере грамматики, но и в степени её однозначности.
F>Классический просто порождает херову ненужную тучу (ага, а всё равно не бесплатную) вариантов.
Ну вот при разборе арифметических выражений, взаимных вызовов ф-ий, операторов языка — не порождает никаких вариантов.
Потому что однозначность.
F>Статьи наглядно показывают соотношения вариантов и единственного правильного пути. 1/30К по сути.
В какой грамматике и в каких данных?
В случае 1/30к у LL-парсера будет 30к откатов.
F>WH, в отличие от тебя хоть как-то пытается аргументировать.
Нет, не пытается.
Он пытается попускать окружающих или сыпет "аргументами" уровня букваря и обрывками прочитанного из Сети, даже мало относящегося к конкретному спору. Офтоп от него — дело обычное. Часто меняет тему, часто пытается перекрутить исходный спор.
ИМХО, это НЕ аргументы, это шумовой фон с целью раскидать внимание собеседника.
И я не уверен, что он это делает специально.
Просто не видит свою линию защиты со стороны.
F>Ты же аппплируешь к вещам никому неизвестным. Тот же EDG. Аппелировать к чёрному ящику — это неспортивно. Во-вторых — в коммерческих продуктах как ты говоришь "ВСЕХ" оно точно не используется.
Оно точно используется почти во всех.
F>Мда. Шейдерные языки. Посмеши нас ещё раз пожалуйста. Шейдерные языки или мегабайты парсинга.
Показанная мною неоднозначность С++ характерна и для С.
Как раз-таки шаблонные навороты С++ НИКАКОЙ неоднозначности не добавляют.
А мы же о неоднозначностях говорим, верно?
F>Я легко читаю и приемлю твои свободные определения некотоых вещей. Но странно — от других ты резко требуешь классику. С чего бы.
Потому я никогда никого не "ловлю", я просто делюсь инфой и могу напомнить некие вводные положения по некоей теме перед тем, как собираюсь что-то озвучить из той области. Считаю этот подход единственно адекватным. Здесь никто никому и ничем не обязан. Мы можем только делиться некоей инфой. Кому захочется больше — тот будет копать больше. Если что-то будет непонятно — можно спросить.
И это, ес-но, противоположный подход тому, что некоторые пытаются кого-то там "поймать на незнании" и больше никакой цели не имеют. ))
Мало того, что сами по себе такием манеры г-но... Тут ведь еще изволь сам тогда соответствовать, верно?
Да вот не изволят нифига в 100% случаев. )))
Потому что это вообще наивность, вот такая "ловля" при работающем интернете у оппоненета.
Ну даже если твой оппонент не владел чем-то оффтопным на некий момент, и?
Назавтра почитал и уже владеет.
Т.е., сам по себе такой подход, помимо того, что это снобистские г-но манеры, так это еще откровенный идиотизм получается (по описанным причинам).
F>Вот VD2 vs WH — это круто. Тож спорят ниочём. Но хотя б пластинка была новая.
WH теоретик, но лентяй.
VD2 практик и администратор, способен вести "долгоиграющие" проекты, но уже устал от теоретика-лентяя.
Вот и всё, что там происходит.
F>Я эт к чему. Не потому что умный. Наоборот. Хочу новых страстей почитать.
Это ты был навеселе, похоже. ))