пятница, 7 декабря 2012 г.

Обновлённый список проектов

jobbox
Описание: программа для запуска приложений в задании (job). Запускается как служба и создаёт pipe(канал). К pipe подключаются клиенты и посылают запрос на запуск какой-либо программы с нужными ограничениями.
Текущие возможности: на данный момент программа обеспечивает подключение одного клиента. После запуска указанного клиентом приложения с ограничениями, останавливается до завершения его работы (запущенного приложения). После закрытия приложения переходит в режим ожидания подключения нового клиента.
Состояние: разрабатывается.
Язык: C++
Лицензия: GPLv2
Исходники:
архив: https://sourceforge.net/projects/jobbox/
Git: https://github.com/marat-ab/jobbox
Документация: - 

TuringMachine
Описание: эмулятор машины Тьюринга.
Текущие возможности: программа позволяет сконфигурировать требуемую машину Тьюринга и посмотреть на результат её работы для заданной ленты.
Состояние: разрабатывается.
Язык: C#
Лицензия: GPLv2
Исходники:
архив: https://sourceforge.net/projects/turingmachinee/
Git: https://github.com/marat-ab/TuringMachine
Документация: - 

ProcessWatcher
Описание: мониторинг за процессами MS Windows.
Текущие возможности: позволяет просматривать список процессов и их модулей. Следит за открывающимися и закрывающимися процессами и выводит соответствующую информацию
Состояние: разработка временно остановлена.
Язык: C++
Лицензия: GPLv2
Исходники:
архив: https://sourceforge.net/projects/processwatcher/
Документацияhttp://attempts-to-see.blogspot.ru/search/label/ProcessWatcher


Notes
Описание: создание заметок.
Текущие возможности: позволяет создавать заметки. Есть возможность изменять окно отображения заметок.
Состояние: разработка временно остановлена.
Язык: C#
Лицензия: -
Исходники: -
Исполняемый файл: https://sourceforge.net/projects/notessoft/
Документацияhttp://attempts-to-see.blogspot.ru/search/label/Notes



среда, 5 декабря 2012 г.

О вычислениях, машинах Тьюринга и других интересных вещах. Part 3


Сейчас мы более подробно разберем устройство Машины Тьюринга (МТ). При чтении двух предыдущих постов на эту тему, может показаться, что это “устройство” имеет очень сложную конструкцию. Но на самом деле это не так. Конструкция МТ очень простая.  
Основными её компонентами являются лента бесконечная в обоих направлениях (хотя на практике часто используют ленту ограниченную с одного конца) и считывающая головка.

воскресенье, 25 ноября 2012 г.

Идеи навеянные изучением конечных и бесконечных машин и квантовой электродинамики (КЭД). Part 1.


Возникло несколько идей, которые можно попробовать применить в программировании.
Идея № 1.
Начнём с КЭД. Если кому-то интересна эта тема, советую прочитать книжку Ричарда Фейнмана "КЭД - странная теория света и вещества". В КЭД свет описывается как поток частиц и все различные волновые свойства света, такие как дифракция, интерференция, отражение света, фокусировка с помощью линз, объясняются с этой точки зрения.
Не переключайтесь! Будет интересно!.

четверг, 22 ноября 2012 г.

О вычислениях, машинах Тьюринга и других интересных вещах. Part 2


По материалам Марвина Мински “Вычисления и автоматы”.
Как было указано в предыдущей части, для любой эффективной процедуры мы можем составить машину Тьюринга (МТ). Т.е. если у нас есть какой-то алгоритм, например алгоритм нахождения простых чисел, то одним из способов его реализации может быть МТ  (пока не будем вдаваться в тонкости работы МТ, этот вопрос мы обсудим позже на нескольких примерах).
Пойдём дальше. Наверное, не очень удобно собирать для каждой задачи свою МТ. А можно ли составить такую МТ, которая в качестве входных данных получает описание другой МТ и данные для неё?

среда, 21 ноября 2012 г.

О вычислениях, машинах Тьюринга и других интересных вещах. Part 1


Хотелось немного просвещать вопросы, связанные с вычислениями, машинами Тьюринга и т.п. На абсолютную корректность того, что излагаю, не претендую, это просто различные выдержки из книг, журналов и других источников, прошедшие через мою голову. За правки и комментарии буду очень благодарен.
При изучении вопроса о вычислениях одним из первых всплывает понятие алгоритма. Алгоритм (или эффективная процедура) как говорит Википедия -  набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное число действий.
Если какую-либо процедуру мы можем вычислить механически (т.е. на какой-то машине, или просто вручную), то такую процедуру будем называть эффективной. И обратно, если процедуру мы называем эффективной, то её можно реализовать механически. А каким требованиям отвечает “эффективная процедура”?

пятница, 26 октября 2012 г.

Эквивалентность конечного автомата "нейронной сети"


В книге Марвина Минского «Вычисления и автоматы» наткнулся на одну интересную теорему: «всякая конечная машина эквивалентна некоторой нейронной сети и может быть «смоделирована» ею». Суть заключается в том, что для любой конечной машины можно составить эквивалентную ей нейронную сеть, но это не самое замечательное. Интерес представляет универсальный метод построения нейронной сети по автомату!
Рассмотрим данную задачу на примере. Для начала определимся с терминологией. Раз за основу взята книжка Минского, то воспользуемся определениями из неё. Конечные автоматы это такие машины, которые переходят чётко разграниченными шагами из одного состояния в другое, причём оба этих набора принадлежат к некоторому конечному набору. Конечный автомат можно рассматривать как «чёрный ящик», который характеризуется определённой величиной (обобщённое состояние), Это обобщённое состояние изменяется в соответствии с предыдущими состояниями и входным сигналом (т.е. средой). С другой стороны данную машину можно представить как структуру, состоящую из отдельных элементов. Зная логику работы и связи между элементами, мы можем сказать, как эта система будет работать.

воскресенье, 26 февраля 2012 г.

Интерпретаторы и компиляторы. Part 3.


В этой части мы сосредоточимся на грамматиках и иерархии Хомского.
Грамматику, по Хантеру, можно рассмотреть как следующую структуру:
(VT, VN, P, S)
VT – алфавит терминалов,
VN – алфавит нетерминалов,
Необходимо отметить, что множества VT и VN не пересекаются, а их объединение будем обозначать V.
P – множество правил. Каждое правило состоит из левой и правой частей и записывается так: q r.
S – аксиома грамматики. С неё начинается генерация строк языка с данной грамматикой.
Теперь мне бы хотелось процитировать Хантера: “Грамматика используется для генерации последовательностей символов составляющих строки языка, начиная с аксиомы и последовательно заменяя её с помощью одного из порождений грамматики”.