Шестая нормальная форма (6NF) играет ключевую роль вЧитать полностью »
Шестая нормальная форма (6NF) играет ключевую роль вЧитать полностью »
QapDSLv2 — это язык который транслируется в обычный C++ код. Он позволяет удобно и компактно задавать грамматики/правила разбора, значительно упрощая разработку компиляторов и анализаторов.
QapGen — это генератор дерева_лексеров/парсеров описанных на QapDSLv2. Сама грамматика QapDSLv2 описана на QapDSLv2 на 100%. Поэтому QapGen как основной читатель этой грамматики сам генерирует часть своего кода(весь парсер QapDSLv2).
Основные фишки QapDSLv2 + QapGen — это:
Отсутствие этапа токенизации — Читать полностью »
QapDSLv2 — это язык который транслируется в обычный C++ код. Он позволяет удобно и компактно задавать грамматики и правила разбора, значительно упрощая разработку компиляторов и анализаторов.
Я решил выложить сразу две стать в одно время. В этой статье всё про QapDSLv2, а в той про QapGen — крутой генератор парсеров из QapDSLv2.
В исследовании языков программирования меня всегда наиболее привлекала их разработка.
Когда аккуратно мастеришь язык программирования, синтаксис и семантика которого тщательно подогнаны под конкретную предметную область, ты как программист должен предоставить конечным пользователям интерфейс, полностью согласующийся с наработанной ими интуицией и их устоявшимися привычками. Так пользователи языка смогут сосредоточиться на интересных аспектах стоящих перед ними задач и браться за более крупные и сложные проекты.
Многие разработчики мечтают о проектах, в которых можно совместить любовь к программированию и нарративу. В этой статье рассказывается о создании собственного DSL (domain-specific language) для интерактивных историй — от формализации сценарных структур до реализации интерпретатора на Python. Много кода, много боли, немного магии.
Задачи разработки компиляторов и интерпретаторов Читать полностью »
Всем привет! Сейчас за окном осенние деньки 2024 года. Вещает Пройдаков Евгений. Сейчас я руковожу группой разработки среды исполнения языка eXtraction and Processing в R&D департаменте Positive Technologies.

Разработчик веб-приложений и распределённых систем под псевдонимом chreke* убеждён: «малые языки», то есть специализированные языки, созданные для решения конкретных задач, являются будущим программирования. Это убеждение укрепилось в нём после прочтения статьи Габриэллы Гонсалес «Читать полностью »
Вы наверняка слышали о том, что Telegram собирается запустить блокчейн-платформу Ton. Но вы могли пропустить новость, что не так давно Telegram объявил конкурс на реализацию одного или нескольких смарт-контрактов для этой платформы.
Команда Serokell с богатым опытом разработки крупных блокчейн проектов не могла остаться в стороне. Мы делегировали на конкурс пятерых сотрудников, а уже через две недели они заняли в нем первое место под (не)скромным рандомным ником Sexy Chameleon. В этой статье я расскажу о том, как им это удалось. Надеемся, за ближайшие десять минут вы как минимум прочитаете интересную историю, а как максимум найдете в ней что-то полезное, что сможете применить в своей работе.
Но давайте начнем с небольшого погружения в контекст.

Вы пробовали добавить в VStack больше 10 вьюх?
var body: some View {
VStack {
Text("Placeholder1")
Text("Placeholder2")
// ... тут вьюшки с 3 по 10 . . .
Text("Placeholder11")
}
}
Я попробовал — это не компилируется. Да, я тоже сначала был удивлен и погрузился в изучение форума Swift и гитхаба. Результатом моего изучения стало — "все равно не компилируется ¯_(ツ)_/¯ ". Но подождите, давайте разберемся почему.