Загрузка страницы

Lucas da Costa — Recursion has never been invented: A tale of intrigue

Ближайшая конференция — HolyJS 2024 Autumn, 7 ноября (online), 14–15 ноября (Санкт-Петербург + трансляция).
Подробности и билеты: https://jrg.su/K18Cxd
— —
. . In the cold December of 1959, E.W. Dijkstra — one of the greatest computer scientists of all time — made his first international phone call. In it, he tricked the editor of the Algol 60 committee to explicitly introduce recursion in a programming language for the first time.

This phone call was never necessary: recursion has never been invented, it has been discovered. In this talk, we'll explain why...

We'll not only explore the very concept of recursion and its mathematical origins but also show how we can implement it without any explicit support, live-coding together we'll reinvent one of the most beautiful ideas in computer science: the Y combinator. (This was a great source of curiosity and Lucas was asked many questions about it after his talk at HolyJS 2018 Moscow where he mentioned it.)

To keep it hardcore we'll explore how our engines deal with recursion, talk about the call stack, and demystify concepts such as proper tail calls, tail call optimisation, syntactic tail calls and shadow stacks. Finally, we will see what is the current state of recursion-related features and support in the JS ecosystem and where we're going to.

If simplicity is the ultimate sophistication, then recursion is the best example of elegance... once you understand it properly.

Видео Lucas da Costa — Recursion has never been invented: A tale of intrigue канала HolyJS
Показать
Комментарии отсутствуют
Введите заголовок:

Введите адрес ссылки:

Введите адрес видео с YouTube:

Зарегистрируйтесь или войдите с
Информация о видео
28 августа 2019 г. 18:57:30
01:03:57
Другие видео канала
Андрей Гончаров — Как отобразить 100500 метрик распределенной системы и не сойти с умаАндрей Гончаров — Как отобразить 100500 метрик распределенной системы и не сойти с умаMartin Splitt, Semyon Levenson — WebAuthn: Theory and practiceMartin Splitt, Semyon Levenson — WebAuthn: Theory and practiceLucas da Costa — There is a bluebird in my talk that wants to get outLucas da Costa — There is a bluebird in my talk that wants to get outТяжелое утро с HolyJS #30: развитие ИИ, перформанс Microsoft Teams и что нового в браузерах.Тяжелое утро с HolyJS #30: развитие ИИ, перформанс Microsoft Teams и что нового в браузерах.Али Гасымов — Расширения для браузера: Угроза или опасность?Али Гасымов — Расширения для браузера: Угроза или опасность?Никита Швыряев — Анализ больших географически распределенных данных через визуализацию на картеНикита Швыряев — Анализ больших географически распределенных данных через визуализацию на картеМихаил Тадевосян (Croc Code) — Vue2 или Vue3 — что выбрать в 2021 году?Михаил Тадевосян (Croc Code) — Vue2 или Vue3 — что выбрать в 2021 году?Семён Левенсон — Воркшоп: Пишем браузерное расширение с нуля. Часть 2Семён Левенсон — Воркшоп: Пишем браузерное расширение с нуля. Часть 2Marko Letic — Bringing mixed reality to the webMarko Letic — Bringing mixed reality to the webЕвгений Полосухин — Система контентных компонентов для быстрой поддержки сайта selectel.ruЕвгений Полосухин — Система контентных компонентов для быстрой поддержки сайта selectel.ruАркадий Пильгук — Identity verification with MLАркадий Пильгук — Identity verification with MLЗнакомство с Докой — редакция отвечает на вопросыЗнакомство с Докой — редакция отвечает на вопросыCharlie Gerard — Exploring the hidden potential of sound dataCharlie Gerard — Exploring the hidden potential of sound dataЛеонид Винниченко — Воркшоп: Готовим 3D-графику в браузере (часть 2)Леонид Винниченко — Воркшоп: Готовим 3D-графику в браузере (часть 2)Stanimira Vlaeva, Vladimir Mutafov — Embedding V8 in the real worldStanimira Vlaeva, Vladimir Mutafov — Embedding V8 in the real worldНикита Дубко — WebHID API: управление почти чем угодно из браузераНикита Дубко — WebHID API: управление почти чем угодно из браузераAlex Castillo — MAAS: Mind as a ServiceAlex Castillo — MAAS: Mind as a ServiceТяжелое утро с HolyJS #31: package.json в Dino, croner и как НЕ надо ускорять страницу на Vue/AlpineТяжелое утро с HolyJS #31: package.json в Dino, croner и как НЕ надо ускорять страницу на Vue/AlpineMartin Splitt — Rendering performance from the ground upMartin Splitt — Rendering performance from the ground upСергей Фетискин — Speak my language %app%Сергей Фетискин — Speak my language %app%
Яндекс.Метрика