Рубрика «дейкстра»

Четвёртая часть интервью 2001 года Ф. Франы с Э. Дейкстрой.

В этой части Дейкстра снова говорит о разочаровании IBM System/360 и объясняет, что на его известную фразу о победе Запада над СССР в холодной войне повлиял некий советский плакат с казаком, размахивающим флагом с аббревиатурой IBM.

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

Читать полностью »

Третья часть (не заключительная) интервью 2001 года Ф. Франы с Э. Дейкстрой.

Продолжаем вспоминать историю программирования, которая помогает ответить на вопрос, почему оно получилось таким, а не другим. Был бы этот путь другим, если бы не политика? Теперь мы уже не сможем ответить на этот вопрос, но можем посмотреть, какая царила в то время атмосфера.

  • В скобках квадратных [ ] указаны примечания самого интервьюера Ф. Франы;

  • В скобках фигурных { } указаны мои уточнения.

В этом блоке привожу пояснения.

Ссылки на некоторые источники в конце.


Перед чтением статьи рекомендуется изучить следующие материалы:

Модифицированный Shunting YardЧитать полностью »

Всем привет! Я реализовал, похоже, собственный алгоритм поиска кратчайшего пути с отрицательными ребрами графа.

Почему собственный? Я искал подобное решение, но не нашел, возможно, оно уже было реализовано, просто плохо поискал. Жду Нобелевскую премию =)

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

Повторюсь, алгоритм работает с отрицательными ребрами графаЧитать полностью »

Размышления о структурном программировании - 1

Изначально я хотел назвать статью как нибудь вызывающе, например, "Как наука может превращаться в религию", "В ловушке искажений смыслов структурного программирования" или "О чем вам забыли рассказать про структурное программирование", но в результате все же оставил текущее название и надеюсь, оно не вызывает раздражения у читателей. И хотя другие заголовки являются более кликбейтными, тем не менее они все же в больше степени отражают смысл статьи, чем нейтральные "размышления".

А поводом к этой статье послужил один из комментариев к предыдущей публикации Управление памятью и разделяемыми ресурсами без ошибок, где написали "было доказано математически". А я сразу вспомнил свое небольшое расследование, когда пытался разобраться в одном из "математических доказательств", про которое нам всем рассказывают еще в школе на уроках информатики.

Все наверно помнят, что любой алгоритм можно представить в виде трех видов алгоритмических конструкций, следование, ветвление и повторения? А иногда еще добавляют, что эту теорему выдвинул и доказал Э. Дейкстра в 70-х гг. прошлого века, в том числе, включая широко распиаренный якобы запрет на использование операторов goto.

Читать полностью »

Источник: https://commons.wikimedia.org/wiki/File:Edsger_Dijkstra_1994.jpg
Источник: https://commons.wikimedia.org/wiki/File:Edsger_Dijkstra_1994.jpg

От переводчиков. Хотя Эдсгер Дейкстра — одна из главных личностей в истории IT, эта его коротенькая публикация ранее не попадала на Хабр, да и сами мы узнали о ней лишь благодаря докладуЧитать полностью »

Сотни тысяч маршрутов в секунду на ядро. Опыт Яндекс.Маршрутизации - 1

Пару недель назад Даня Тарарухин рассказал на Хабре, как появился наш сервис, Яндекс.Маршрутизация, и как он помогает компаниям с логистикой. Создавая платформу, мы решили несколько интересных проблем, одной из которых и посвящён сегодняшний пост. Я хочу поговорить о самом планировании маршрутов и необходимых для этого ресурсах.
Читать полностью »

Соревнование от Яндекс.Такси: разбор бэкенд-трека чемпионата по программированию - 1

Вручение призов участникам трека бэкенда

Мы завершаем серию разборов второго чемпионата по программированию. В последние недель мы опубликовали разборы трёх треков: по ML, фронтенду и мобильной разработке. Осталось разобрать трек по бэкенду. Он оказался самым популярным: 2682 человека приняли участие в квалификации, 320 из них дошли до финала. Задачи для бэкенд-разработчиков придумала команда Яндекс.Такси.
Читать полностью »

Начнем с этой всем известной фразы. Итак, были отечественные крутые теплые ламповые (часто в буквальном смысле) наработки, уникальные, созданные талантами. А потом руководство завело бульдозер, который срыл все это подчистую, и засадил все безликими IBM. Так меня учили. Но по мере того, как мне попадались старые книги по программированию (а отчасти я сам свидетель той эпохи — о СССР я знаю не по рассказам), эта картина стала рушиться. У меня сейчас под рукой сейчас три книги, и мы используем их. Итак:

Дейкстра: Величайшей победой Запада в холодной войне над СССР был переход на IBM — myth busted - 1
Читать полностью »

О структуре параллельных вычислений или доводы против оператора «Go» - 1

Каждый язык, поддерживающий параллельные (конкурентные, асинхронные) вычисления, нуждается в способе запуска кода параллельно. Вот примеры из разных API:

go myfunc();                                // Golang

pthread_create(&thread_id, NULL, &myfunc);  /* C with POSIX threads */

spawn(modulename, myfuncname, [])           % Erlang

threading.Thread(target=myfunc).start()     # Python with threads

asyncio.create_task(myfunc())               # Python with asyncio

Есть много вариантов нотации и терминологии, но одна семантика — запустить myfunc параллельно основной программе и продолжить родительский поток выполнения (англ. "Control Flow")

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js