Все таки UB — специфика дизайна языка. В универсальном ассемблере нельзя сказать, как будет обрабатываться переполнение на конкретном процессоре. А при программировании на ассемблере для конкретного процессора — можно.
Вы пишите, что «почти любая строка в C++ потенциально может стать источником UB» — сомневаюсь, что это правда. Если же это так, то это ошибка дизайна языка.
Проблема С++ это то, что компилятор считает, что программист очень умный и его программа без UB и поэтому ее можно агрессивно оптимизировать. Поэтому перед изучением С++ стоит реально оценить, достаточно ли ты умный для этого языка и в случае сомнений выбрать другой язык.
Хорошая статья, но большая. Как писали выше, можно было бы разбить на несколько.
И, поскольку это не перевод одного источника, а компиляция нескольких, стоит
добавить список использованной литературы.
Я бы отдельно выделил эту книгу:
Артур Кларк: Голоc через океан — история связи меду континентами начиная с 19 века и заканчивая серединой 20.
Вашу статью сложно читать — она написана «рваным» языком. Такое изложение неплохо для конспекта лекций,
но мы здесь не нерадивые студенты, а Вы — не преподаватель.
К сожалению, стиль нельзя просто поправить — для начала попробуйте писать небольшие статьи и подробнее, с примерами излагать логические цепочки с уважением к читающим.
Например, какие конструкции PHP не поддерживаются, можно ли самому указывать типы переменных в комментариях определенного вида,.
Можно попросить небольшие куски кода PHP и их транслированные эквиваленты на C++ с комментариями: вот здесь kPHP смог определить тип переменных и получился быстрый код, а здесь нет. Наверняка у разработчиков есть тесты, там вряд ли есть коммерческие секреты.
Я люблю программирование за то, что в нем нет места тро-ло-ло, а есть код, который работает. Из интервью мы узнали, что Вконтакте обладают технологией ускорения PHP-кода, но ничего нового или интересного в этой технологии нет или журналист не смог узнать об этом.
Про Java пока не будем, а давайте обсудим пример отсюда:
blog.llvm.org/2011/05/what-every-c-programmer-should-know_14.html
Код:
становиться после оптимизации компилятора
Мне кажется, это немного печальная оптимизация.
И такой быстрый код совсем не нужен.
Проблема С++ это то, что компилятор считает, что программист очень умный и его программа без UB и поэтому ее можно агрессивно оптимизировать. Поэтому перед изучением С++ стоит реально оценить, достаточно ли ты умный для этого языка и в случае сомнений выбрать другой язык.
А утечку ресурсов можно обнаружить при тестировании.
А если посмотреть на год создания модели, то станет ясно, что .com файлы и int 21 будут придуманы через 15 лет.
И, поскольку это не перевод одного источника, а компиляция нескольких, стоит
добавить список использованной литературы.
Я бы отдельно выделил эту книгу:
Артур Кларк: Голоc через океан — история связи меду континентами начиная с 19 века и заканчивая серединой 20.
Напишите в самом начале, до кнопки.
но мы здесь не нерадивые студенты, а Вы — не преподаватель.
К сожалению, стиль нельзя просто поправить — для начала попробуйте писать небольшие статьи и подробнее, с примерами излагать логические цепочки с уважением к читающим.
Можно попросить небольшие куски кода PHP и их транслированные эквиваленты на C++ с комментариями: вот здесь kPHP смог определить тип переменных и получился быстрый код, а здесь нет. Наверняка у разработчиков есть тесты, там вряд ли есть коммерческие секреты.
В общем, больше деталей для программистов.