Теряем невинность с Таненбаумом: Amsterdam Compiler Kit

Пока вы рождались, ходили в школу, заканчивали учебу и выходили на свою первую работу, на свете существовал совершенно особенный набор компиляторов , о котором крайне мало известно на просторах РФ. Именно о нем пойдет сегодняшний рассказ.

https://habr.com/ru/articles/938120/

#ack #таненбаум #компиляторы #си #freebsd #pdp11 #pdp #unix

Теряем невинность с Таненбаумом: Amsterdam Compiler Kit

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

Хабр

[Перевод] Визуализатор сборок в режиме реального времени

Под катом – анимация, демонстрирующая сборку приложения для macOS в режиме реального времени: Я расскажу, как она получилась, но для начала обрисую контекст этого проекта. Компиляция конкретного софта может быть очень длительной просто потому, что в этой программе очень много кода — как, например, в проекте LLVM. Но бывает и так, что сборка идёт медленно по глупым и вполне устранимым причинам. Подозреваю, что большинство сборок просто тормозят из-за ерунды, но проверить это мне пока не удавалось. Поэтому я разработал кроссплатформенный инструмент для визуализации сборок (пока он существует в приватной бета-версии, ссылка в конце статьи). Он работает с любой системой сборки и с любым языком программирования (а не только C/C++/Rust).

https://habr.com/ru/articles/937972/

#clang #компиляторы #сборка #программирование #скрипты #непрерывная_интеграция

Визуализатор сборок в режиме реального времени

Под катом – анимация, демонстрирующая сборку приложения для macOS в режиме реального времени: Я расскажу, как она получилась, но для начала обрисую контекст этого проекта. Компиляция конкретного софта...

Хабр

[Перевод] Невидимые загрузки или о пользе свободно стоящих функций

Довольно долго я тягался с по-настоящему глупой проблемой на C++: мне не нравятся функции экземпляров, но я вынужден их писать, чтобы программисту было хоть немного удобнее работать. Функции экземпляров обеспечивают две вещи: разграничение областей видимости и обнаружимость. Разграничение областей видимости — менее актуальная из этих задач, поскольку в моём коде на C++ я и так не использую модификаторы private/public. Обнаружимость — большая проблема: я могу написать x.F , а IDE предложит x.Func() . Отлично! «Но правильные программисты пользуются только vim и скромными IDE». Что ж, привет вам, воображаемые мифические обычные программеры. Здесь вам ничего не угрожает, но, пожалуйста, уходя — надевайте сразу два беджика: «vim отстой» и «Я ненавижу emacs». Отлично помогает завязать разговор с «настоящими» программистами.

https://habr.com/ru/companies/piter/articles/931010/

#c++ #компиляторы #проектирование_и_рефакторинг #профессиональная_литература

Невидимые загрузки или о пользе свободно стоящих функций

Довольно долго я тягался с по-настоящему глупой проблемой на C++: мне не нравятся функции экземпляров, но я вынужден их писать, чтобы программисту было хоть немного удобнее работать. Функции...

Хабр

И как оно? Рассказываем как прошёл второй Java Rock Stars Meetup

Привет, Хабр! Первый Java Rock Stars Meetup прошёл на ура (обзор первого митапа см. тут ) и вы сказали, что хотели бы ещё. Ну, что ж, мы услышали, приняли и сделали. В конце мая мы провели второй Java Rock Star Meetup в Москве на той же площадке Casa Picassa, только в соседнем лофте. В этот раз мы выбрали площадку с большей вместимостью, поскольку кол-во регистраций в этот раз было сильно выше (как и дошедших до локации участников), чему мы были несказанно рады! Под катом — записи докладов, фото, видео и как это было.

https://habr.com/ru/companies/axiomjdk/articles/922702/

#обзор #java #митап #митапы #митапы_в_москве #jvm #обратная_совместимость #компилятор #компиляторы #ide

И как оно? Рассказываем как прошёл второй Java Rock Stars Meetup

Привет, Хабр! Первый Java Rock Stars Meetup прошёл на ура (обзор первого митапа см. тут ) и вы сказали, что хотели бы ещё. Ну, что ж, мы услышали, приняли и сделали. В конце мая мы провели второй Java...

Хабр

[Перевод] Что будет, если компилятор станет встраивать код по максимуму

Усаживайтесь поудобнее, ребята! Сегодня мы с вами разберём следующий увлекательный вопрос: что будет, если заинлайнить вообще всё? Если вы пока не знакомы с техникой встраивания (inlining) то примите к сведению, что в сообществе специалистов по разработке компиляторов многие, в том числе очень авторитетные фигуры (например, Чендлер Каррут ) считают этот приём наиважнейшим при оптимизации компиляторов. Подробнее о том, как устроено встраивание, рассказано здесь — мы беззастенчиво хвалимся той презентацией, с которой выступили перед участниками конференции LLVM Developers' Meeting по межпроцедурной оптимизации. Я рассказывал о встраивании и очень рекомендую вам посмотреть хотя бы первые 6 минут. В этом видео я рассказываю, почему встраивание — очень простое преобразование, а вот тут вашему вниманию предлагается реализация встраивания, предложенная великим Крисом Латтнером уже около 20 лет назад — в ней всего около 200 строк кода. К сожалению, сегодня даже само преобразование пропорционально выросло: в качестве примера взгляните хотя бы на InlineFunction.cpp . В вышеупомянутом видео я рассказываю, что у встраивания есть свои недостатки . Иными словами, встраивание позиционируется как супер-пупер инструмент в арсенале компиляторщика, но пользоваться этой штукой следует с осторожностью. И следует ли вообще?

https://habr.com/ru/articles/916580/

#компиляторы #inline #высокая_производительность ++ #оптимизация_кода

Что будет, если компилятор станет встраивать код по максимуму

Усаживайтесь поудобнее, ребята! Сегодня мы с вами разберём следующий увлекательный вопрос: что будет, если заинлайнить вообще всё? Если вы пока не знакомы с техникой встраивания (inlining) то примите...

Хабр

О времени, сложности и мотивации: финал

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

https://habr.com/ru/articles/913730/

#dart #компиляторы #корутины #открытый_код #состояние #языки_программирования #мотивация #качество_кода #асинхронное_программирование #многопоточность

О времени, сложности и мотивации: финал

Приветствую вас, читатели. Для начала я рекомендую вам ознакомиться с первой частью моего цикла статей. В этом цикле я пишу о балансе, состояниях разработчика, корутинах и Dart. Все части: Часть 1: О...

Хабр

О времени, сложности и мотивации: история поражения и победы

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

https://habr.com/ru/articles/913728/

#dart #компиляторы #корутины #открытый_код #состояние #языки_программирования #мотивация #качество_кода #асинхронное_программирование #многопоточность

О времени, сложности и мотивации: история поражения и победы

Приветствую вас, читатели. Для начала я рекомендую вам ознакомиться с первой частью моего цикла статей. В этом цикле я пишу о балансе, состояниях разработчика, корутинах и Dart. Все части: Часть 1: О...

Хабр

О времени, сложности и мотивации: знакомство

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

https://habr.com/ru/articles/913726/

#dart #компиляторы #корутины #открытый_код #состояние #языки_программирования #мотивация #качество_кода #асинхронное_программирование #многопоточность

О времени, сложности и мотивации: знакомство

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

Хабр

Пишем самый примитивный компилятор на Python

Сегодня мы с вами напишем примитивный компилятор на Python. Ну очень примитивный! Но за то будет опыт.

https://habr.com/ru/articles/901324/

#компиляторы #python3 #tutorial

Пишем самый примитивный компилятор на Python

Всем привет, сегодня мы с вами напишем компилятор на Python. Мало чего он будет уметь, но для начала сойдёт. Структура компилятора Всего 4 этапа: Лексер со своими токенами Парсер со своим AST Сам...

Хабр

Эльбрус стал намного ближе

Недавно МЦСТ опубликовала кросскомпилятор для «Эльбрус». Это большой шаг в развитии платформы. Теперь любой человек может собрать программу под е2к на своем домашнем компьютере. В этой статье вас ждет инструкция по ручному развертыванию всего окружения для разработки под е2к, скрипт для автоматического развертывания, а также Docker-контейнер с готовым окружением. Благодаря контейнеру процесс развертывания упрощается до вызова одной команды, а также он позволяет работать даже на Windows. Если вы хотели попробовать собрать свой код или какой-нибудь другой код под «Эльбрус», то сейчас самое время.

https://habr.com/ru/articles/898040/

#эльбрус #c++ #кросскомпиляция #компиляторы #разработка #портирование

Эльбрус стал намного ближе

Не так давно МЦСТ опубликовали кросскомпилятор для Эльбрусов. Это действительно важное событие в развитии платформы. Теперь для разработки под e2k не нужен ни свой Эльбрус, ни даже доступ к серверу на...

Хабр