История Popeye

 Краткая история программы POPEYE1

— Томас Бранд

(Перевод на русский язык: Дмитрий Туревский. Впервые опубликован в журнале “Шахматная Композиция”, №114 – 2013)

____________________________________________________________________

Чтобы рассказать историю программы POPEYE нам придется вернуться назад более чем на четверть века, в год 1986. Я тогда был редактором в «Die Schwalbe» и отвечал за разделы обратных и кооперативных матов, поэтому компьютерная проверка присланных для публикации оригинальных задач интересовала меня еще как.

В те времена было всего два способа проверить кооперативные, обратные и кое-какие сказочные задачи: платная программа Alybadix, написанная Илька Блёмом, которая работала на небольших домашних компьютерах типа Commodore, и Ollie Томаса Кюна, которая запускалась на специально собранном исключительно для этой цели (!) устройстве с шестнадцатеричной клавиатурой и забавным вроде как принтером для термобумаги – для ввода задач и отображения авторских и побочных решений, соответственно.

Поскольку у меня дома был «современный» IBM XT совместимый компьютер (процессор Intel 8086 6MHz, 20 MB места на жестком диске, монохромный черно-зеленый дисплей с разрешением 25х80 знакомест, все собрано вот этими руками), то … запустить Alybadix возможности я не имел. А работа с Ollie была не такой простой, как это может показаться сейчас: проверка сложной позиции с заданием h#2 занимала до часа, а проверить h#3 возможности практически и не было. А поскольку Ollie еще и существовал в единственном экземпляре, то машинное время (и время Томаса тоже) приходилось делить с другими людьми. Так что я пытался найти побочные решения в задачах, присланных для «Die Schwalbe», самостоятельно, и только в особых случаях, когда мне все-таки не удавалось их обнаружить, я подключал Томаса с его транзисторным приятелем.

Так что, когда я услышал о POPEYE, программе написанной Филлипом Шобеленом из Франции для IBM PC, я несказанно обрадовался: может быть, вот оно – моё избавление?

Я связался с Филлипом (при помощи обычного письма, разумеется, век электронной почты еще не наступил!), и очень быстро, всего около недели спустя, получил здоровенный конверт из Франции, в котором был не только любезный ответ, но и дискета (гибкая и большая – пять с четвертью дюймов, на 360 килобайт – стандарт по тем временам) на которой был записан POPEYE и короткая инструкция по-французски. И всё работало!

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

Это привело к тому, что я немедленно сделал две вещи. Во-первых, я написал в «Die Schwalbe» небольшую статью2 с предложением выслать POPEYE всем заинтересованным проблемистам, при условии, что они пришлют мне сначала дискету (не забывайте: дело было до популяризации интернета и электронной почты). В итоге отозвалось где-то около 30 человек.

А во-вторых, и это было еще важнее, на встрече в Андернахе в 1987, если память меня не подводит, я поговорил о POPEYE с Эльмаром Бартелем и Норбертом Гайсслером. Дело в том, что хотя у меня и был исходный код POPEYE, в который я внес свои исправления и улучшения, но программы-компилятора, которая создала бы из исходного кода исполняемый файл, у меня не было – POPEYE был написан на диалекте языка Паскаль под названием COMAL. Они взяли исходный код и, отчасти вручную, отчасти автоматизировано, переписали POPEYE на язык программирования Си.

После долгого процесса настройки и подгонки им удалось снова получить работающую программу: поддерживаемую, неплохо документированную и более быструю, чем изначальная реализация на COMAL. Так было положено начало непрекращающемуся развитию POPEYE.

Оно шло (и по-прежнему идет!) по разным направлениям:

  • Исправление ошибок, разумеется
  • Расширение возможностей путем добавления новых сказочных условий, фигур и заданий.
  • Портирование для разных аппаратных платформ и операционных систем, существовали версии для OS/2, VAX VMS, IBM MVS, SIEMENS BS2000. На данный момент официально поддерживаются версии для Windows, MacOS и Linux/Unix.
  • Улучшение быстродействия путем реализации разнообразных оптимизированных алгоритмов: например, таблиц транспозиций и «Intellegent mode» для многоходовых задач.

Пока я только упомянул Филлипа, Эльмара и Норберта, как наиболее важных разработчиков раннего POPEYE, также к ним нужно добавить Торстена Линсса, который проделал немало работы. Еще нужно не забыть Стефана Хёнинга, Стефана Брунцена, Харальда Денкера и Томаса Барка. В наши дни (т.е. начиная с июля 2007г) проект POPEYE ведет Томас Мэдер, которому помогает Стивен Эммерсон.

Когда ждать новую версию POPEYE? Я бы сделал ставку на середину мая – начало июня3, время проведения встречи в Андернахе! Все почти так же, как и 25 лет назад, но с одним исключением: теперь POPEYE можно просто скачать в интернете, а присылать дискеты вовсе не обязательно.

__________________

1Попáй (от англ. pop eyed, букв. «пучеглазый») – персонаж популярного американского комикса и, позднее, мультипликационного фильма. 

2«Die Schwalbe» №104, апр. 1987, стр. 215 – 216, «Popeye, eine eierlegende Wollmilchsau?» (нем. «Popeye, на все руки мастер?»)

3Последняя версия POPEYE – 4.63 вышла 5-го мая 2013г.


14 комментариев: История Popeye

  1. shankar ram пишет:

    Popeye is indeed a remarkable example of open source and collaborated software development. I can still remember testing my madrasi #4 of the 4th WCCT on it, sometime in 1989! It didn’t support variations for #4 in that version. It only gave the key! I then fed in the separate positions for each variation to check for possible duals.

  2. Seetharamanseetharaman пишет:

    Thank you Popeye Team ! Fairy chess composers owe a lot to you all.

  3. ganori80ganori80 пишет:

    I like Popeye so much!
    I written a graphical interface for popeye (Scacchi Painter 2) but i have some question:
    Is it possible to transform Popeye from a console program to an API dll? (like popeye.so under linux or popeye.dll under windows) i don’t know C language as well as C# then i am not able to make a c library for it.
    If this is possible i can produce a Mobile app for popeye to work in Android tablets and phones (like mine HTC One X)!
    Thanks a lot!

  4. Ken Cameron пишет:

    I’ve wanted to obtain the Original Source code for Popeye in Pascal ( Comal). Stephen Emmerson tried to contact Phillipe Schnobelen .. without success. Can anyone out there help ?
    Thank You,
    Ken C.

    • adrian storisteanu пишет:

      I have “Version du 25 Jul 84”. Thomas Maeder may have an entire history of the program.

      • Cornel Pacurar пишет:

        By the way, there was one more chess program capable of solving selfmates and helpmates (up to 7 moves) in the mid-1980s: Colossus Chess. It was developed by Martin Bryant and was published starting 1983 for a large number of home computer platforms (8-bit and later 16-bit micros) – I used in on a Sinclair ZX Spectrum. Colossus Chess 4 (from 1986) can still be downloaded from World of Spectrum (as either TZX and TAP tape images) and used via emulators! 🙂

        • shankar ram пишет:

          Interesting! I was fiddling with a ZX Spectrum clone for a few years. Later maintained the nostalgia with emulators on the PC and now on my Android phone. If this program can run on an Android based emulator, it could be perhaps the only problem solving app on the Android platform! Will try it out.

  5. Thomas Brand пишет:

    There was also a solving program in the early 80th of the last century, written by Norman Macleod in Assembler for his Sinclair QL home computer, later translated by him to “C”.

    Later on he developed a program to “compose” direct moremovers with 3 or 4 men, there exists a feenschach article by Norman on this program, but I don’t remember the correct source.

    For more details see John Rice’s book “The Chessboard Adventures of Norman Macleod”

    Who will write a brief history of problem chess programs?

    • adrian storisteanu пишет:

      I also recall a 1980s solving program by Ofer Comay, which allowed one to define new pieces by combining the movements of other pieces.

      I wrote my own program in the late 1970s (in assembler for Data General’s Nova minicomputer), then rewrote it in early 1980s in Intel’s PL/M + 8086 assembler sections optimized for speed , then rewrote it again in C in the 1990s (for orphans, after discussions with DLBrown), and finally rewrote it in Java in the 2000s. It kept me busy now and then…

  6. Bartel Erich пишет:

    yet another little note to chessproblem programs –>
    http://pdb.dieschwalbe.de/search.jsp?expression=PROBID=%27P1108333%27

  7. Bartel Erich пишет:

    still one more note :
    already ar the end of the seventieth
    I used the program “Challenger 10” for
    solving some simple orthodox 2-movers,
    but, sorry, I don’t who the author of this
    program wa and when he did it.
    –>
    http://pdb.dieschwalbe.de/search.jsp?expression=PROBID=%27P1101564%27

  8. Bartel Erich пишет:

    …und jetzt noch zwei Literaturhinweise:

    D.Relp:
    Verzeichnis aller Hilfsmattaufgaben mit dem Material König und Springer gegen König und Springer:
    feenschach Sonderdruck März 1975

    PS:D.Relp =Pseudonym des Dr.Helmut Mertes

    T.Ströhlein, L.Zagler:
    Ergebnisse einer vollständigen Analyse von Schachendspielen König und Turm gegen König-König und Turm gegen König und Läufer:
    Institut für Mathematik und Informatik Technische Universität München, 1978

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

You can add images to your comment by clicking here.