Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
>
>
>
НЕкурс про создание собственного...

НЕкурс про создание собственного языка программирования: вдохновляемся неожиданными открытиями, чтобы сделать свои

23 Июн 2026

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

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

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

История №1

Некий датчанин захотел создать для себя удобный инструмент, позволяющий отслеживать посещения своего веб-резюме. Это решение показалось настолько удачным и удобным, что вышло за рамки личного использования и по сей день остаётся популярным среди разработчиков вебсайтов. О каком решении идёт речь?

История №2

Двое разработчиков захотели решить проблему перехода с 32-битных на 64-битные системы. И они создали инструмент, помогающий находить возникающие в коде ошибки. Однако потом увидели, что полезно искать и другие ошибки, и трансформировали его в полноценный инструмент с более широким спектром действия.

История №3

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

Экспертиза PVS-Studio

Надеемся, вы догадались, что это были за открытия. Давайте вернёмся к понятию экспертизы. Почему мы считаем её ценной для нашей компании? И в чём она выражается у нас? Мы затронем тему нашей новой наработки, которая позволила переработать нашу экспертизу во что-то полезное для сообщества разработчиков. Ниже мы подробнее расскажем, как мы к этому пришли и что в итоге у нас вышло.

Мы тесно работаем с языками программирования, ведь наша миссия — чистый код. Нашим разработчикам нужно разбирать языки "по косточкам": создавать алгоритмы нахождения частых и важных ошибок и потенциальных уязвимостей в коде, и обучать этому компьютер. Количество диагностических правил, которые отлавливают ошибки в ваших проектах, растёт из года в год.

Но что стоит за правилами? На что опирается анализатор при поиске ошибок? Конечно, ядро! На нём у нас строится и анализ потока данных, и сигнатурный анализ, и аннотирование методов, и все другие технологии анализа. А работает с этим и многим другим наш архитектор ядра Юра — замечательный инженер, фанат котиков и просто приятный человек. Проходя через очередную эпопею ядровых проблем — страшно представить, с чем он ежедневно сталкивается, залезая так глубоко в мозги нашего инструмента, — Юра был оторван от своей привычной деятельности предложением коллег...

В PVS-Studio есть отдел, который мы зовём Te&De (Teaching&Development). Две замечательные сотрудницы, Инна и Юлия, занимаются внутренним обучением сотрудников нашей компании. Они также организуют вебинары для менеджеров и программистов. О предстоящих и прошедших вебинарах вы можете узнать здесь. Они-то и предложили Юре подготовить материалы, которые будут полезны при погружении новых сотрудников в работу. В итоге курс, который наш архитектор и отдел Te&De подготовили для внутреннего использования, трансформировался и стал общедоступным и бесплатным.

Немного о курсе

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

Начинается всё с грамматики, которая описывает структуру языка.

Когда дело доходит до разбора кода, первым на сцену выходит лексер. Он выделяет из текста отдельные слова и классифицирует их.

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

Ещё в языке есть разные сущности, которым мы можем дать имена. Эти имена язык должен узнавать и понимать. Для этого есть семантический анализ. Также есть типы данных, которые между собой взаимодействуют. Вычисление типов данных — часть семантики.

Завершает всё это действие эвалюатор. Он берёт дерево, проходится по нему и вычисляет значение переменных и выражений.

Так примерно выглядит сферический процесс работы языка программирования в вакууме. В видео Юра всё это показывает на практике.

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

Мы собрали курс из 10 видео и назвали его "Давайте создадим язык программирования". Регистрируйтесь, переходите по ссылке, это бесплатно. Там вы найдёте более подробное описание видеоуроков.

Разгадка историй

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

История №1

Датчанина звали Расмус Лердорф, его изобретение — Personal Home Page (инструменты для личной домашней страницы). Оно стало популярным и теперь носит название PHP и используется как язык программирования для веб-сайтов. Лердорф объединил свои скрипты с библиотекой форм. Появился базовый синтаксис и возможность обрабатывать данные из HTML-форм. С версией 2.0 PHP стал полноценным инструментом для динамических сайтов, совершив революцию в веб-разработке.

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

История №2

Конечно, это PVS-Studio. Решили немного польстить себе :)

2006 год — эпоха появления 64-битных систем. На тот момент многие думали о переходе с 32-битных систем, однако при переходе сталкивались с 64-битными ошибками. В результате двое разработчиков создали механизм, помогающий находить такие ошибки, а затем трансформировали его в полноценный инструмент с более широким спектром решения проблем. Сейчас PVS-Studio — это целая компания, а тогда у двух разработчиков, которые ещё недавно выпустились из университета, была проблема, решение которой переросло во что-то масштабное. Кстати, недавно нам исполнилось 18 лет! В честь совершеннолетия мы написали статью, где рассказали, что происходило в анализаторе и компании в течение этих лет.

История №3

В 1994 году инженер компании Netscape Communications Лу Монтулли столкнулся с проблемой: изначальный протокол HTTP был "бессодержательным" (stateless) — сервер не мог распознать, что один и тот же человек переходит со страницы на страницу или совершает покупки. Тогда он предложил сохранять небольшой фрагмент текстовых данных на стороне пользователя. Это получило название cookies-файлы. Открытие навсегда изменило веб-индустрию, позволив создавать удобные корзины для интернет-магазинов и сохранять авторизацию на сайтах.

Напутствие

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

Подписаться на рассылку
Хотите раз в месяц получать от нас подборку вышедших в этот период самых интересных статей и новостей? Подписывайтесь!
Популярные статьи по теме

Комментарии (0)

Следующие комментарии next comments
close comment form