суббота, 16 июля 2016 г.

Эльбрусы: информационное поле и пропаганда

Сегодня будет несколько необычный пост для моего технического бложика. В комментах недавнего поста где развели очередное трололо про Эльбрус, я пообещал одному уважаемому Анониму ответить на его высказывание отдельным постом. Господа тролли, это пост для вас!

суббота, 4 июня 2016 г.

Список учебных курсов по оптимизирующим компиляторам


Как вы помните, я читаю курс по оптимизирующим компиляторам. В процессе подготовки к лекциям приходится искать много материала по теме, часто бывает что какой-то информации нету в книгах, и гугл выбрасывает меня на лекции с других ВУЗов или публикации. В этом посте поделюсь ссылками на другие курсы лекций, относящиеся к компиляторам, из которых я брал информацию.

четверг, 26 мая 2016 г.

Профиль программы и его предсказание

Сегодня хотел бы рассказать про то как в компиляторе представлена профильная информация и как она предсказывается. Студентам и просто людям часто выносит мозг тот факт что компилятор статически (т.е. без реального исполнения) может предсказывать такие вещи как количество итераций у цикла или просто вероятности переходов, поэтому расскажу об этом по подробнее.

четверг, 12 мая 2016 г.

Пишем "Hello, world" на ассемблере

Так сложилось, что я совсем не знаю ассемблера. Даже несмотря на то, что я разрабатываю компиляторы, на уровень близкий к аппаратуре я почти не спускаюсь. Была пара попыток его выучить, но я просто не находил подходящего материала. В итоге решил что если его нет, то нужно написать самому. В этой заметке я планирую показать как написать простой Hello world на ассемблере.

В данной статье я преследую несколько целей:
  • Изучить основы работы с ассемблером
  • Сравнить ассемблеры процессоров различных архитектур и, как следствие, показать разные аппаратные особенности
  • Написать материал по которому новички далее смогут самостоятельно продолжить изучение ассемблера
Содержание:
  1. Введение
  2. amd64
  3. sparc v9
  4. Эльбрус
  5. Послесловие
  6. Источники

суббота, 9 января 2016 г.

Собираем кросс-компилятор gcc для sparc

Бывает, что перед разработчиком встаёт задача собрать проект, запускающийся на одной платформе, но при этом для разработки проекта используется другая. Для этих целей применяется кросс-компилятор - специальная сборка компилятора, работающая на host-платформе, и генерирующая код для target-платформы. Здесь я расскажу как собирать gcc с хостом на x86, генерирующий код под sparc.

вторник, 15 декабря 2015 г.

Опасность вызова функций без объявленного прототипа в C

Ещё один пост про тонкости линковки. Предыдущий лежит здесь. На этот раз речь пойдёт преимущественно о старых исходниках, переносе их в 64-х битный режим, ну и немного про режим сборки "вся программа". Пример основан на реальных событиях исходниках.