Это притянутый за уши аргумент. Нашел единственный баг в бейсике, который проявляется в экзотической ситуации - и раздул из него слона. Все известные баги синклер-бейсика достаточно редко проявляются, чтобы начинающие от этого не страдали.
Если на то пошло, то "современные ассемблеры" с их навороченными макро- и прочими средствами - тоже по сути черные ящики со своими странностями и глюками. Причем поскольку это программы новые, то времени у сообщества на поиск багов было меньше, да и само сообщество тоже меньше. Бейсик - проверенный временем, прошедший огонь, воду и медные трубы инструмент программирования на Спектруме.
Странный выкрик, не относящийся к делу.
Да, в бейсике этого нету, и слава Богу, иначе отладка программ на бейсике была бы столь же трудной, как на ассемблере. Большинство задач, которые решаются на бейсике, спокойно решаются и без косвенной адресации. В ассемблере же косвенная адресация нужна постоянно и везде. Об этом ниже.
Уже сто раз говорили, что первые шаги на ассемблере делаются без макросредств и условного ассемблирования, потому что изучить сразу все немыслимо для человеческого мозга.
Ничего себе "мелких". Печать символа - это нетривиальная задача. Думаю без преувеличения, что начинающий может потратить месяц на ее решение - при условии упорства и настойчивости. А в результате - один напечатанный символ. Да с таким темпом успехов ни один даже самый волевой человек не станет изучать программирование дальше!
А там, глядишь, освоит и печать числа на экран. Сможет прибавить 5 + 5 и напечатать результат на экран в десятичной системе. Ну-ну. В каком классе школы проходят системы счисления? А ведь мне было, например, 12 лет, когда я начал изучать программирование. Задолго до того как.
Это когда основные принципы тебе понятны. А когда ты совсем зеленый новичок, такой подход не работает. Попробуй, например, научиться доить корову таким способом - по ходу дела.
Да ну?Попробуй написать всю ту же пресловутую процедуру печати на экран сообщения без использования косвенной адресации.
По-английски это называется Run-time check. Проверок на предмет выхода за пределы диапазона, недопустимых значений аргумента функции, ошибки при выполнении функции и т.д.
Чего можно добиться такими программами? Сложения чисел, которые лежат в памяти, непонятно как туда попали, и непонятно как посмотреть результат? Ведь видимых (на экране) действий компьютер от таких программ не выполнит. Знаешь почему лично меня программирование увлекло когда мне было 12 лет? Потому что можно быстро добиться ощутимого по масштабам результата.
Да это просто смешно! Для отдельно взятого сложения двух чисел скорость не играет никакой роли!
Ну-ну. И через сколько времени мы доберемся до того, как человек сможет написать простую текстовую игру? И сколько ненужной (для достижения этого результата) информации ему при этом придется освоить? Начинающему на бейсике нет необходимости вообще понимать, что такое экранная область и на каком принципе на ней отображаются символы.
С какой это стати? Есть возражения? Приведи.
Что-то я не слышал, чтобы на этом языке массово обучали маленьких детей. Возможно, дело в том, что эта разработка оказалась неудачной, непригодной для заявленных целей, несмотря на рекламный слоган: "разработан для обучения маленьких детей".
Изучать библиотеки для арифметики и вывода на экран заведомо сложнее, чем изучить оператор PRINT a+b*COS(c). И задавание на форуме вопросов этот факт не изменит.
Начиная с мелочей в ассемблере, на них и застреваешь, потому что для выхода за рамки мелочей нужны месяцы и даже годы.
А трудности есть, потому что программа на ассемблере даже для простейших действий, вроде вывода на экран сообщений, уже становится настолько большой, что требует специальных приемов, облегчающих ее понимание человеку.
Что же это за "важнейший пласт" и почему его нельзя изучить потом?
Отлаживать на бейсике сложные алгоритмы проще, чем на ассемблере, и если ты этого не понимаешь, то попробуй сделать и отладить на ассемблере, к примеру, процедуру аппроксимации методом наименьших квадратов. Сообщишь мне, сколько это заняло времени.
У начинающих длинных программ не бывает. А тот, кто смог написать длинную программу, чтобы она не глючила, но неприемлемо тормозила из-за недостатков бейсика - уже созрел для изучения ассемблера.
Реплика, не относящаяся к делу.
Это тоже не относится к делу. Фраза Дейкстры касалась структурного программирования, а ассемблер не является структурным языком, в отличие от паскаля, например. Поэтому в контексте той фразы Дейкстры студенты, изучавшие ранее ассемблер вместо бейсика, были подвержены такому же разлагающему влиянию свободы GOTO и других факторов.
Указанные вещи отсутствуют в любых ассемблерах Z80, потому что процессор не поддерживает таких концепций. Ассемблеры поддерживают эти вещи за счет директив, которые надо изучать, и ограничений на стиль программирования, которые тоже надо изучать.
CP/M можно запускать на некоторых Спектрумах. Например, у ASC был фирменный Spectrum +2, на котором работала CP/M. Но турбо паскаль - это единственный пригодный к употреблению паскаль, который я когда-либо видел на спектрум-совместимых компьютерах. Потому я его и упомянул. Есть еще hisoft pascal, но это по-моему издевательство, а не среда программирования.
Между прочим, именно на паскале в CP/M я первоначально отрабатывал некоторые сложные алгоритмы, например бота для игры в морской бой. Только после отладки переводил его на ассемблер.
Никакие не бугагашечки. Ты очень недооцениваешь возможность исполнения команд языка во время останова, возможность вычисления выражений, распечатки на экран значений переменных в "человеческом" виде, а также внесения изменений в отлаживаемую программу БЕЗ необходимости ее перекомпиляции и перезапуска с нуля.
Не знаю, приходилось ли тебе отлаживать на ассемблере действительно сложный алгоритм, наподобие численных методов. Мы можем просто говорить на разных языках.







Попробуй написать всю ту же пресловутую процедуру печати на экран сообщения без использования косвенной адресации.

Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
