vlad-kras, приколов много. Начиная от того, что в процессе выполнении программы работает куча подпрограмм интерпретатора. Анализатор операторов в строке, калькулятор работы с цифровыми значениями, обработчик поиска значения переменных (числовых, символьных, внутри массивов, циклов, ПП go sub и т.п.), подпрограмма печати на экране символов, обработчик ошибок в конце - концов.
Числовое значение, для оператора PAUSE может содержать, алгебраические выражения (сложение, вычитание и т.п.), так и логические операторы (and, or), которые должен "перемолоть" интерпретатор. Также числовой аргумент команды может быть вызов кода через USR.
А та же RANDOMIZE с числовым параметром, без, и USR - выполняется вполне по разному. Вот за эту гибкость и приходится платить не слишком большим быстродействием.
При компиляции, эта гибкость теряется т.к. операторы бейсика, заменяются вполне определенным набором ассемблерных "кубиков". Плюс, ограничения самих компиляторов - типа целочисленности, ограничения описателей переменных, массивов и фенкционала команд (иногда, до полной невозможности их использования).




Ответить с цитированием