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

Я не начинал с идеи написать «убийцу 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 (интерпретатор).

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

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

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

Что происходит после fn main() в Rust? - 1

Привет!

Хочу вместе с вами разобрать, как же код на Rust превращается в готовый исполняемый файл. Мы пишем программу, например, fn main() { println!("Hello, Habr!"); }Читать полностью »

Помните, как в школе, решая примеры «в столбик», мы бормотали себе под нос: «один пишем, два в уме»? У процессора при вычислениях возникает похожая ситуация — где-то нужно хранить промежуточные результаты. Они не используются прямо сейчас, но вскоре обязательно пригодятся. В современных микропроцессорах работает множество различных блоков, обрабатывающих числа, — их называют исполнительными устройствами. Чтобы все они могли временно «складывать» свои «два в уме», требуется достаточно большой объем быстрой вспомогательной памяти.

Меня зовут Павел Кириченко, я автор Читать полностью »

Предисловие

В этой статье будет много моих выводов, гипотез и идей. Это моя первая статья, поэтому буду рад услышать аргументированную критику. В статье часто используется псевдокод, чей синтаксис напоминает смесь C#, C++ и Python.

Немного о терминологии

Много времени я программирую на C#, и в этом языке существуют некоторые термины, которые могут ввести в заблуждение программистов на C++:

  • Под словом коллекция я подразумеваю любой набор элементов: список, массив, стек, куча, итератор, множество и т.п.

  • Говоря список, я подразумеваю динамический массив

Язык программирования - инструмент

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

Идея

Всем здравствуйте! Я интересуюсь языком программирования C и решил поделиться, как пытаюсь сделать два консольных приложения:

  • i8008compiler - программа, которая переводит код на ассемблере Intel-8008 в бинарный код. Предполагается, что ассемблерный код содержится в .txt файле, а бинарный код записывается в файл с форматом .bin

  • i8008emulator - программа, которая исполняет бинарный код так, как бы это делал процессор Intel-8008. На входе имеем .binЧитать полностью »

В этой статье рассказывается, как крошечные, экспериментальные языки программирования, размером порой меньше 100 строк, могут неожиданным образом углубить понимание сложных промышленных языков. Будет показано, как микроязыки раскрывают суть концепций, скрытых в слоистых абстракциях Java, Rust или C++. Много примеров, кода и немного лирики.

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

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