[Перевод] Пишем собственную виртуальную машину

В этом руководстве я расскажу, как написать собственную виртуальную машину (VM), способную запускать программы на ассемблере, такие как 2048 (моего друга) или Roguelike (моя). Если вы умеете программировать, но хотите лучше понять, что происходит внутри компьютера и как работают языки программирования, то этот проект для вас. Написание собственной виртуальной машины может показаться немного страшным, но я обещаю, что тема удивительно простая и поучительная.

Окончательный код составляет около 250 строк на C. Достаточно знать лишь основы C или C++, такие как двоичная арифметика. Для сборки и запуска подходит любая Unix-система (включая macOS). Несколько API Unix используются для настройки ввода и отображения консоли, но они не являются существенными для основного кода. (Реализация поддержки Windows приветствуется).

Примечание: эта VM — грамотная программа. То есть вы прямо сейчас уже читаете её исходный код! Каждый фрагмент кода будет показан и подробно объяснён, так что можете быть уверены: ничего не упущено. Окончательный код создан сплетением блоков кода. Репозиторий проекта тут.

Читать дальше →
[Перевод] Пишем собственную виртуальную машину
Source: geektimes

Для игр и развлечений: обзор линейки мониторов ViewSonic

Игровой PC нельзя представить без монитора. И сколько бы fps ни обещала видеокарта, неправильный выбор «окна» в виртуальный мир способен испортить всё впечатление. Чтобы не ошибиться, важно заранее узнать […]
Для игр и развлечений: обзор линейки мониторов ViewSonic
Source: 4pda

Пост №3765123

Автор: PavloZlo

Развернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»/post/3765123″ }, «headline»: «арт девушка :: miura n315 :: artist :: art (арт)», «image»: { «@type»: «ImageObject», «url»: «http://img10.joyreactor.cc/pics/post/full/%D0%B0%D1%80%D1%82-%D0%B4%D0%B5%D0%B2%D1%83%D1%88%D0%BA%D0%B0-art-miura-n315-artist-4916063.jpeg», «height»: 1280, «width»: 1280 }, «datePublished»: «2018-12-24T11:29:34+03:00», «dateModified»: «2018-12-24T11:29:34+03:00», «author»: { «@type»: «Person», «name»: «PavloZlo» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3765123
Source: Joyreactor

Пост №3765122

Автор: bunnyx_x

Развернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»/post/3765122″ }, «headline»: «Кто туту нас хорооший маальчик? / Смешные комиксы (веб-комиксы с юмором и их переводы)», «image»: { «@type»: «ImageObject», «url»: «http://img0.joyreactor.cc/pics/post/full/%D0%9A%D0%BE%D0%BC%D0%B8%D0%BA%D1%81%D1%8B-4916062.jpeg», «height»: 614, «width»: 374 }, «datePublished»: «2018-12-24T11:29:26+03:00», «dateModified»: «2018-12-24T11:29:26+03:00», «author»: { «@type»: «Person», «name»: «bunnyx_x» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3765122
Source: Joyreactor

Пост №3765108

Автор: Digidoid

Развернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»/post/3765108″ }, «headline»: «Tumblr data storage before 12-17-18 Tumblr data storage after 12-17-18 / tumblr :: data storage :: geek (Прикольные гаджеты. Научный, инженерный и айтишный юмор)», «image»: { «@type»: «ImageObject», «url»: «http://img1.joyreactor.cc/pics/post/full/tumblr-data-storage-geek-%D0%BF%D0%B5%D1%81%D0%BE%D1%87%D0%BD%D0%B8%D1%86%D0%B0-4916043.jpeg», «height»: 960, «width»: 546 }, «datePublished»: «2018-12-24T11:18:58+03:00», «dateModified»: «2018-12-24T11:18:58+03:00», «author»: { «@type»: «Person», «name»: «Digidoid» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3765108
Source: Joyreactor

Цитата #453796

«Сбербанк» создал дирекцию SberX, которая будет координировать развитие экосистемы…

Alexandr Simonov: Почему не iSber?
Ivan Shmellev: Да, Х его знает…
Цитата #453796
Source: bash

Xiaomi Mi Play: новейший процессор и двойная камера за $156

В рамках специального мероприятия, прошедшего сегодня в Китае, Xiaomi представила бюджетный смартфон Xiaomi Mi Play с двойной камерой, ориентированный на молодёжную аудиторию. Помимо ярких расцветок корпуса […]
Xiaomi Mi Play: новейший процессор и двойная камера за 6
Source: 4pda

Пост №3765097

Автор: alisher1

Развернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»/post/3765097″ }, «headline»: «На основе комикса Сова — эффективный менеджер. / менеджмент :: Xander Toons :: фанатское :: Смешные комиксы (веб-комиксы с юмором и их переводы)», «image»: { «@type»: «ImageObject», «url»: «http://img0.joyreactor.cc/pics/post/full/Xander-Toons-%D1%84%D0%B0%D0%BD%D0%B0%D1%82%D1%81%D0%BA%D0%BE%D0%B5-%D0%BC%D0%B5%D0%BD%D0%B5%D0%B4%D0%B6%D0%BC%D0%B5%D0%BD%D1%82-%D0%9A%D0%BE%D0%BC%D0%B8%D0%BA%D1%81%D1%8B-4916026.jpeg», «height»: 1600, «width»: 1600 }, «datePublished»: «2018-12-24T11:04:39+03:00», «dateModified»: «2018-12-24T11:04:39+03:00», «author»: { «@type»: «Person», «name»: «alisher1» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3765097
Source: Joyreactor

Пост №3765094

Автор: Critical Failure

Развернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»/post/3765094″ }, «headline»: «(Ö)@SWiSMUNER / Шишунер :: Смешные комиксы (веб-комиксы с юмором и их переводы)», «image»: { «@type»: «ImageObject», «url»: «http://img1.joyreactor.cc/pics/post/full/%D0%A8%D0%B8%D1%88%D1%83%D0%BD%D0%B5%D1%80-%D0%9A%D0%BE%D0%BC%D0%B8%D0%BA%D1%81%D1%8B-4916023.jpeg», «height»: 721, «width»: 700 }, «datePublished»: «2018-12-24T11:03:27+03:00», «dateModified»: «2018-12-24T11:03:27+03:00», «author»: { «@type»: «Person», «name»: «Critical Failure» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3765094
Source: Joyreactor