99 бутылок: Старсет

Семьдесят четвёртый выпуск считалочки «песни о пиве», которую я пишу на разных языках программирования, для разнообразия сделаю на языке родом из СССР. Как-то я мало такому уделяю внимания, а ведь это тоже история!

74. Старсет — язык программирования высокого уровня, разработанный в Институте программных систем РАН в 1991 году. К сожалению, мне не удалось обнаружить компиляторов или интерпретаторов этого языка, и даже упоминания, что они вообще когда-либо были реализованы.

Поэтому программировать пришлось исключительно по описанию языка, почерпнутого из книжки, купленной за двести рублей с рук в интернете.

Оранжевая книга «Язык программирования СТАРГЕТ» М.М. Гилгула и А.П. Столбоушкина (Академия наук СССР, Наука) на фоне советской газеты с заголовками о границе и ТАРСС.
Книга «Язык программирования Старсет», М. М. Гилула, А. П. Столбоушкин, М., «Наука», 1991

Язык, кстати говоря, небезынтересный — в наличие имеется развитая работа со множествами и свой язык регулярных выражений («образцов»), который может применяться не только на скалярах, но и на множествах! Кроме того имеются операторы, позволяющие распараллеливать вычисления!

Помимо скаляров и множеств, язык поддерживает «классы» — насколько я понял, своеобразные вычисляемые «срезы» множеств по какому-либо условию (вроде того как это делается в numpy), но могу и ошибаться, книга написана очень сухим, академическим языком и иногда вообще не удаётся понять, что имеется ввиду.

Например, попробуйте разобраться в этом отрывке («каноническая запись», как утверждается выше процитированного — это когда отброшены все незначащие нули):

Каноническим числовым представлением нуля будем считать слово 0. В частности, каноническим числовым значением слова 1 является оно само, каноническим представлением слова 2 является слово −6, каноническим представлением слова 3 — слово 67000000000000000.

Я, сколько ни пытался, не смог уловить закономерность.

Программы по внешнему виду сильно напоминают «Паскаль» — совпадают некоторые конструкции и принципы, но, конечно же, есть и вещи, которые сильно отличаются.

Выполнение программы выполняется с первой процедуры и завершается с выходом из неё. Возврат значения из функции (тут она называется «процедура-функция») осуществляется через переменную, совпадающую с именем функции. Все переменные, включая переменную для возврата, должны быть задекларированы в специальном блоке. Скалярные переменные декларируются в секции word, множества — в set, классы — в секции class.

/* Считалочка про пиво на языке «Старсет». Написал Евгений Степанищев */
/* https://bolknote.ru */

Func Бутылки(колво)
    Word: Бутылки, колво;

    Choice
        Case колво = 1 Do Бутылки := '1 bottle' End
        Case колво = 0 Do Бутылки := 'no bottles' End
        Otherwise Do Бутылки := колво^' bottles' End
Endfunc

Proc Песня()
    Word: колво, бутылок;

    колво := 99;
    бутылок := Бутылки(колво);

    While колво > 0 Do
        Write бутылок^' of beer on the wall, '^бутылок^' of beer.';
        колво := колво - 1;
        бутылок := Бутылки(колво);
        Write 'Take one down and pass it around, '^бутылок^' of beer on the wall.';
        Write ''
    End

    Write 'No more bottles of beer on the wall, no more bottles of beer.';
    Write 'Go to the store and buy some more, 99 bottles of beer on the wall.'
Endproc

Все строки заключаются в апострофы, которые в книге имеют непривычный вид (’), я не стал их тут использовать, вряд ли это какая-то особенность языка, скорее уж такой символ просто поставили при наборе.

Ещё необычно выглядит операция конкатенации — ^ и повторения строки — ^^. Из-за того, что в языке есть неявные преобразования, можно делать вот такое:

Write 'МА' ^^ '2 раза' /* Будет выведено «МАМА», так  как «2 раза» преобразуется к двойке */

С удовольствием познакомился с языком, благо он не выглядит, как что-то, сделанное «в стол», для «галочки» или исключительно для обучения школьников или студентов.

Оставить комментарий

PLEASE

Помните такой сериал — «Как я встретил вашу маму», который на протяжении девяти сезонов пытался сделать мамой более тридцати девушек? Если не помните, то дальше будет не интересно.

Лично я терпел сериал только из-за Барни Стинсона — харизматичного пикапера, живущего в своё удовольствие, а самой главной интригой сериала для меня было то, кем он всё-таки работает.

На все вопросы об этом он махал рукой и отвечал «Please!» (в нашем переводе «Я тя умоляю»). Со временем для компании его друзей выяснить кем работает Барни стало настоящим вызовом — они постоянно пытались его подловить и кажется даже загипнотизировать.

Сегодня я узнал, что он фактически каждый раз говорил название своей должности, что, к сожалению, не удалось передать в переводе.

Два мужчины в костюмах у белой доски: один указывает на надпись «PLEASE» (красные буквы), расшифрованную как «Provide Legal Exculpation And Sign Everything».
Барни работал на должности «P. L. E. A. S. E.» — «Provide Legal Exculpation And Sign Everything», то есть зиц-председателем

Я не очень внимательно досматривал сериал, поэтому совершенно упустил момент, где раскрывается, что «Please!», которым отвечает Барни, это аббревиатура — «Provide Legal Exculpation And Sign Everything» («всё подписывай и будь крайним»). То есть Барни, по сути, зицпредседательствовал (если помните «Золотого телёнка») — был подставным лицом на случай проблем.

Тут мне вспоминается мотив сказки про Шурале (это дух леса в татарских и башкирских сказках), которому зажал пальцы в бревне хитрый мужичок, представившийся как Никто. Когда позже пытались найти обидчика и спрашивали Шурале кто с ним так поступил, он отвечал: «Никто!», поэтому поиски ничем не закончились.

4 комментария

Библия грешников

Сегодня я узнал, что в 1631 году в Англии была издана Библия с грубой смысловой ошибкой — было пропущено «не» в заповеди «не прелюбодействуй».

Страница старинного текста с Десятью заповедями на английском: «Honour thy father and thy mother», «Thou shalt not kill» и др.
«Библия грешников», на строке под номером 14 ошибочно написано «Thou shalt commit adultery» («Прелюбодействуй»)

Ошибку заметили и почти весь тираж удалось изъять, тем не менее несколько экземпляров уцелели. Сейчас они находятся в нескольких крупных библиотеках и частных коллекциях и известны под названиями «Библия грешников», «Злая Библия» или «Библия прелюбодеев».

Вообще в первые столетия после изобретения книгопечатания опечатки были частым явлением, но почти всегда это были перестановки или пропуски букв. Поэтому существует теория, что пропуск целого слова — результат саботажа со стороны Бонема Нортона — конкурента издателя Библии с этой ошибкой за звание королевского печатника, либо какого-то ещё недоброжелателя.

Если это так, то злоумышленники своей цели достигли — издатель был оштрафован на 300 фунтов (довольно крупная в то время сумма) и лишён печатной лицензии.

2 комментария

Канал в «телеграме»

Кстати, какое-то время назад я завёл канал в «Телеграме» (можно поискать по слову «bolknote»), куда транслируется этот блог, может кому-то будет удобнее так меня читать.

Оставить комментарий

АЁС

Заметил, что становится всё больше ребят, которые произносят название эпловской операционки «ай-о-с» («iOS») как «а-ё-с», то есть два звука — «й» и «о» слились в одно «ё», что довольно закономерно для устной речи — всё-таки так произносить быстрее.

Судя по тому, что такое произношение распространяется всё шире, есть шансы, что со временем оно вытеснит вариант с «йо».

3 комментария

Звезда красноармейца

В субботу был с друзьями на копе и, обходя один из огородов, куда нас пригласили поискать что-нибудь старенькое в земле, на самом краю вскопанного нашёл красноармейскую звезду, которую не глядя, сунул в карман — тогда особо интересной мне она не показалась, я и раньше находил похожие.

Тёмная металлическая пятиконечная звезда с рельефным изображением серпа, молота и колеса на красном фоне.
Звезда красноармейца образца 1918—1922 годов

Дома промыл находку водой и обнаружил, что рисунок на ней сильно отличается от того, что я видел до этого. Хорошо узнаваемый молот тут перекрещен с совершенно мною не узнанным плугом. И не мудрено — в своей жизни я его ни разу не видел, разве что что-то отдалённо похожее сейчас привязывают к трактору.

Оказалось, что это раннесоветская звезда красноармейца образца 1918—1922 годов, причём в интернете есть очень хорошая статья-расследование по поводу того как она появилась и когда была заменена:

8 мая 1918 г., вышел приказ по Военному комиссариату г. Москвы за №42, который фактически продублировал указания Наркомвоена: «каждый вновь поступающий в Советскую Армию должен снабжаться…, а также красноармейским значком: „Марсовой звезды с плугом и молотом“».

29 мая 1922 г. приказом РВСР от № 1379 ношение нагрудных «революционных военных знаков» было отменено.

В чате копателей говорят, что такие находки не редкость, но ни я, ни мои друзья по хобби ничего подобного за несколько лет не находили.

Оставить комментарий

Продолжаем сидеть дома

Всё как-то забываю написать, что в офис мы так и не вышли, поменялось решение, продолжаем сидеть дома, по меньшей мере до конца мая.

Тем временем улица всё больше оживает — появились люди, на дорогах — пробки. Всё больше из дома приходиться выбираться и мне. В основном — на такси.

Кстати, по закону в такси требуется быть в маске и перчатках, по факту всем плевать. У таксистов маска где угодно, только не на законном месте (например, висит с прочими амулетами — на зеркальце заднего вида), перчатки вообще увидел лишь однажды.

Сам езжу в полной амуниции, опасаюсь штрафов.

Уже давненько разрешили открыться парикмахерским и барбершопам, но они более пуганные, чем таксисты, на входе обязательно просят надеть маску, говорят их проверяют. Когда приходит время брить бороду, дверь запирают и вполголоса сообщают, что «масочку можно на время снять».

Как-то незаметно открылись парки, музеи и зооботсад. Заметно, что все эти антикороновирусные процедуры отошли в скучную обрядовую часть — народ если и соблюдает, то неискренне. Гуляя по парку, можно и не заметить, что происходит из ряда вон, разве что изредка встречаются люди с маской на подбородке. Пару раз видел людей с «блокиратором вирусов» (??‍♂️) — это такое плацебо для тех, кто плохо в школе учился.

Как-то не слежу за тем, что там следующее в очереди на открытие, но надеюсь, что кафе и рестораны — очень скучаю по сочному стейку.

7 комментариев

Новости спорта в 1913 году

Публикую последний кусочек из газеты «Русское слово» за 16 октября 1913 года, найденной на чердаке дома моего друга.

Статья «Спортъ» о московских скачках 15 октября: условия сырые, грязные; победители — Лавуазень, Саттарь, Лань I; жоккей Клименко дважды ошибался на Галатее.
Новости спорта в газете «Русское слово» №238 за 16 октября 1913 года

2 комментария

Моя паранойя

Никогда не считал себя параноиком — я не заклеиваю камеры на ноутбуке и смартфоне, дома у меня три подслушивающих устройства — «Алиса», «Алекса» и робот «Вектор», в Китай уходят сведения о том где у меня включен свет, работает ли мой пылесос и какова влажность в каждой комнате.

Но недавно понял, что есть вещь в которой я паранойю на отличненько — это адреса на посылках, счетах и письмах. Каждый раз, когда мне надо выкинуть что-нибудь из этого в мусор, я вырезаю место с адресом и рву его на мелкие части.

Почему-то мне всё время кажется, что кому-то есть дело до моего мусора и моего адреса в нём. Воображение рисует какого-то маньяка, который, роясь в мусорном контейнере, натыкается на мой адрес и дальше случается что-то ужасное…

Никак не получается от этого избавиться.

13 комментариев

Ашать

В Татарстане широко распространено заблуждение, что слово «айда» неизвестно за пределами нашей республики. Думаю корень заблуждения в том, что это слово тюркского происхождения, а потому есть в татарском, и многие у нас тут его воспринимают как исключительно татарское.

Иногда приходится спорить на эту тему, но благо сейчас есть интернет, доказательств распространённости много.

В русском вообще немало тюркизмов, но большинство настолько уже обрусели, что поверить трудно, что они не исконные — нефть, капкан, кобура, тормоз, утюг и так далее. На днях, читая Гиляровского, отметил для себя неожиданный тюркизм, впрочем, не сохранившийся в русском к нашему времени:

Вкусно пахли щи, но и с говядиной ели лениво. Так и не доели, вылили. Наложили пшенной каши с салом… Я жадно ел, а другие только вид делали.
— Что это никто каши не ест? — спросил я соседа.
— Приелась. Погоди с недельку, здесь поработаешь — и тебя от еды отвалит… Я похлеще тебя ашал, как с воли пришел, а теперь и глядеть противно.

— Владимир Алексеевич Гиляровский, «Мои скитания», 1928

Интересно, что автор приводит его без примечания, видимо ожидая, что читатель его либо знает, либо выведет значение из контекста.

Страница старинного словаря с определениями слов «Ачь», «Ачь-ачь», «Ашать», «Ашбы» и примерами их употребления в русском языке.
«Ашать» в книге «Толковый словарь живаго виликорускаго языка» В. И. Даля, М., 1863

В словаре Даля слово встречается, но с пометкой «всюду, где есть татары» и, судя по всему, сильного распространения не получило — в литературе встречается в следовых количествах.

У нас в Татарстане оно встречается в речи русских, но скорее как лингвистическая шутка, частью русского языка не ощущается. Я, например, могу сказать «gonna go ашарга?», английским как бы подчёркивая, что это я не на татарском пытаюсь говорить, а острю.

2 комментария

Псевдоанглийские слова

Как-то не приходило в голову, что некоторые слова, которые, как мы считаем, пришли из английского, могли быть изобретены в России. В этом забавном ролике американец рассказывает какие новые для себя «английские» слова он узнал из русского языка.

3 комментария

Татмедторг

Вкратце: на фото аптечный ярлык 1923—27 годов

Помимо дореволюционных предметов, я очень люблю всё раннесоветское — меня очень радуют двадцатые и тридцатые, чуть меньше нравятся сороковые, а пятидесятые и дальше в моём восприятии относятся уже к «среднему СССР».

По советскому прошлому у меня скопилась уже приличная коллекция чердачных находок, кое-что я уже даже выкладывал — спичечный коробок или лавровый лист завода Семашко.

Обрывок старой визитной карточки аптекаря П. Галактионова из Казани с телефоном 5-03, датой 192 г., надписью «Р. К.» и иллюстрацией аптекарских сосудов.
Аптечный ярлык 1920-х годов, аптека Татмедторга, Казань

Почему-то как-то сама собой отдельным большим кластером самонакопилась аптечная тема. Про то как она развивалась в раннесоветские годы, кажется, не очень-то много написано — отсутствует то ли интерес, то ли хороший материал.

Арабской вязью написано «Татмидтург. Казан» и «Тилифун нумеры 5-03»

По ключевым словам на ярлыке гуглится до обидного мало, только удалось узнать, что название «Татмедторг» существовало всего несколько лет — 1923 по 1927, потом его сменили на «Татаптекоуправление». Кстати, в том же 1927 году татары перешли с арабской письменности на латиницу и только 39-м году они стали использовать кириллицу, которой пользуются до сих пор.

Надо будет потихоньку отфотографировать всё, что у меня есть на эту тему, может пригодиться будущим исследователям.

7 комментариев

Кентавры

Сегодня за завтраком слушали песню «Я верю» Ляписа Трубецкого, одну из дочкиных любимых. В ней перечисляется множество различных мифических существ, которые заинтересовали дочку. Погуглили каждое, а когда дошли до кентавра, я в очередной раз задумался — как же он, по мнению создателей, скачет?

Особенно интересны предельные скорости, в большей степени — карьер (помните, «с места в карьер» — это о быстром переходе на этот метод передвижения). В карьере тело животного ритмично сгибается в пояснице, а задние ноги энергично выбрасываются перед передними — обычно в таком положении рисуют зайцев или собак, но лошади так, конечно, тоже бегают.

В карьере человеческая часть кентавра либо должна болтаться, как сосиска, либо очень сильно изгибаться в пояснице, чтобы компенсировать движение. Если это так, то проблемы со спиной кентавру обеспечены.

Рис. 128. Движеніе въ карьеръ.
Карьер из книги В. А. Шахматова «Иллюстрированный курсъ верховой ѣзды: Руководство для младшихъ офицеровъ кавалеріи», С.-П., 1901

Может он так вообще не скачет? Но даже в более «щадящих» режимах мне не удаётся визуализировать перед мысленным взором физику процесса — всё время выходит, что человеческая часть спины будет травмироваться.

17 комментариев

99 бутылок: Lua

Пока ещё помню язык Луа, который я использовал для написания «Морского боя» в азбуке Морзе, надо бы продолжить им сериал о «99 бутылках пива на стене».

73. Lua — скриптовый язык, который чаще всего применяют для встраивания, например — нередко используют для описания сценариев в играх. Объектная модель прототипная, напоминает ДжаваСкрипт, но в Луа она мощнее.

Язык очень простой, учится элементарно, но при этом довольно мощный.

А вот стандартная библиотека подкачала, простой пример — в ней нет функции задержки, когда она мне понадобилась, пришлось её импортировать из Си. Или есть модуль, который хоть как-то позволяет работать с ЮТФ-8, но в нём даже нет простого способа получить символ по его номеру или поменять регистр строки.

function beer(b)
    if b == 1 then
        return '1 bottle'
    else
        return (b == 0 and 'no' or b) .. ' bottles'
    end
end

b = beer(99)

for i = 99, 1, -1 do
    print(b .. ' of beer on the wall, ' .. b .. ' of beer.')
    b = beer(i - 1)
    print('Take one down and pass it around, ' .. b .. ' of beer on the wall.\n')
end

print([[No more bottles of beer on the wall, no more bottles of beer.
Go to the store and buy some more, 99 bottles of beer on the wall.]])

12 комментариев

Фотозагадка

Вот вам фотозагадка: что за прибор прибит в центре кадра к доске? Для чего он был предназначен и почему в таком состоянии он стал бесполезен?

Уличный термометр, закреплённый на деревянной стене с видимой текстурой и трещинами, показывает температуру около 20°C.
Загадочный прибор, сфотографированный где-то в Казани

8 комментариев

4 мая 1957 года

Воспользовавшись тем, что самоизоляция теперь носит рекомендательный характер, напросился к одному своему другу на чердак. Провёл сегодня там несколько часов и не зря — много интересных находок, правда всё ещё нужно отмывать и чистить.

Среди всего что нашлось, единственное, что не требует обработки — лист отрывного календаря за 4 мая, который ещё и интригует тем, что на нём не указан год. Давайте попробуем его определить.

Листовка к Дню печати 5 мая: слева — иллюстрация типографии, справа — текст о Доме детской книги в Москве, основанном по идее Горького, с адресом: ул. Горького, 43.
Отрывной календарь за 4 мая 1957 года

Первое, что бросается в глаза — упомянут День печати. 5 мая он праздновался с 1922 по 1991 год, к сожалению это слишком большой разброс. Давайте посмотрим что удастся выудить из остального текста.

Внимание привлекают два факта: Алексей Горький примерно четверть века назад мечтал об открытии «Дома детской книги», и вот его наконец открыли.

В интернете находим, что «Дом детской книги» открылся в 1949 году. В диапазоне 1949—1991 4 мая выпадает на субботу всего пять раз — в 1957, 1963, 1968, 1974 и 1985 годах.

Принимая во внимание, что Горький умер в 1936-м, под критерий «около четверти века назад» подходит только 1957-й год, даже 1963-й — это уже скорее «более четверти», чем «около четверти» — всё-таки более 27 лет прошло, остальные года к четверти даже не близко.

Так что это лист календаря за 4 мая 1957 года.

Оставить комментарий

Ясно.

Интересно как мессенджеры и прочие чаты влияют на письменный язык — из-за возросшей скорости общения никому не успеть передать своё настроение, описывая грозу за окном, как Пришвин, поэтому изобрели смайлики, эмодзи и стикеры.

Но и этого мало! Сейчас появился следующий языковой нюанс — сообщения, написанные по всем правилам, то есть с большой буквы, с точкой в конце, стали восприниматься как более строгие и формальные.

То есть вот тут человек своим «Ясно.» намекает, что он недоволен:

Микитко: я всё сломал, не работало час, но я всё починил ?
Мартын: Ясно.

А тут — что принял к сведению, ответ вполне нейтральный:

Конан: макеты выслал, они ещё не ответили
Феофил: ясно

А смайлики, кстати, вообще стали необходимым атрибутом письменного разговора, такого не было ещё лет 10—15 назад. Если их не употреблять хотя бы в каждой второй фразе, то собеседник начинает в беспокойстве спрашивать что случилось, почему такой сухой тон.

Возможно это только в России так, мне сложно судить, но эта новая потребность кажется породила вполне логичную экономию: «глаза» и «нос» из смайликов исчезли и вместо «:-))» мы пишем «))». Это те самые «русские смайлики», которые пока ещё далеко не весь остальной мир понимает.

3 комментария

Пряжка

Иногда на фотографиях есть многозначительные детали, которые очень легко упустить из виду, если не знать куда смотреть.

Рельефное изображение двуглавого орла с геральдическими элементами, включая щиты и короны, на тёмном фоне.
Так выглядела пряжка императорской армии. Иногда на ней были дополнительные элементы, обозначающие род войск

На фотографии ниже солдат русской императорской армии с характерной пряжкой — на ней двуглавый орёл, только вот деталь, — перевёрнутый. Наверное это не очень хорошо заметно, но с иллюстративным материалом на эту тему туговато.

Сепия-портрет молодого человека в военной форме с фуражкой, стоящего рядом с высоким табуретом, на котором стоит ваза с цветами.
Солдат русской императорской армии с перевёрнутой пряжкой на ремне

Что это? Разгильдяйство? Случайность? Возможно ни то, ни другое. Есть исследователи, которые утверждают, что так делали некоторые солдаты после Февральской революции — якобы это форма протеста против самодержавия.

Эта подробность позволяет довольно точно датировать некоторые старые фотографии. Причём, даже если не видно рисунок бляхи, иногда удаётся разобрать зацеп ремня — он оказывается с другой стороны.

1 комментарий

16 апрѣля 1908 года

Выкладываю последний скан из пачки листов отрывного календаря за 1908 год, найденного на чердаке дома одного моего друга.

Страницы старинного календаря на апрель 1908 года: слева — дата 16 апреля, среда, святцы; справа — юмористический диалог Кузьмы Пруткова и меню на 17 апреля.
Лист отрывного календаря за 16 апреля 1908 года

Оставить комментарий

Это конец

Вопреки прогнозам иностранных товарищей, у которых всё началось раньше, сидеть дома во время пандемии было не так уж и тягостно. Никаких «кризисов второй недели», «третьей недели» у нас не случилось. Работать было тяжелее, да, но всё когда-то кончается, с понедельника выходим в офис.

Там сейчас закупаются перчатки, маски, санитайзеры и делаются попытки поставить на рабочих местах пластиковые экраны, как на кассах магазинов. Впрочем экран мне не грозит — у меня отдельный кабинет, а вот печатать на клавиатуре в перчатках — это какой-то новый вызов, пока плохо себе представляю как это будет.

До конца непонятно как быть с обедами, кафе в здании вроде работает на вынос, но где сотрудники будут вынесенное поглощать — вопрос. Наша внутренняя столовая маленькая, на весь коллектив там места не найдётся. Разрешить есть на рабочих местах — хоть какой-то выход, но во всём офисе будет ощутимо пахнуть едой. Ищем решение.

Чувства «ну наконец-то» у меня уже нет, видимо привык, но ощущение неэффективности в плане работы остаётся. Наверное было бы неплохо от него избавиться, но сильно это уже тоже не беспокоит.

17 комментариев