Всем форумчанам доброго времени суток,
Проделал небольшое исследование и пришел к выводу, что настоящий квин в 1С, скорее всего, невозможен из-за
фундаментальных ограничений:
Нет repr() или автоматического экранирования — нельзя безопасно кодировать строки с кавычками.
Нет программного доступа к своему коду без файлов.
Ограничение 2^32-1 для побитовых операций.
Кириллица в ключевых словах усложняет самовоспроизведение "но не во всех какие то циклы можно писать на англ."
Круговая зависимость в любых подходах с хранением кода.
Что возможно:
Квин через файл (с ручным созданием первого файла).
Квин, который выводит байты своего кода (но это не настоящий квин).
Что невозможно:
Полноценный квин, который генерирует свой код без внешних файлов.
Я попробовал все основные подходы:
LZ-сжатие (сломалось на "\0").
Рекурсия (нет автоматического экранирования).
Побитовые операции (ограничение размера).
Массивы байтов (круговая зависимость).
Хранилище значений (та же зависимость).
Файлы (требует ручного создания).
Настоящий квин требует возможностей, которых в 1С нет или я не прав ? и это возможно ? Не очень понятно, могу ли я использовать саму архитектуру конфигурации 1С, или это будет нарушением теоретической задачи. Задача по программированию такова: напишите программу Лемеля-Зива, используя только эти два кода операций, которая при запуске выводит себя на экран. Другими словами, напишите сжатый поток данных, который декомпрессируется сам в себя. Можете предположить любую разумную кодировку для кодов literal операций repeat.
Источники - https://research.swtch.com/zip
крайне интересная статья и я не мог не попробовать это реализовать на языке 1С.
Орфографическая ошибка в форумчанам: форумчанам Орфографическая ошибка в repr: repr Орфографическая ошибка в декомпрессируется: декомпрессируется
Реализовать возможность давать подсказки алгоритму определения типизации переменных.
ДоступноИспользованиеОбновленияПрограммы (БСП)
ВозможнаВыгрузкаОбработкиВФайл (БСП)
Выполнение функции произвольным кодом (Выполнить)
Упорядочивание (сортировка) массива
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)