Заболеть по разному можно. Знакомый заболел второй раз ковидом где то через месяц после вакцинации. Но по симптомам в этот раз у него было всё в разы проще. Если не тест, то и не заметил бы.
Справедливости ради, такие проверки можно делать на другом этапе трансляции — анализа. Иметь дело с готовым деревом при ручной обработке проще. Кроме того, на этом же этапе можно сразу разрешать таблицу символов, выводить типы и даже производить какие-никакие оптимизации.
В ущерб ещё и лёгкости модификаций: добавил новую конструкцию в язык — нужно менять код в 100500 разных неочевидных местах.
Это смотря как парсер написать и что это за новая конструкция будет. Как правило, «архитектура» транслятора довольно четко разделяется на этапы и структуры, даже на Си. Например, если новая конструкция языка — синтаксический сахар, то затрагивать структуру AST не придется и можно обойтись только новым кодом непосредственно в парсере.
Хотя все конечно зависит от языка. Если предполагается частое расширение и обновление синтаксических и грамматических конструкций языка, то генерируемый парсер здесь очень кстати, особенно если язык изначально довольно сложный по грамматике. Но с другой стороны, если смотреть на гигантов типа clang, то там опять все сделано вручную. Видимо железобетонный BNF на столе разработчиков дает уверенность в стабильности их транслятора.
К слову —
Вам может быть любопытно, что в CPython до 3.9 был рукописный парсер ...
и он был, по моему скромному мнению, просто ужасен. С точки зрения реализации конечно, поскольку это был не просто парсер, а самодельный генератор LL-парсера по файлу грамматики. Так что, хорошо что они перешли на нормальный генератор.
А почему нет? Недавно интересовался внутренностями языка Gravity, в нем компилятор полностью написан вручную. По моему там все просто и логично. А главное, такой подход дает больше контроля над выходными структурами, обработкой ошибок и всем процессом в целом. Но да, в ущерб затраченному времени конечно.
Громкость и компрессия это немного разные вещи. Стриминговые платформы лишь только контролируют общую громкость всей композиции, чтобы она не выделялась на фоне других. Компрессия уменьшает динамический диапазон, как бы уравнивая громкость всего трека к какому то «среднему» значению. Компрессор позволяет минимизировать разницу между самым тихим и самым громким звуком. Грубо говоря, громкость какого-нибудь «дропа» в середине трека будет такой же как и спокойный «лид» в его начале.
Есть один интересный проект: https://github.com/wasm3/wasm3. Это обычный интерпретатор. Некоторые фичи там еще не реализованы, но проект по мне очень перспективный. Однако в прод такое пока еще страшно отпускать.
Слежу за этим проектом с самой первой статьи здесь на хабре. Самого когда то посещали мысли о статическом брате Lua. Радует, что есть такие бесстрашные люди, ведь новый публичный язык это всегда очень рискованно, а его успешная реализация — настоящий подвиг как минимум для себя.
Очень хочется почитать о внутренностях этого языка и особенностях реализации компилятора. Просмотр исходников это совсем другое. Хотелось бы увидеть все, так сказать, глазами автора.
На местной таможне не поняли, что мне пришло. Здоровый металический ящик с огромным множеством всяких разьемов и кнопок. Да еще и дороже 500 евро. По-этому меня попросили написать что это на самом деле и для чего используется. Жил бы я где нибудь поближе к центральной России, то ничего писать бы не пришлось, скорее всего.
Заказывал из германии микшер X32 Rack стоимостью чуть больше 500 евро. Все произошло как в статье. После уведомления в приложении Почты России о таможенном извещении, отправление двинулось до моего местного главпочтампа. Только пришлось ехать загород в офис таможни и заполнить анкету с объяснительной. После всего этого в отделении почты приняли оплату пошлины и выдали отправление.
Заболеть по разному можно. Знакомый заболел второй раз ковидом где то через месяц после вакцинации. Но по симптомам в этот раз у него было всё в разы проще. Если не тест, то и не заметил бы.
От «обычного» гриппа тоже раз в год надо делать...
Справедливости ради, такие проверки можно делать на другом этапе трансляции — анализа. Иметь дело с готовым деревом при ручной обработке проще. Кроме того, на этом же этапе можно сразу разрешать таблицу символов, выводить типы и даже производить какие-никакие оптимизации.
Более того, это только транслятор из CST в AST — следствие использования изначально неправильного рукописного генератора.
Вроде как язык С не так часто меняется. Хотя кто знает, что нас ждет через 10 лет. Поживем увидим.
Это смотря как парсер написать и что это за новая конструкция будет. Как правило, «архитектура» транслятора довольно четко разделяется на этапы и структуры, даже на Си. Например, если новая конструкция языка — синтаксический сахар, то затрагивать структуру AST не придется и можно обойтись только новым кодом непосредственно в парсере.
Хотя все конечно зависит от языка. Если предполагается частое расширение и обновление синтаксических и грамматических конструкций языка, то генерируемый парсер здесь очень кстати, особенно если язык изначально довольно сложный по грамматике. Но с другой стороны, если смотреть на гигантов типа clang, то там опять все сделано вручную. Видимо железобетонный BNF на столе разработчиков дает уверенность в стабильности их транслятора.
К слову —
и он был, по моему скромному мнению, просто ужасен. С точки зрения реализации конечно, поскольку это был не просто парсер, а самодельный генератор LL-парсера по файлу грамматики. Так что, хорошо что они перешли на нормальный генератор.
А почему нет? Недавно интересовался внутренностями языка Gravity, в нем компилятор полностью написан вручную. По моему там все просто и логично. А главное, такой подход дает больше контроля над выходными структурами, обработкой ошибок и всем процессом в целом. Но да, в ущерб затраченному времени конечно.
Это всего лишь удлинитель USB. Сам модем прячется внутри антенны и подключается уже там.
Громкость и компрессия это немного разные вещи. Стриминговые платформы лишь только контролируют общую громкость всей композиции, чтобы она не выделялась на фоне других. Компрессия уменьшает динамический диапазон, как бы уравнивая громкость всего трека к какому то «среднему» значению. Компрессор позволяет минимизировать разницу между самым тихим и самым громким звуком. Грубо говоря, громкость какого-нибудь «дропа» в середине трека будет такой же как и спокойный «лид» в его начале.
Есть один интересный проект: https://github.com/wasm3/wasm3. Это обычный интерпретатор. Некоторые фичи там еще не реализованы, но проект по мне очень перспективный. Однако в прод такое пока еще страшно отпускать.
Слежу за этим проектом с самой первой статьи здесь на хабре. Самого когда то посещали мысли о статическом брате Lua. Радует, что есть такие бесстрашные люди, ведь новый публичный язык это всегда очень рискованно, а его успешная реализация — настоящий подвиг как минимум для себя.
Очень хочется почитать о внутренностях этого языка и особенностях реализации компилятора. Просмотр исходников это совсем другое. Хотелось бы увидеть все, так сказать, глазами автора.
Алё. Это ufo?
Надеюсь что нет.
На местной таможне не поняли, что мне пришло. Здоровый металический ящик с огромным множеством всяких разьемов и кнопок. Да еще и дороже 500 евро. По-этому меня попросили написать что это на самом деле и для чего используется. Жил бы я где нибудь поближе к центральной России, то ничего писать бы не пришлось, скорее всего.
Заказывал из германии микшер X32 Rack стоимостью чуть больше 500 евро. Все произошло как в статье. После уведомления в приложении Почты России о таможенном извещении, отправление двинулось до моего местного главпочтампа. Только пришлось ехать загород в офис таможни и заполнить анкету с объяснительной. После всего этого в отделении почты приняли оплату пошлины и выдали отправление.
Путь не близкий, а доставка оказалась быстрая. Спасибо тебе, Дедушка Мороз! Подарок на самом деле неожиданный, ведь я хотел такую штуку давно.
Благодарю всех! Теперь буду думать и планировать, что положить в коробку.
Обожаю дарить подарки, а с аудиторией хабра это делать проще, так как круг интересов здесь здорово пересекается. Жаль, что не смогу участвовать...
Боюсь, что просто так постоять в стороне и поесть попкорна не получится. Все таки мы — участники это Сети.
Хорошая новость! Давно хотелось чего нибудь подобного.
Интересное решение по размещению одноплатников в стойке. Сами сделали рэковую панель или такие есть в продаже?
Можно считать, что Java программисты уже привыкли к этому.