Как стать автором
Поиск
Написать публикацию
Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Как создать свой парсер и AST-генератор на C++ с минимальными усилиями: знакомьтесь с QapDSLv2

Время на прочтение18 мин
Количество просмотров1.6K

QapDSLv2: Новый стандарт AST-heavy парсинга

QapDSLv2 обеспечивает:

Молниеносное построение AST

Полное сохранение структуры исходного кода

Простоту интерпретации и модификации грамматик

Забудьте о любы других парсерах! С помощью QapDSLv2 можно создавать компиляторы/анализаторы/форматировщики кода за минуты/часы.

Парсеры и генерация абстрактных синтаксических деревьев (AST) — это обычно долго, сложно и требует тонны шаблонного кода. Но что если я скажу, что теперь можно описывать грамматики и структуры данных одновременно и получать готовый, оптимизированный C++ код автоматически?

QapDSLv2 — новый стандарт эффективности и удобства в парсинге. Это язык описания парсеров, который избавляет от синтаксического шума, упрощает интеграцию с C++ и позволяет создавать сложные анализаторы без боли и ошибок. Забудьте о бесконечных циклах отладки и непонятных генераторах — теперь всё просто, понятно и эффективно.

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

Готовы ускорить разработку и вывести свои проекты на новый уровень?

QapGen — мощный генератор парсеров, построенный на основе QapDSLv2, который из грамматик QapDSLv2 сразу создаёт высокопроизводительный C++ парсер с типизированным AST, описанным прямо в грамматике.

t_sep{
stringbody =any(" \t\r\n");
}
using" "ast_sep;
t_value{
TAutoPtr<i_value> body;
" "?
}
t_comma_value{
","
t_value body;
" "?
}
t_array:i_value{
"["
" "?
t_value first?;
vector<t_comma_value> arr?;
"]"
" "?
}

Читать далее

Как я собеседовался в Ozon, Т-Банк, Mindbox и другие крупные компании

Уровень сложностиПростой
Время на прочтение25 мин
Количество просмотров146K

Всем привет. Я сеньор и тимлид на .NET (C#). До недавнего времени работал в Росатоме, пока там внезапно не сократили целую дирекцию по цифровизации. Так что пришлось срочно выходить на рынок, причём, впервые в моей жизни (до этого работа находила меня сама). По результатам нескольких циклов собеседований получился неплохой дневник, который я здесь привожу.

История длинная, но интересная

Когда нужны компромиссы в тестировании

Время на прочтение4 мин
Количество просмотров486

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

Читать далее

Разворачивая свой WAF: открытые инструменты

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров4.5K

Ранее в блоге beeline cloud мы рассказывали про веб-приложения компаний: почему они часто становятся целями злоумышленников и что способны им противопоставить решения WAF — Web Application Firewall. Сегодня рассмотрим несколько инструментов такого класса от разработчиков из Китая, Франции и Италии.

Читать далее

Запускаем MIPI DSI экраны от смартфонов. Разработка схемы основной платы. Часть 3. Завершаем схему

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров3.2K

Выбрать подходящий разъём – это просто или сложно? В любом случае это важно.

Как быть с передачей дифференциальных пар на другую плату?

Сколько нужно контактов земли?

Стоит ли применять дифференциальные (common mode) фильтры и защиту от ESD?

Какой разъём лучше выбрать для питания?

В данной части рассмотрим эти и другие вопросы. Подберём разъёмы, добавим фильтры и защиты и завершим разработку схемы нашей платы.

Полетели! :)

Я написал свой VPN-клиент для Android. Зачем, если их сотни, и что скрывается под капотом?

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров56K

Каждый раз, нажимая кнопку «Connect» в очередном VPN-приложении, я ловил себя на мысли: а что там, под капотом? Как эта магия на самом деле работает на уровне Android? Вокруг сотни готовых решений, но простое пользовательское любопытство переросло в профессиональное: мне захотелось не просто использовать, а понять. Понять, какие подводные камни скрывает VpnService, как реализовать весь цикл от авторизации до поднятия защищённого туннеля и что на этом пути может пойти не так.

Эта статья — мой личный "бортовой журнал". Я не претендую на создание самого безопасного решения, это скорее история о пути, граблях и открытиях для тех, кто тоже решит заглянуть под капот VPN-технологий на Android.

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

Заглянуть под капот

Вы не будете в это играть: игровые миры, в которые больше нельзя попасть

Время на прочтение12 мин
Количество просмотров40K

Мы привыкли считать, что в цифровом пространстве ничто не исчезает: фильм можно пересмотреть, фото — восстановить, книгу — переиздать. Но с играми все иначе. Стоит серверам замолкнуть, и игра исчезает. Игры умирают как пространство действия. Иногда беззвучно, без прощального сообщения. Виртуальный мир, в который когда-то заходили тысячи игроков, превращается в воспоминание.

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

Вспомнить былое

Гайд на полиморфизм. Rust

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров4.3K

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

Читать далее

GlobalFoundries укрепляет позиции в RISC-V и приобретает MIPS: разбираемся с патентами компании

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров751

Компания GlobalFoundries (GF), один из ключевых игроков в сфере контрактного производства полупроводников, объявила о покупке MIPS — разработчика процессорных ядер на архитектуре RISC-V. Сделка позволит MIPS сохранить операционную самостоятельность, но при этом получить доступ к ресурсам GF для ускорения разработки и вывода на рынок новых решений. Разбираемся с патентами MIPS.

Спойлер: всё очень круто!

Читать далее

RTX 5060 Ti 16 GB: лучшая бюджетная видеокарта для 2К-гейминга в 2025 году?

Время на прочтение3 мин
Количество просмотров17K

Научно-технический прогресс неумолим, и по мере его развития растут и требования к стандартам качества. В последнее время все больше людей приходят к выводу, что новый стандарт разрешения для игр — это QHD (2560x1440). Действительно, при современном уровне графики разрешения Full HD (1920x1080) уже недостаточно, чтобы рассмотреть все детали и красоту видеоигр.

Но какая видеокарта оптимальна для игр в разрешении QHD? Вместе с редакцией блога «М.Клик» решили отыскать правильный ответ.

Читать далее

Миграция с Firebird на PostgreSQL. Что может пойти не так? Часть 2

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров3.1K

В первой части обсуждалось как отличие реализации MVCC в Firebird и PostgreSQL может привести к сложностям при миграции информационной системы. Напоминаю девиз этой серии статей – "Ваши ожидания – это Ваши проблемы". Рассмотрим еще некоторые моменты, которые позволят Вам не находится в состоянии "обманутых ожиданий" при миграции с Firebird на PostgreSQL.

Читать далее

Как мы создавали первую портативную умную колонку Яндекса

Уровень сложностиПростой
Время на прочтение36 мин
Количество просмотров18K

Меня зовут Александр Батин, я инженер‑схемотехник. Уже больше трёх лет я работаю в Яндексе в команде, которая занимается разработкой умных экранов и новых продуктов. Отвечаю за проектирование материнских плат (разрабатывал материнскую плату для Станции Дуо Макс), а в последних проектах участвую уже в качестве техлида.

Сегодня я хочу посвятить свой рассказ ключевым аспектам разработки первой портативной колонки с Алисой — Станции Стрит:

— рассмотрим интересные моменты на этапе проектирования,

— поговорим о технических решениях, принятые в процессе работы,

— обратим внимание на сложности, с которыми столкнулась команда разработчиков.

Особое внимание уделю подходам к преодолению технических и инженерных вызовов: оптимизацию работы AI‑ассистента в условиях ограниченных вычислительных ресурсов и обеспечения стабильного взаимодействия при мобильном использовании без доступа к интернету.

Читать далее

Свет без источника: компактный датчик обнаружения молекул

Время на прочтение18 мин
Количество просмотров1.3K

Практически любой аспект жизни человека в той или иной степени связан с измерением чего-либо: масса, расстояние, длина, температура и т. д. Часто от точности проведенных измерений зависит точность и успешность выполнения того или иного процесса. Когда речь идет об измерении крайне малых объектов, таких как молекулы используются оптические биосенсоры. Они чрезвычайно точны, но нуждаются в громоздком и дорогом оборудовании для генерации и обнаружения света. Ученые из Федеральной политехнической школы Лозанны (Швейцария) разработали систему, которая использует квантовую физику для обнаружения присутствия биомолекул без необходимости использования внешнего источника света. Как именно работает эта система, какие аспекты квантовой физики позволили ее реализовать, и что именно она может измерять? Ответы на эти вопросы мы найдем в докладе ученых.

Читать далее

Ближайшие события

О ненависти к российским дистрибутивам Linux

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров51K

Каждый второй комментарий к новостям о российских дистрибутивах Linux можно сформулировать как "опять перерисовали шильдики".

Причем объяснить с чего перерисовали шильдики, комментаторы зачастую не могут. "Чувствую бесовщину, но доказать не могу!".

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

Но давайте поговорим про дистрибутивы.

Читать далее

«Да мы и без проектной документации справимся!»

Время на прочтение4 мин
Количество просмотров4.7K

— И это после всего, что я вам рассказал? — я, конечно, уже слышал подобные заявления от потенциальных клиентов, но каждый раз удивлялся.
— Ну да. Зачем нам эти прототипы и функциональные спецификации? Я уже несколько проектов запустил со своей командой и точно могу сказать: никто документацию не читает.
— А как же вы ставите задачу на разработку?
— Пишу небольшую вводную — и всё. В основном, на словах объясняю. Я же каждый день с разрабами общаюсь. Да и сам немного программист. Мы же с вами оба понимаем, что этап проектирования — это просто способ для вас заработать дополнительных денег.

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

— Ну что ж, понимаю. Тогда давайте попробую вам рассказать одну небольшую историю…

Читать далее

Как работает база данных Firebird, часть 1

Уровень сложностиСложный
Время на прочтение21 мин
Количество просмотров1.5K

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

Читать далее

На пути к эмоциональному искусственному интеллекту

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров2K

Привет, Хабр. Меня зовут Андрей Савченко, я научный директор Sber AI Lab. Когда речь заходит про эмоциональность и принятие решений у ИИ, нужно задать себе вопрос: «А как это устроено у людей?» Наверняка почти каждый из вас ответил бы, что он принимает решение рационально, а остальные, зачастую, иррационально. 

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

Читать далее

Как «Гипроводстрой», внедрив nanoCAD GeoniCS, справился с растущим объемом заказов

Время на прочтение3 мин
Количество просмотров402

Институт «Гипроводстрой» выбрал nanoCAD GeoniCS для автоматизации проектирования генпланов, вертикальной планировки и картограмм, что позволило значительно оптимизировать затраты и рабочие процессы в связи с ростом количества заказов. Удалось сократить время выполнения проектных задач, повысить качество проектных решений и снизить количество ошибок.

Читать далее

Введение в обслуживание АСУ ТП на примере эффективных предприятий

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров5.6K

Сегодня автоматизированные системы управления технологическими процессами (АСУ ТП) являются неотъемлемой частью любого современного производства. Однако сама установка и пусконаладка системы — лишь половина дела. Настоящее испытание начинается в момент, когда оборудование переходит в эксплуатацию. Именно тогда становится очевидной роль обслуживания АСУ ТП — комплекса действий и организационных мер, позволяющих поддерживать системы в работоспособном состоянии, минимизировать простои и обеспечить надёжную работу всего предприятия.

Опыт эффективных предприятий в этой сфере показывает, что качественное обслуживание АСУ ТП напрямую влияет на экономические показатели компании, а также на гибкость и безопасность производства. В данной статье рассматриваются ключевые аспекты обслуживания АСУ ТП, опираясь на опыт компаний-лидеров отрасли, избегающих кризисных ситуаций и добивающихся устойчивого успеха за счёт выверенных стандартов и технологий.

Читать далее

Сейчас открою вкладку с ИИ и стану программистом

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров25K

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

Читать далее