Язык программирования
Примеры ИИ запросов
Запрос версии 1.2 для генерирования несколько иного интерпретатора языка Oflameron.
Начнем улучшать возможности для шифрования
Запрос:
Напиши HTML+JavaScript код веб-страницы с полем ввода кода (textarea), полем вывода (textarea) и кнопкой RUN.
Реализуй интерпретатор со следующими правилами:
Переменные и константы:
h, q, l, k - числовые переменные, начальное значение 0 для всех
Константы и их значения:
a=0, b=1, c=3, d=5, e=7, p=19, t=23, v=43, w=73
Обработка чисел:
Если число >127: while(num > 127) num -= 127
Если число <0: num = Math.abs(num)
Эти преобразования применяются после КАЖДОЙ математической операции к результату
Диапазон для ASCII-операций: 0-127
Допустимые операнды в операциях:
Константы: a, b, c, d, e, p, t, v, w
Переменные: h, q, l
k используется ТОЛЬКО как индекс, НЕ как операнд в вычислениях
Операторы:
fXY - умножение: h = normalize(X * Y) (k+3)
gXY - сложение: h = normalize(X + Y) (k+3)
iXY - вычитание по модулю: h = normalize(Math.abs(X - Y)) (k+3)
lX - записать в l код символа из позиции k + normalize(X) (k+2)
X - любой допустимый операнд
Если позиция вне строки > пропустить операцию
mX - вывести символ с кодом normalize(X) в поле вывода (k+2)
Выводить только если код в диапазоне 32-126 (печатные символы)
X - любой допустимый операнд
nq - заменить символ в позиции k + normalize(q) на символ с кодом normalize(h) (k+2)
Если позиция вне строки > пропустить операцию
После замены продолжать выполнение обычным образом
Общие правила:
Исполнение: строго слева направо
Указатель k: только увеличивается, никогда не уменьшается
Движение по коду:
Операторы f,g,i: k+3
Операторы l,m: k+2
Оператор nq: k+2
Любой другой символ: k+1
Обработка ошибок:
Если ожидается операнд, но символ не является допустимым > k+1, пропустить текущий символ
Пример: fgh > символ 'g' недопустим как операнд для 'f' > k+1
Неизвестные символы: любые символы, не описанные выше, просто пропускаются (k+1)
Самомодификация: код может изменять сам себя через оператор nq
Сброс состояния: при каждом нажатии RUN начинать с чистого состояния
Нормализация чисел: функция normalize(num) применяется ко всем результатам математических операций и при использовании чисел как индексов/ASCII-кодов:
javascript
function normalize(num) {
while (num > 127) num -= 127;
if (num < 0) num = Math.abs(num);
return num;
}
Примеры поведения:
fbc > h = normalize(1?3) = 3, k+3
ghc > h = normalize(h + 3), k+3
lp > l = код_символа_в_позиции(k+19), k+2
ml > вывести символ с кодом normalize(l) (если 32-126), k+2
nq > code[k+normalize(q)] = символ_с_кодом normalize(h), k+2
Требования к реализации:
Чистый JavaScript, без внешних библиотек
Интерфейс: два textarea и кнопка
Защита от бесконечных циклов (максимум 100000 шагов)
Интерпретатор не должен сохранять состояние между запусками
Примечание: Интерпретатор допускает неоднозначные ситуации - обязанность контроля возлагается на программиста.
https://chat.deepseek.com/share/w5pzla3xtvoovi98ow
https://llmproject.livejournal.com/15740.html
Comments
Post a Comment