Эзотерический язык программирования
AI Prompting
Примеры ИИ Запросов
Напишем запрос для разработки интерпретатора некоего языка программирования, который можно использовать для криптографии.
Такой интерпретатор можно использовать как конечный автомат.
Для шифрования текста из N букв можно использовать N разных интерпретаторов...
Текст запроса (первый вариант):
Напиши HTML+JavaScript код веб-страницы с полем ввода кода (textarea), полем вывода (textarea) и кнопкой RUN.
Реализуй интерпретатор со следующими правилами:
Переменные и константы:
h, q, l, k - числовые переменные, начальное значение 0
Константы: a=0, b=1, c=3, d=5, e=7
Обработка чисел:
Если число >127: while(num > 127) num -= 127
Если число <0: num = Math.abs(num)
Диапазон h: 0-127 (применять указанные выше преобразования)
Операторы:
fXY - умножение: h = X * Y (k+3)
gXY - сложение: h = X + Y (k+3)
iXY - вычитание по модулю: h = Math.abs(X - Y) (k+3)
Где X,Y - a,b,c,d,e,h
lX - записать в l код символа из позиции k+X, где X - a,b,c,d,e,h (k+2)
mX - вывести символ с кодом X в поле вывода, если код 32-126 (печатные) (k+2)
nq - заменить символ в позиции k+q на символ с кодом h (k+2)
Если k+q вне диапазона строки - пропустить
Общие правила:
Исполнение слева направо
k только увеличивается
При ошибке: k+1, пропустить символ
Самомодификация кода через nq
При RUN: сброс состояния, исполнение с начала
Реализуй логику обработки ошибок: если ожидается операнд, но символ не является допустимым (не a,b,c,d,e,h) - это ошибка, k+1.
Пример поведения:
fbc → h=3, k+3
ghc → h = h + 3, k+3
lb → l = код_символа_из_позиции(k+1), k+2
mh → вывод символа с кодом h, k+2
nq → code[k+q] = символ_с_кодом_h, k+2
Интерпретатор оформлен как веб страница для удобства тестирования и разработки программ.
Исчерпывающей обработки ошибок нет. Это усложняет взлом кода.
AI Code Generation
https://oflameron.com
Комментарии
Отправить комментарий