Assembler в 30 строк на Excel

Abnormal programmingSport programmingAssembler
В заголовке порядок слов не перепутан.



Живет в Венгрии юный программист Адам Кишш. Он участвует в чем-то типа онлайн-олимпиады KöMaL. Для решения заданий по информатике предлагается использовать несколько обычных языков программирования: С, С++, Python и некоторые другие. В одном из заданий требовалось написать Сапер и бота для игры в него. Такая задача очень легко решается средствами табличного процессора — того же Excel, например, и пачки макросов. Однако же, макросы использовать нельзя. Адам выкрутился необычным способом: реализовал в книге Excel простенький виртуальный компьютер, который программируется на Ассемблере — Excembler.

Формально, это подходит под требования олимпиады. Макросы не используются, только встроенные логические функции. Файл «компьютера» доступен для скачивания, но он на венгерском. Гугл транслейт плюс здравый смысл вроде позволили разобраться. Реализован некий простейший придуманный ассемблер. Возможно, кто-то из читателей укажет прототип. Вкратце опишу, что получилось. На первом листе собственно код программы и результат выполнения. В цветных столбцах состояние регистров перед выполнением соответствующей операции, слева код и аргументы. Смысл столбца OUT-assist до конца не ясен, похоже там отслеживаются изменения регистра результата. Лист Out — результаты, лист Data — входные данные. Их можно адресовать по номеру строки и столбца и загружать в регистр LD командой LOAD. Command set — справка по системе команд. Надеюсь, что перевел правильно. Examples — несколько примеров. Было не вполне понятно, откуда они загружают данные. Надо смотреть непосредственно по коду. Например, LOAD 2,3 — это запрос ячейки Data!B3, если ничего не напутал.

Вывод: интересная игрушка на поиграться вечерком

Библиография:
www.komal.hu/verseny/feladat.cgi?a=feladat&f=I358&l=en задание олимпиады
hackaday.io/project/3680-exembler собственно проект. Почти пустой, но там можно скачать экселевский файлик на венгерском
hackaday.com/2014/12/25/writing-a-virtual-machine-in-excel новость на Хакдее
www.dropbox.com/s/xjk5sqtarsgvnex/exembler_v0.2.xlsx?dl=0 (возможно криво) переведенная таблица
Tags:excemblerвенгрияexcelникто не читает тегиконтестинформатикаолимпиадашкольникитвитмикропост
Hubs: Abnormal programming Sport programming Assembler
+66
75.3k 198
Comments 29

Popular right now

Программист Delphi
from 75,000 to 100,000 ₽Группа ЧТПЗRemote job
Системный программист ОС Linux
from 80,000 to 150,000 ₽КА «ЦИБИТ»Москва
Разработчик С /С++
from 110,000 ₽VMS SoftwareСанкт-ПетербургRemote job

Top of the last 24 hours