Рубрика «компилятор»

Введение

На GitHub лежит репозиторий Сфера — это полностью кириллический язык программирования. Компилятор написан на Rust, код генерируется через LLVM 18 в нативный машинный код. Не интерпретатор, не транспайлер в C — а настоящий компилятор: лексер → парсер → LLVM IR → машинный код.

Читать полностью »

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

Нормальный человек собирает из этого термостат за вечер. Я собрал термостат, посмотрел на него и подумал: а неприятно же будет каждый раз лезть с кабелем, если я захочу поменять порог с 22 на 23 градуса.

Дальше мысль поехала не туда, и в итоге на плате оказался интерпретатор eBPF со своим верификатором байткода. Логика управления теперь заливается по Wi‑Fi обычной программой на C, скомпилированной clang -target bpfЧитать полностью »

В 100 раз эффективнее ARM: потоковый процессор Electron E1 - 1

Если энергопотребление ЦОДов будет и дальше расти, то для них придётся выкупать мощности АЭС, как это сделали Microsoft и AmazonЧитать полностью »

Всем привет! Я хочу рассказать про свой путь написания компилятора Svelte на языке Rust, о своих мотивах и результатах.

Компилятор лежит тут: https://github.com/MrWaip/svelte-rs


Предыстория

Меня зовут Константин, я работаю в enterprise-компании на протяжении 5 лет фронтенд-разработчиком. Мы используем SvelteKit ещё с бета-версии.

Читать полностью »

Введение

Каждый C#-разработчик хотя бы раз писал что-то вроде:

var result = numbers.Where(x => x > 10).Select(x => x * 2).Take(5);

И почти каждый на старте карьеры удивлялся, узнав, что эта строчка ничего не вычисляет. Ни один элемент коллекции ещё не тронут, ни один предикат не вызван — вся цепочка спит. Вычисления начнутся только тогда, когда мы начнём перебирать result в foreach или вызовем .ToList().

Читать полностью »

Я не начинал с идеи написать «убийцу JavaScript». Честно говоря, такие заявления обычно только мешают думать.

Сначала была гораздо более скромная мысль: мне нравится Go, мне нравится его простота, типизация и ощущение предсказуемого инструмента. Но когда дело доходит до интерактивного веб‑интерфейса, почти неизбежно оказываешься в другой вселенной: JavaScript, Node.js, сборщики, плагины, отдельная модель компонентов, отдельная экосистема.

Читать полностью »

Каждый, кто хоть раз заглядывал на Hacker News или r/ItRunsDoom, знает традицию: DOOM должен работать на всём. PDF‑файлы, SQL‑запросы, кишечные бактерии, тест на беременность — список бесконечен, и каждый новый порт абсурднее и интереснее предыдущего

Но я задался вопросом: а можно ли запустить DOOM внутри шрифта?

Читать полностью »

Всё началось на второй паре по системному программированию. Нам дали задачу: написать CLI-утилиту для анализа логов - парсить файл, фильтровать записи по уровню ошибок, считать статистику, выводить красиво в консоль. "Ну понятно", - открыл я vim и началось мое долгое приключение...

Неделя. Две. Утилита называлась logz, она умела читать логи nginx и apache, фильтровать по уровню (DEBUG, INFO, WARN, ERROR), по дате, по IP, выводила топ адресов с наибольшим числом ошибок, рисовала простенький bar-chart прямо в терминале через unicode-символы. Только вот я сидел как-то вечером, запустил wc -l main.c - 3147 строкЧитать полностью »

GitHub

Onyx - язык программирования, нацеленный на базовую безопасность памяти, приятный синтаксис и опыт использования. Onyx написан на C++ с компиляцией на базе LLVM. На момент написания статьи язык поддерживает:

  1. Определение глобальных переменных

  2. Определение функций

  3. Определение локальных переменных

  4. Изменение значений переменным

  5. Вызов функций

Читать полностью »

Перфолента.NET — это на удивление профессионально выглядящий язык программирования на платформе .NET, который поддерживает объектно-ориентированное и функциональное программирование, и на котором написан даже написан другой язык, функциональный язык программирования — Перфо.NET (интерпретатор).

Мой личный опыт

Когда я начал немного программировать на Перфоленте/Перфо, моё понимание языков программирования сильно изменилось. Я почувствовал себя как англоязычный программист, пишущий код на родном языке.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js