В сфере веб-разработки произошло примечательное событие: независимый разработчик, известный как Lyra Rebane (rebane2001), представил функциональный эмулятор x86-совместимого центрального процессора [lyra.horse], написанный исключительно на чистом CSS, в связке с HTML, и не использующий JavaScript или WebAssembly.
Архитектура и реализация
Проект, получивший название x86CSS, по сути, представляет собой не только эмулятор, но и полноценный компьютер на базе CSS. Он способен выполнять машинный код 8086, скомпилированный из C-программ с помощью GCC. Ключевая особенность решения заключается в использовании CSS для моделирования поведения ЦПУ, включая регистры, оперативную память и процесс выполнения инструкций.
Реализация подобной системы без традиционных средств программирования является нетривиальной задачей. Предыдущие попытки создания Тьюринг-полных систем на CSS, такие как [github.com] «CSS Turing Machine», часто сталкивались с ограничениями, связанными с необходимостью взаимодействия с пользователем (например, через постоянные клики или наведение курсора) для продвижения логики. Lyra Rebane удалось обойти эти ограничения, разработав автономный механизм тактирования, который функционирует без пользовательского ввода. В текущей версии для повышения стабильности и скорости используется опциональный скрипт для синхронизации, но существует и полностью CSS-реализованный тактовый генератор на основе анимации и контейнерных запросов.
Технические детали и ограничения
Эмулятор поддерживает подмножество инструкций x86, что позволяет запускать относительно простые программы. Взаимодействие с эмулятором осуществляется через веб-интерфейс, который предоставляет средства для загрузки и выполнения кода. Разработчик отмечает, что для работы демонстрации требуются современные реализации CSS-функций, таких как условные операторы `if()` и `@functions`, которые пока доступны не во всех браузерах, преимущественно в Chromium-подобных.
Несмотря на свою новизну, x86CSS не претендует на практическое применение в реальных проектах, поскольку производительность, достигаемая прямым написанием кода на CSS, значительно превосходит эмуляцию процессорной архитектуры. Тем не менее, проект является значимым демонстрационным образцом, расширяющим представление о возможностях Cascading Style Sheets и веб-технологий в целом. Он подчеркивает потенциал CSS для создания не просто стилизованных, но и интерактивных, функциональных веб-приложений.
Перспективы и уникальность
Проект открыт для изучения на GitHub, что дает возможность сообществу анализировать код и тестировать выполнение собственных скомпилированных программ. Этот прецедент демонстрирует изобретательность разработчиков и границы инноваций в рамках стандартных веб-инструментов, подталкивая к переосмыслению роли и возможностей CSS.