Ознакомьтесь с нашей политикой обработки персональных данных
  • ↓
  • ↑
  • ⇑
 
17:32 

11 сентября

Почему-то до сих пор кажется что эти события были не так давно. Википедия всё же говорит что это было в далёком 2001 году, почти восемь лет назад.
Вспомнилось после просмотра очередной неплохой демки. Prophecy - Project Nemesis. 2004 год.

13:23 

демосцена

На очередные раздумья навело вот это
pouet.net/prod.php?which=31132
На этот раз авторы умудрились запихнуть что-то более-менее живое в 4кб. Мой мозг полон непонимания происходящего.

00:04 

ubuntu 9.04 @ EeePC 900

Решил поставить убунту на EeePC 900. Не зря поставил. Wi-Fi, звук завёлись из коробки, работают кнопки управления звуком. Про остальное не знаю.
Из минусов:
1. при старте иксов экран светится на краях ярким белым светом. Такое впечатление что раз двадцать вот так - и он сгорит.
2. не работает totem - падает при пупытке воспроизвести видео. Чинится следующим образом: запускаем gstreamer-properties, там вкладка видео, там "Выход по умолчанию" и выбираем "Система X Window (без расширения Xv)".

Ещё можно настроить автоматическое монтирование второго винчестера (у меня там один раздел, монтируется в /ssd)
# ls /dev/disk/by-id
08845431-e867-40a7-ab59-35ecce0c2261 e81f1471-6050-41dd-9777-c126b0ee3b36
# cat /etc/fstab
...
proc /proc proc defaults 0 0
UUID=e81f1471-6050-41dd-9777-c126b0ee3b36 / ext2 relatime,errors=remount-ro 0 1
# echo "UUID=08845431-e867-40a7-ab59-35ecce0c2261 /ssd ext2 auto 0 2" >> /etc/fstab
# mount -a


Система устанавливалась с 1Гб флешки, которая была предварительно сделана на другом компе с помощью утилиты "Создание загрузочного USB диска" и CD с убунтой. При установке настоятельно рекоментуется включить в биосе всё имеющееся на борту оборудование.

22:56 

Brainfuck

Итак, в очередной раз возникло желание написать что-то вроде языка высокого уровня, который моно было бы транслировать в Brainfuck. Попытался написать некое подобие на джаве, убил кучу времени. Потом вспомнил что когда-то давно писал нечто на с++, позволяющее в принципе закодить достаточно много алгоритмов. Суть этого нечта заключалась в следующем: определяется модель вычислений с помощью BF, после чего пишется на языке с++ некоторый базовый набор функций, вроде goto, сложения, копирования, переноса. С помощью этих простейших функций строятся более сложные, вроде умножения, вывода на экран и т.д. Каждая из этих функций делает не что иное, как выводит на экран (или в файл) всё что делает, в терминах BF. Таким образом, реализовав какой-то алгоритм с помощью этих функций, мы после запуска программы получаем на выходе эквивалентный код на BF, который можно исполнить интерпретатором. Плохо только то, что таким образом не пнятно как универсально реализовать операции сравнения, потому что заранее неизвестно количество аргументов тех функций, которые стоят в качестве кусков кода для then и else.
А модель в этом случае была такова: лента машины BF является своего рода стеком, все функции могут иметь только константы в качестве параметров (это могут быть просто числовые константы, или адреса ячек стека). Для перемещения по стеку можно использовать только лишь функцию goto, а операторами > и < пользоваться нельзя (если только конечно это не сделано с умом и указатель после этого вернётся в своё первоначальное положение). В начале работы почти каждая функция получает значение bp - текущий указатель стека, а в конце работы восстанавливает. Такая модель чем-то напоминает ассемблер с его инструкциями enter и leave. При вызове функции считается что она может портить весь стек, включая текущий указатель. Таким образом перед вызовом функций необходимо перемещать указатель стека выше переменных, дабы их не испортить. Вроде бы всё. Ещё меня раньше останавливало то, что непонятно как получить значение произвольного элемента массива, если его номер не константа, а лежит в стеке. Сегодня нашёл страницу с алгоритмами, где эта проблема решена
esolangs.org/wiki/Brainfuck_algorithms
Правда пока не разобрался как это работает. В любом случае теперь я не вижу помех для изготовления компилятора с Си на BF) Не понятно только одно: столько лет прошло, а компилятора я так и не вижу. Неужели его никто не написал?

the code inside me

главная