[an error occurred while processing this directive]
Как бы не казалось смешным сравнение Бэйсика и C++ и тем не менее…
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено ТуамОсес 24 октября 2006 г. 11:19

У Бэйсика есть возможность {отсутствующая у C++}, которая в определённых приложениях нивелирует все недостатки Бэйсика и все «плюс-плюсы» C++.
Для тех, кто «в танке» поясняю: я имею в виду функцию VAL$ {помните Бэйсик в содранном с импортного Спектрума «КВАНТе-БК» и т.п.?}.
Ну а что же всё-таки делает эта пресловутая функция VAL$ {опять же поясняю только для тех, кто «в танке» («спектруммистам» это пояснять не нужно)}? Ничего особенного(???)...Просто вычисляет переданную ей в качестве аргумента строку символов как арифметическое выражение. Сишники скажут: «Ха..ха..И всего-то». Но кто так скажет – тот просто не прочувствовал всю глубину этой возможности.
Ведь вы только вдумайтесь, Господа..Это возможность Бэйсика позволяет нам Л Е Г К О (!!!) реализовывать самодифицирующиеся программы. Правда и в Бэйсике эта возможность ограничена только выражениями – нет, например, такой функции, которая переданную ей строку декодирует как кусок программы. Но всё равно, даже этой возможности достаточно, чтобы эффективно реализовывать определённый класс задач. Например математические вычисления с использованием преобразований формул в символическом виде. Т.е. сначала работаем с формулами, представленными в виде элементов данных типа «строка» {используя обычные «строчные» операции поиска, вырезания и вставки подстроки}, а потом вычисляем значение просто применив конструкцию VAL$(<строка>). Т.е. фактически мы используем строки как объекты типа «формула». Сишники возразят: можно делать то же самое и на СИ..Можно..Но это будет настолько громоздко и неэффективно {с точки зрения сложности и затрат труда программиста}, что...
Например как на С++ представить правило разложения разности квадратов:
[1] X^2–Y^2 = (X+Y)*(X-Y) и подставить это правило в выражение [2] (X^2 – Y^2)/(X+Y). Затем упростив [2] получить выражение [3] (X-Y) полностью эквивалентное выражению [2]. И наконец вычислить это выражение подставив вместо X и Y уже конкретные значения. Это простейший несколько надуманный пример, но он иллюстрирует возможность Бэйсика в направлении создания самомодифицирующихся программ.

Готов биться об заклад с сишниками, что я реализую решение подобной задачи на Бэйсике в 5 раз быстрее, чем сишник на С++ и текст моего исходника на Бэйсике для подобной задачи будет по-крайней мере раз в 5 меньше и проще, чем прога, написанная на С++ сишником.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа
Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 
URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание