В преддверии Нового Года бороздил просторы сети, и нашёл замечательную демку на ассемблере рисования новогодней ёлки. Демка не простая, а золотая, написана таким образом, чтобы работала в загрузочном секторе диска, фактически микрооперационная система, если её так можно назвать. Из-за большой любви к Новому Году и ассемблеру, решил таки её немного разобрать, и восхититься мастерством автора. Итак, поехали. Читать полностью »
Рубрика «ненормальное программирование» - 15
TreeOS. 16-битная рождественская демка в загрузочном секторе
2020-12-30 в 9:05, admin, рубрики: ruvds_статьи, Блог компании RUVDS.com, Демосцена, ненормальное программированиеНовогодние бенчмарки компьютеров Эльбрус
2020-12-28 в 22:25, admin, рубрики: .net, java, javascript, Lua, php, python, бенчмарки, высокая производительность, Компьютерное железо, ненормальное программирование, Процессоры, ЭльбрусНовогодние бенчмарки компьютеров Эльбрус
Продолжение статьи Большое тестирование процессоров различных архитектур. В этот раз я решил измерить производительность конкретных сред/языков программирования (C#, Java, JavaScript, Python, Lua) на компьютерах с процессорами Эльбрус и сравнить их с компьютерами (даже телефонами) на процессорах архитектурой ARM и X86-64.
Языки программирования:
- C#
- PHP
- JavaScript (Browser, не NodeJS)
- Java
- Python
- Lua
Список тестов
- Dhrystone (http://www.roylongbottom.org.uk/#anchorSource)
- Whetstone (http://www.roylongbottom.org.uk/#anchorSource)
- Scimark 2 (Original sources: https://math.nist.gov/scimark2/download.html)
- Linpack (Based on: https://github.com/fommil/netlib-java/blob/master/perf/src/main/java/com/github/fommil/netlib/Linpack.java)
- Generic:
- Loops
- Conditions
- Arithmetics
- Math
- Array speed
- String manipulation
- Hash algorithms
Но сперва приведу результаты нативных бенчмарков на языке C, а также результаты других популярных бенчмарков.
Сколько нужно примитивов для реализации форт системы?
2020-12-27 в 1:39, admin, рубрики: forth, ненормальное программированиеВ 1992-м году проходил очередной конкурс по обфусцированному программированию на языке С. Один из представленных проектов был небольшой форт системой. Меня поразило, что виртуальная машина была реализована всего в 794 байтах С кода. Остальная часть форт системы загружалась из исходника на форте. После изучения проекта первоначальный восторг уступил место разочарованию, так как автор использовал не совсем “честный” трюк: для парсинга фортового исходника он использовал функцию scanf(). С этого момента меня терзал вопрос — сколько нужно примитивов для реализации форт системы без подобных трюков?
Читать полностью »
Вычисления без инструкций на x86
2020-12-16 в 12:35, admin, рубрики: red pill, x86, виртуализация, ненормальное программирование, низкоуровневое программирование, Процессоры, системное программирование, тьюринг-полнота, эзотерическое программированиеВ этой статье обсуждается необычное применение особенностей защищённого режима архитектуры x86 — для произведения вычислений без исполнения инструкций, то есть за счёт внутренних механизмов процессора: аппаратного переключения задач, хитроумного управления памятью и нетривиальной логики Читать полностью »
Интернациональное программирование на естественных языках
2020-12-05 в 9:26, admin, рубрики: natural language processing, естественный язык, ненормальное программирование, новый язык программирования, Программирование, разработка языков программирования, Семантика, Совершенный кодВ последнее время часто попадаются на глаза статьи о новых языках программирования, а так же различные рейтинги и прогнозы, связанные с популярностью компьютерных языков.
Заявляют о себе и новые инструментальные средства, которые в своей работе используют собственные форматы описания конфигурационных файлов или последовательности выполняемых команд, которые так же очень сильно приближает их к понятию «язык программирования».
Цель написания данной статьи — формулировка ожиданий и возможной реализации абстрактного языка программирования, который может стать универсальным инструментом для общения между компьютером и человеком.
Читать полностью »
Низкоуровневое программирование STM32: от включения питания до «Hello, World»
2020-11-27 в 13:15, admin, рубрики: diy или сделай сам, ruvds_перевод, stm32, Блог компании RUVDS.com, ненормальное программирование, программирование микроконтроллеровВ этом материале я хочу рассказать о том, как писать программы для микроконтроллеров (Microcontroller Unit, MCU) Cortex-M, вроде STM32, используя лишь набор инструментов ARM и документацию, подготовленную STMicroelectronics. У некоторых читателей может появиться вопрос о том, почему кому-то это может понадобиться. Если вам эта идея, на первый взгляд, не показалась очень уж страшной, то, возможно, вам будет интересно то, о чём пойдёт речь в этом материале. И, кстати, подумаем о том, кому и зачем это может пригодиться.
Конечно, разрабатывать программы для MCU STM32 можно с помощью существующих фреймворков. Это может быть ST HAL, обычный CMSIS, или даже что-то, более близкое к Arduino. Но… что тут увлекательного? Ведь, в итоге, тот, кто пользуется каким-то фреймворком, полностью зависим от документации к нему и от его разработчиков. И, с другой стороны, если документация к STM32 кажется кому-то, работающему с этой платформой, так сказать, бредом сивой кобылы, то можно ли говорить о том, что этот человек по-настоящему понимает данную платформу?
Поэтому давайте поговорим о низкоуровневом программировании STM32 и доберёмся от включения питания STM32 до «Hello, World».
Читать полностью »
Russian AI Cup 2020 — новая игра-стратегия для разработчиков
2020-11-27 в 12:01, admin, рубрики: AI, codecraft, Gamedev, raic, russian ai cup, russian ai cup 2020, Блог компании Mail.Ru Group, Занимательные задачки, искусственный интеллект, ненормальное программирование, Программирование
Этот год трансформировал многие процессы, изменились традиции, привычки. Поменялся ритм, появилась дополнительная неопределенность и напряженность. Но душа IT-специалиста требует разнообразия, и многие разработчики нас спрашивали — будет ли ежегодный чемпионат Russian AI Cup? Будет ли анонс? Какая тема грядущего чемпионата? Брать ли отпуск?
Не без изменений, но в лучших традициях. Накануне старта мы анонсируем один из крупнейших онлайн-чемпионатов современности по программированию искусственного интеллекта — Russian AI Cup. Приглашаем войти в историю!
Читать полностью »
Что за X++? Что за ABAP? Древние языки, про которые интересно слушать, но не дай бог на них писать
2020-11-19 в 14:01, admin, рубрики: abap, forth, Prolog, ненормальное программирование, старое железоБольшая разработка — дело коллективное, и это хорошо. Что бы ни взбесило тебя в условных Go или JS, точно найдется сотня-другая разрабов с такой же болью. Преодолевать ее вместе легче — и когда ломаешь голову над рабочей задачей, и когда просто собираешься с товарищами поныть, как все плохо.
Пишем ОС на Rust. Настройка среды. Бинарник для «голого» железа
2020-11-12 в 9:01, admin, рубрики: Rust, Железо, кросскомпиляция, ненормальное программирование, операционные системы, ПрограммированиеНастройка среды. "Голый" бинарник, или Исполняемый файл без main()
Первый шаг в написании своей ОСи — создание бинарника, не зависящего от стандартных библиотек, это делает возможным запуск кода без ОС — мы же пишем свою.
Оригинал блога разрабатывается на GitHub. Замечания к оригиналу оставляйте на странице Issues репозитория выше, а к переводу — в личке, комментариях или тут. Код, написанный в этой статье, содержится в ветке post-01
.
Трассировка лучей в реальном времени в 1 КБ кода
2020-11-12 в 7:03, admin, рубрики: demo, demoparty, demoscene, pc-speaker, ассемблер, демопати, Демосцена, ненормальное программирование, Работа с 3D-графикойДолгий путь к рождению Chrome Revenge
PENTRACE
Всё началось в 1994 году, когда я прочитал в Dr. Dobbs Journal несколько интересных статей о FPU (математическом сопроцессоре) нового процессора Pentium. Я пришёл к пониманию того, что численная производительность Pentium очень чувствительна к использованию и порядку команд FPU, и что дополнительными командами FXCH можно значительно увеличить скорость выполнения.
В то время при необходимости трассировки сцены лучами для получения результата требовались часы или даже дни. Я решил написать трассировщик лучей, похожий на POV-Ray или BOB, только на языке ассемблера, чтобы код при этом был сильно оптимизирован под FPU процессора Pentium. Это был «Pentrace», мой дипломный проект в колледже.Читать полностью »