Интересное исследование, но это именно быстродействие программ на бэйсике, которые использовались гораздо реже программ на ассемблере, на котором написан и сам бэйсик. Не совсем корректно писать, что это быстродействие именно железа. Можно писать, что бэйсик БК может обогнать GW-Basic на IBM PC XT. Но это одиночный, вырванный даже из контекста сравнения бэйсиков результат. GW-Basic удобный, продуманный инструмент, отражающий лучшие идеи того времени в реализации бейсиков. В нем удобно редактировать, работать с графикой, файлами разной структуры, текстом и т.п. На БК имеем сделанный наспех инструмент годный только для начального обучения и математических расчетов с неудобным, обрезанным синтаксисом (оператор в строку, нет развёстки сокращенных слов). С файлами на БК работать невозможно, с текстами почти невозможно. Памяти почти нет, что сводит работу с графикой к фикции и заставляет программиста писать уродующие программы сокращения вместо нормальных служебных слов. Сравниваем типа Волгу и Вольво с моторами одинаковой мощности: с хорошим форсажем и наладкой Волга с грохотом может объехать Вольво.Хотя для любителей быстрой езды Microsoft предлагала компилятор, повышающий скорость раз в 5. Компилятоы бейсика были и на других платформах, они повышали скорость не менее, чем в 2.5 раза.
Мои наблюдения показывают, что скорость работы компьютеров конца 70-х и до конца 80-х определялась прежде всего скоростью работы с памятью. У 6502 это чуть больше такта на обращение, у i8080/z80/i8088 - чуть меньше 4 тактов, у БК 12-14 тактов (6-7 на байт). Сами команды распадаются на отдельныe обращения к памяти, например, команда загрузки аккумулятора у 6502 LDA $1000 состоит из 3-х байт и делает одно обращение к памяти - итого 4 такта, команда загрузки регистровой пары в 8080/z80 ld hl,(1000) состоит из 3-х байт и делает два обращение к памяти - примерно 20 тактов, команда пересылки слова БК mov (R0)+,(R1)+ состоит из слова (2 байта) и делает два обращение к памяти - примерно 36-42 такта. За счет более ёмких команд БК может иметь преимущество перед z80 и Со за счет меньшего времени на выборку команд. Но далеко не всегда нескольким командам z80 можно сопоставить одну на К1801ВМ1. Работа с байтами и битами на БК намного медленнее, чем на z80 или 6502. Поэтому по арифметике, пересылке данных, работе с массивами слов и т.п. БК на 4МГц примерно соответствует z80 на 3.2 без торможения, но во многих ситуациях процентов до 50 медленнее.
Интересны были бы дополнительные сведения по 6809 - лучшему 8-битному процессору с аппаратным умножением и многообразной системой адресации. Его почему-то использовали с заниженными (искусcтвенно?) частотами (800 КГц).
Тестам на бейсике определенно не хватает теста со строками - это проверка качества работы с памятью. Строки требуют её выделять динамически, проводить массовые копирования, уборку мусора, ...
Термины разные, а суть одна - в предварительной подготовке текста перед исполнением. Все без исключения бэйсики переводят сначала текст в свой внутренний формат, как минимум, заменяя служебные слова на сокращения, делая ссылки на начала строк и т.п. Некоторые в этом заходят дальше, чем другие, делая помимо лексического, элементы синтаксического анализа - это уже полукомпиляция. Называть полукомпиляцию компиляцией не позволяет ее привязанность к ПЗУ компьютера. Грань между полукомпиляцией и компиляцией в системах пи-кода, ява, дот-нет или даже скрытой компиляцией программ на языках сценариев и похожих (рубин, питон, хаскель, ...) очень тонкая.Можно уточнить, откуда такой термин "полукомпиляторы"?
Поддержу форт - этот язык определенно проще бэйсика. Трансляторы форта есть почти на всех системах и они похожи друг на друга гораздо больше чем бейсики. Получается почти идеальное средство для подобного тестирования, уступающее только реализации строго заданных алгоритмов на ассемблере.




Хотя для любителей быстрой езды Microsoft предлагала компилятор, повышающий скорость раз в 5. Компилятоы бейсика были и на других платформах, они повышали скорость не менее, чем в 2.5 раза.
Ответить с цитированием