Когда вы хотите дать пользователю возможность писать плагины для своего приложения, вы встаете перед выбором того, как предоставлять API. Под катом я покажу, почему худшим решением для этого будет изобретение собственного языка программирования и парсинг исходников, а также причем здесь мебель.
Рубрика «Компиляторы» - 20
Не создавайте собственный ЯП (DSL) для расширения функционала приложения
2019-01-18 в 22:13, admin, рубрики: архитектура системы, интерфейсы, Компиляторы, ненормальное программирование, Песочница, разработкаКонференция C++ Russia 2019
2019-01-16 в 11:57, admin, рубрики: c++, Блог компании JUG.ru Group, высокая производительность, Компиляторы, конференции, конференцияВсем привет! Представьте, что C++ Russia больше нет. Куда вы пойдёте вместо этого? Есть множество конференций, посвящённых более широким темам, но наша — одна из немногих, целиком и полностью сфокусированная на C++ и открыто заявляющая, что это будет реальный хардкор. Выбора немного. Хорошо, что мы никуда не исчезали! В следующий раз C++ Russia пройдёт уже этой весной.
Конференция состоится 19-20 апреля в Москве. Скорее всего, будет дополнительный третий день мастер-классов, которые не входят в основную программу.
Темы докладов: многопоточность и параллельные вычисления, новые фичи языка и компиляторов, сборка и инфраструктура сложных проектов с большими кодовыми базами, производительность и низкоуровневая жесть, метапрограммирование, функциональное программирование и другие парадигмы, архитектура сложных проектов, и многое другое.
Язык программирования Zig
2019-01-14 в 14:21, admin, рубрики: zig, Компиляторы, Программирование, системное программирование, языки программирования
Первым комментарием к замечательной статье Субъективное видение идеального языка программирования оказалась ссылка на язык программирования Zig. Естественно, стало интересно, что же это такое за язык, который претендует на шину C++, D и Rust. Посмотрел — язык показался симпатичным и в чем-то интересным. Приятный си-подобный синтаксис, оригинальный подход к обработке ошибок, встроенные сопрограммы. Данная статья является кратким обзором официальной документации с вкраплениями собственных мыслей и впечатлений от запуска примеров кода.
Читать полностью »
Как работает Zig?
2019-01-14 в 3:14, admin, рубрики: Brainfuck, LLVM, zig, Компиляторы, Программирование, системное программирование, языки программированияОт переводчика: этот пост был опубликован в блоге автора 15 марта 2018 года. Так как язык развивается, в настоящее время его синтаксис может отличаться. Всё описанное относится к Zig 0.2.0, текущая версия языка — Zig 0.3.0.
Я связался с автором поста, и он любезно предоставил ссылку на репозиторий с актуальной версией исходников проекта на Zig 0.3.0: https://github.com/jfo/zigf/commit/7b1c563a9bd20e084243bfa0c7435e3cb468ccf2
Здравствуйте! Давайте напишем интерпретатор Brainfuck! «Зачем?» — можете спросить вы, но вы не найдёте здесь ответа.
Я сделаю это на Zig.
Zig — это….
…новый язык программирования. Он пока в бета-версии, и быстро развивается. Если вы видели код на Zig раньше, код в этом посте может показаться вам немного другим. Он действительно другой! Zig 0.2.0 только что вышел, совпав с релизом LLVM 6 несколько недель назад, и включает в себя множество изменений синтаксиса и общие усовершенствования языка. Главным образом, многие «заклинания» были заменены ключевыми словами. Смотрите здесь для более глубокого объяснения всех изменений!
Zig разработан, чтобы быть читаемым, и относительно интуитивным для тех, кто знаком с компилируемыми и типизированными языками, такими, как C, C++, и, в некоторых моментах, Rust.
Код был скомпилирован и протестирован с Zig 0.2.0, который доступен прямо сейчас, по различным каналам, включая homebrew, если вы на OSX: brew install zig.
Читать полностью »
Байт-машина для форта (и не только) по-индейски (часть 3)
2019-01-06 в 15:59, admin, рубрики: forth, ассемблер, байт-код, виртуализация, интерпретатор, компилятор, Компиляторы, Программирование, системное программирование, фортНаступил год 2019. Новогодние праздники подходят к концу. Самое время начать вспоминать байты, команды, переменные, циклы…
Что-то я все уже забыл с этими праздниками. Придется вспоминать вместе!
Сегодня сделаем интерпретатор для нашей байт-машины. Это третья статья, первые части тут: часть 1, часть 2.
Всех с новым годом, и добро пожаловать под кат!
Читать полностью »
Немного о лексическом анализе
2019-01-03 в 22:38, admin, рубрики: lexer, php, regex, Компиляторы, никто не читает тегиДавным-давно, когда небо было голубым, трава зеленее и по Земле бродили динозавры… Нет, забудьте про динозавров. Ну, в общем, когда-то тогда пришла в голову мысль отвлечься от стандартного web-программирования и заняться чем-то более безумным. Можно было, конечно, чем угодно, но выбор пал на написание своего интерпретатора. Что я могу сказать… Никогда не пишите свои языки программирования. Но некоторый опыт из всего этого я извлёк, так что вот и решил поделиться. Начнём с самой основы — лексера.
Читать полностью »
Перспектива: MultiClet S1
2019-01-02 в 10:59, admin, рубрики: LLVM, multiclet, высокая производительность, Компиляторы, Криптовалюты, мультиклет, Процессоры, суперкомпьютерыИтак, пришло время поговорить о следующем поколении мультиклеточных процессоров: MultiClet S1. Если вы впервые слышите о них, то обязательно ознакомьтесь с историей и идеологией архитектуры в этих статьях:
- «Мультиклеточный процессор — это что?»
- «Мультиклет R1 — первые тесты»
- «Компилятор С/С++ на базе LLVM для мультиклеточных процессоров: быть или не быть?»
На данный момент новый процессор находится в разработке, но уже появились первые результаты и можно оценить, на что он будет способен.
Читать полностью »
Новый язык программирования Mash
2019-01-02 в 8:30, admin, рубрики: Mash lang, виртуализация, Компиляторы, ооп, Совершенный код, транслятор, язык программированияНа протяжении нескольких лет я пробовал свои силы в разработке своего языка программирования. Мне хотелось создать на мой взгляд максимально простой, функциональный и удобный язык.
В этой статье я хочу осветить основные этапы своей работы и для начала описать созданный концепт языка и его первую реализацию над которой сейчас работаю.
Читать полностью »
Мысли о Rust 2019
2018-12-21 в 13:18, admin, рубрики: c++, Rust, Блог компании Издательский дом «Питер», Компиляторы, Программирование, системное программирование, языки программированияКоллеги, доброго вечера всем!
Мы с радостью предлагаем вам перевод по-настоящему программной статьи от Рафа Левина, чей титанический труд над развитием языка Rust вызывает уважение и пиетет:
Без ложной скромности и без шапкозакидательства, предметно и увлеченно уважаемый автор откликнулся на призыв сообщества Rust, опубликованный по ссылке в начале этой статьи. Надеемся, получилось интересно и жизнеутверждающе.
Читать полностью »
Как Clang компилирует функцию
2018-12-19 в 3:36, admin, рубрики: C, c++, clang, LLVM, Компиляторы, компиляция, ПрограммированиеЯ планировал написать статью о том, как LLVM оптимизирует функцию, но сначала необходимо написать, как Clang транслирует C или C++ в LLVM.