Очень важна. Советские инженеры не знали, что такое 8 бит.
Битность – это довольно мутное понятие, есть много разных битностей: размер регистров, размер указателей, размер адресного пространства (физического, виртуального), единица чтения адресной шины. И всё это может быть разное.
Битность - это разрядность АЛУ. Из которого вытекают такие вещи, отсутствие адресации на стеке, 8-битные смещения при индексной адресации, а в некоторых случаях и 8-и битный указатель стека. Всё это превращает создание эффективного компиляра ЯВУ для классических 8-и биток в нерешаемую задачу. Их и до сих пор нет.
Тогда современные x86 получаются 512 битные (AVX).
Наличие 512-и разрядной арифметики не означает, что АЛУ 512-и разрядный. Например, в том же зеднике была 16-и разрядная арифтмеика, но это не означает, что зедник - 16-и разрядный процессор.
Можно использовать адресную арифметику. Можно любой регистр взять как указатель стека, можно взять два регистра.
Можно, всё можно. Но код в итоге получается, мягко скажем, менее эффективным. Профессиональное ПО на таком инструменте не делается -> покупателей на ЯВУ нет -> смысла делать что-то серьёзное нет.
В итоге всё зависит от объёма доступной памяти.
В итоге, один .C файл на 70 килобайт собирается с помощью SDCC 2 минуты на I9-11900K, потребляя в пиках до 600 мегабайт оперативы. Если бы всё это работало не на I9, а на машине класса Z80, сборка длилась бы 180 лет.
Да, нам физик в школе наглядные демонстрации решения задач по механике показывал. Например насколько быстро в зависимости от массы бруска и наклона доски будет по ней съезжать брусок. С визуализацией какие силы действуют, в каком направлении и как они соотносятся.
Ты б ещё про значение универсальной газовой постоянной спросил. Она вообще раз в несколько лет уточняется и меняется уже в третьем-четвёртос знаке после десятичной точки.
В столице в куче школ несколько лет назад маки поставили и что? Проспонсируй и тебе хоть «Ломоносов-3» сделают и в сельскую школу запихнут вместе с электроподстанцией.
Чтобы вставить строчку не нужна память, интерпретатор знал какие строки за какими выполнять, что мешало отображать на экране их в нужной последовательности непонятно. Кроме объяснения «так сойдет» не вижу оправданий.
Не понимаю как это 16 разрядная арифметика есть, а АЛУ не 16 разрядный.
В несколько приёмов 16-и битная операция делается, 16-и битные операции медленнее и работают не все флаги.
Интерпретатор Бейсика ещё менее эффективен.
Смотря для чего. Например, если нужна плавающая запятая, то для 8-и биток никакой альтернативы бейсикам просто не было. Все ЯВУ того времени для 8-и битов в плавающую запятую не могли, да и сейчас не могут.
Возьмите TCC.
Возьму, но зачем? 8-и битный код он не умеет. Как думаешь, почему?
Наличие 512-и разрядной арифметики не означает, что АЛУ 512-и разрядный. Например, в том же зеднике была 16-и разрядная арифтмеика, но это не означает, что зедник - 16-и разрядный процессор.
Так в том и фишка, что avx на современных процессорах считается за один присест, а не в два этапа. По крайней мере avx2, 512-й - это нечто странное пока что.
Вообще современные x86-64 являются 64-битными не за АЛУ, чья битность нынче - это что-то понимаемое сильно по-разному, а за разрядность адресации памяти и регистров общего назначения в том же АЛУ. Вот этих RAX, RBX, RCX, RDX, RSI, RDI, RBP, RSP, R8-R15
В итоге, один .C файл на 70 килобайт собирается с помощью SDCC 2 минуты на I9-11900K, потребляя в пиках до 600 мегабайт оперативы.
Это сейчас ни о чем не говорит. Кросскомпилятор с современного Си - там что угодно может быть. А простой компилятор Си я видел даже не для спектрума, а для Микроши - правда он там похоже был сильно ограниченный.
P.S. Но вообще даже по меркам 80-х ресурсы у спектрума были такие, что для чего серьезного он не годился. памяти мало, плавающей запятой нет, развитых портов ввода-вывода для управления нет. То есть, большая такая игрушка.
Ну, я же не говорил, что для Z80 не было Си и других ЯВУ. Были, несколько. Даже Паскаль был, турбо. Просто ни для какой разработки они не годились. Потому что а) были ограничены, сильно, вне всякой меры. Ни один учитель не станет преподавать программирование в среде, где нет не только редактора, но препроцессор есть отдельная сущность. б) генерировали кошмарный код.
Первый BASIC ( настоящий ) был многопользовательский, за годы до UNIXa. А нумеровать строки текстовых файлов нужно было в системе разделения времени, на которой BASIC работал. Чтобы удобнее редактировать тексты с телетайпов.
На таком BASIC юный Билли писал крестики-нолики в школе. Есть известное фото Билли с другом у школьного телетайпа.
2006: IAU Resolution B5 (Definition of a Planet in the Solar System) explicitly lists the eight planets Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, and Neptune. While Resolution B5 defined the category of dwarf planet, Resolution B6 explicitly lists Pluto as an example.
на каком стеке? машинном? вы я вижу забыли о существовании регистровых пар. И подобных хитроумных извратов типа стека калькулятора в том же спектруме там 5 байт ЕМНИП отводилось на число.
Для 8-и битных компьютеров не было нормальных паскалей. У вас в школе компьютеры были скорее всего 16-и битные. Это большая разница.
Ну мне лучше знать, какие у меня в школе были компьютеры. Yamaha MSX-2 и для учебных целей Паскаль там был вполне сносный. Помню, что загружался он по сети.
В несколько приёмов 16-и битная операция делается, 16-и битные операции медленнее
Умножение и деление тоже часто в несколько операций делается, и что? Это всё не более чем внутренние особенности реализации, которые не сказываются на машинном коде.
В результате битность процессоров и компьютеров – это не более чем маркетинговый приём.
Смотря для чего.
Для всего. Интерпретатор на слабом железе в то время – это исторический курьёз.
Например, если нужна плавающая запятая, то для 8-и биток никакой альтернативы бейсикам просто не было.
Можно было сделать ROM с процедурами для программного FPU. Этот ROM был бы не больше и не медленнее Бейсика.
8-и битный код он не умеет. Как думаешь, почему?
Потому что 8 бит почти никому не нужно уже давно. При желании можно сделать.
Не нужна в смысле дополнительная память не нужна, сдвинуть все что после вставляемой строки и вставить на нужное место. Работать с изначально правильным списком строк удобнее. Нет переложили это на интерпретатор. Какую проблему решали, до меток не додумались.
В 90-х уже были полноценные ОС на C++ с поддержкой защиты памяти, вытесняющей многопоточности и SMP такие как BeOS. В СССР всё приходило с большим опозданием.
Для обучения азам программироваия 8 бит лучше: дешёвое оборудование, простой процессор, простое устройство экранной памяти, простое устройство всего. В 90-х, когда уже были современные ассемблеры и STS, программировать 8 бит было очень легко.
На такой же уровень знакомства с железом в случае с PC порог вхождения гораздо выше был. Можно, конечно, пропустить околожелезную тему, но это так себе решение.
Ну ладно, обвинения в корявости снимаются, что 57-ой, что 64-й один фик, нет оперативной памяти как таковой для редакторов, номер строки это номер строки на перфокарте, хоть бэйсик, хоть фортран того же времени.
Нет, это способствует привыканию к ущербным практикам. Лучше использовать компилируемый процедурный язык, такой как Паскаль/Модула/Оберон или Си. Для обучения работе CPU можно смотреть на дизассемблер и использовать inline ассемблер.
Устройство экранной памяти, кстати, было совсем не простое. Что может быть проще, чем 1 точка - 1 байт? А такое только в VGA появилось. Эпоха до VGA - сборище костылей и велосипедов, обусловленное убогостью аппаратной частидороговизной ОЗУ.
Для современного обучения работы железа лучше всего взять RISC-V и TinyEMU. Там есть загрузка RAW прошивки, фреймбуфер, простой доступ к железу по фиксированным адресам и в точку входа передаётся указатель на таблицу устройств (FDT). Сам код эмулятора сравнительно простой и доступный для понимания. Собирать можно с помощью clang/llvm, там кросскомпиляция везде работает без необходимости собирать компилятор.
У RISC-V грамотная архитектура и хорошая документация.