Все статьи подряд / Математика / Хабр's Journal
 
[Most Recent Entries] [Calendar View]

Sunday, February 16th, 2025

    Time Event
    5:45p
    [Перевод] Величайшая история разработки приложения-калькулятора: как Google создал почти идеальный инструмент

    Калькулятор должен показывать результат математического выражения, которое вы ввели, и это намного, намного сложнее, чем кажется. То, что я собираюсь вам рассказать, — это величайшая история о разработке приложения-калькулятора. Взгляните на калькулятор iOS. Что-нибудь заметили? Он показывает неверный результат. (10^100) + 1 − (10^100) равно 0, а не 1. В Android всё правильно. И история о том, как это произошло, совершенно безумна.

    Читать далее
    6:37p
    Смогу ли я уложить оптимизирующий компилятор в тысячу строк питона? Прогон первый: mem2reg

    Год назад мне пришлось взять на себя курс лекций по теории компиляторов. Вы встречались некомпетентными преподавателями? Это я, здравствуйте! Прежде чем учить других, я всё-таки решил заглянуть в учебник сам, и это вылилось в серию статей "компилятор за выходные" (да, я помню, что за мной должок с описанием лексера/парсера). В итоге я уложил компилятор со мной придуманного си-подобного языка на GNU ассемблер в шестьсот строк кода, причём без внешних зависимостей, включая парсинг.

    Всё бы хорошо, вроде работает, но кажется, самое веселье осталось за бортом. Мой компилятор, по факту, это простой pretty print вокруг синтаксического дерева, подумаешь. А как работают оптимизирующие компиляторы? И поставил я себе задачу попробовать уложить игрушечный, но всё же рабочий оптимизирующий компилятор в тысячу строк кода. Как думаете, получится?

    Итак, тема сегодняшнего разговора - вынос переменных из памяти в регистры, оно же оптимизационный проход mem2reg, см. кпдв.

    Читать далее

    << Previous Day 2025/02/16
    [Calendar]
    Next Day >>

Все статьи подряд / Математика / Хабр   About LJ.Rossia.org