Реализовать алгоритм.Работа с текстом. Язык не важен, желателен c#
Доброго времени суток!
Задача очень срочная, но не сложная.
Сделать её надо до 12 июня (включительно).
Т.к. я не являюсь представителем какой-либо фирмы, цена договорная.(Рассчитываю на 50 - 65$)
Деньги переведу оперативно на карту.
Описание задачи:
Надо написать программу, которая будет обфусцировать код функционального языка sml.
Возможно, звучит угрожающе, но по сути нужно просто обработать входной текст и выдать его в измененном виде.
Оригинальный алгоритм называется "алгоритм ченгси ванга (Chenxi Wang's лучше гуглится)".
Прикрепил картинки для наглядности (№1,2)
Он состоит из трех шагов :
1. Проектирование графа потока управления процедурой. Граф задаётся множеством вершин (блоков) и множеством ребер (связей). Затем граф разбивается, заменяя циклические конструкции на конструкции "if (условие) goto".
2. Производится нумерация всех вершин с добавлением в код процедуры переменной (например "postNumber"), отвечающей за номер следующего выполняемого блока.
3. Преобразование графа к однородному ("плоскому") виду.
(я прикрепил картинки, на них наглядно понятней, мне по крайней мере)
Но т.к. нам надо обфусцировать функциональный язык, в нем не надо знать номер след. выполняемого блока, мы все имена функций меняем на "*буква" цифра* .
Так же надо добавить недостижимые ветки. В функциональных языках, если ветка недостижима, но является неверной( например, выполняется 1/0), ошибки не будет.
Пример работы алгоритма прикрепил как в вордовском файле, так и картинкой (№3)
Так же скину несколько программ для тестирования алгоритма.