Comments 17
Непременно надо создать Bloody Eyes - аналогичный язык с символами "L строчная", "i заглавная" и "вертикальная черта |".
lIlIIIlIl|ll||lIII
Обязательно надо начать инициативу "Whitespace for Linux Core" !
Смотрите - есть целый план: рекламировать безопасность и надежность, хвалить за простоту синтаксиса и синтаксический сахар; призывать всех переходить на "пробельчики"; пытаться банить в онлайн-конференциях неугодных разработчиков; через пару лет - слиться в туман сославшись на разные не-технические причины, и ретроградизм кодеров. XD))
Это не язык. Это эзотерическая кодировка ассемблера какой-то кастомной виртуальной машины.
а разве ассемблер не язык программирования?
Бинарный код - не язык программирования?
Нет, ассемблер - это человеко-понятный код проца
Бинарный способ представления - ничем не лучше и не хуже символьного.
Один раз (довольно давно) я попал на ТЭЦ и мне показали использовавшуюся там систему по обеспечению плановых ремонтов. Собственно ТЭЦ это такое производство которое работает только в двух режимах: подготовка к плановому ремонту, и сам ремонт. Условно: пока у вас из крана течет горячая вода - там готовятся, а когда ее отрубают - то ремонт. Обычно для этой подготовки к ремонту используют ИС ERP класса.
Так вот какой-то безумный гений (вроде как немецкого происхождения) создал их систему на платформе, где не было символов букв - только символы цифр можно было вывести на экран. И вот представьте себе форму чисто текстовую форму только в ней одни цифры: название полей - цифрами, в поля ввести тоже только цифры можно. Представили? Так вот когда я это увидел у меня было ощущение, что я уже в дурке: подходит работник к оператору системы и происходит примерно такой диалог: а посмотри пожалуйста 10937771, 876873287420 сколько там в наличии и заказано. Оператор стучит по цифровой части клавиатуры (а все остальные кнопки там пылью заросли) и отвечает: 876873287420 в наличии 10 по заказу 879832498 через месяц еще 50 привезут.
И вот скажите мне что это была не ERP система?
То есть это таки язык. И программировать на нем можно (формально все что мы делаем - пишем байты на диск, чтобы процессор или интерпретатор их выполнили). Граница тонкая, но повода не называть это ЯП нет
Поскольку мощность множества всех возможных программ/кодов какого-либо (пусть, Тьюринг-полного) языка счетно, то для полноценного программирования достаточно и языка с одним символом, whitespace весьма расточителен в этом смысле (: но, удобнее использовать два - тогда длина кода может быть порядка log_2(•) от соотв. длин кодов односимвольного варианта
А такую программу архиватор сожмёт почти до нескольких байт.
до нескольких байт вряд ли. но раз в 5-10 реально
Ну да, вы правы, перегнул я малость. Но ваше замечание сподвигло меня провести эксперимент. Если взять пример из статьи, т.е. 1287 байт и сжать 7-zip (по умолчанию со звездочкой: 9-ультра/LZMA2/64Мб/64/16Gb/4/80%), то получится 363 байта, то получится разница в 3,5(45) раза. А если выбрать PPMd (с максимальными параметрами), то получится 327 байт, т.е. уже коэффициент 3,935779816513761 (второй вариант с PPMd). А вот если размер программы увеличить (тупо 10 раз скопировал ее), то получится 12564/1211=10,37489677952106. Пока кажется, что чем больше объем, тем больше будет коэффициент, т.е. если полученную "программу*10" еще раз скопировать 10 раз (опять внутри одного файла), то получится 125640/693=181,2987012987013 раз. Ну если уж извращаться дальше, то полученное еще *100 и получим 12564000/34590=363,2263660017346. Полученное еще *10: 125 640 000/342 743=366,5720379409645. Коэффициент опять вырос, но не линейно и не вкусно. Тут я совсем обиделся и решил вернуться к первому варианту (7z со всеми звездочками): 125 640 000/18 718=6 712,255582861417 раз.
Думаю, что если из целого байта взять и заменить L на биты 00, S на биты 01, T на биты 10 и потом полученный массив свернуть обратно в байты (недостающие биты при необходимости заменить на 11). Тогда код этой программы продублированный до 270170 байт сначала сложится в 67 543 байта, а потом после сжатия получилось 960 байт. Но если его не преобразовывать биты, а сразу сжать 7z, то получается 516 байт.
Вот как-то так.🙂
А ведь, если взять исходник интерпретатора, то можно заметить эти три байта, на 3 набора по 3 бита.
Основы Whitespace: невидимого языка программирования