Языки высокого уровня

December 17, 2011 by admin Комментировать »

Мы только что убедились в том, что, хотя язык ассемблера много ближе к языку человека, нежели машинный код, он все же скучен и утомителен, когда все сводится к простой арифметической операции. В частности, он не вполне удобен для приема данных с клавиатуры и вывода их на экран и, на самом деле, слишком подчеркивает сложность этих простых действий, которые нам хотелось бы иметь готовыми.

Сегодня при программировании в большинстве случаев пользуются языками высокого уровня, из которых самым распространенным на домашних компьютерах является Бейсик; в профессиональных приложениях популярны другие языки, такие как С и С++. Программисту, пишущему программы на языке высокого уровня, нужны минимальные знания того, как в деталях работает процессор, либо не нужны вовсе; для него все необходимые регистровые операции и обработка признака переноса выполняются автоматически. Команды имеют вид осмысленных выражений на английском языке или математических операторов, а замечания и комментарии можно включать совершенно свободно, предваряя их пометкой REM. Данные можно легко ввести с клавиатуры, не заботясь о помещении их в определенную ячейку памяти, а результаты вывести на экран дисплея или распечатать.

С использованием Бейсика нахождение нашей суммы почти тривиально по своей простоте. Введите с клавиатуры:

PRINT 13+19

Компьютер откликнется на это, показав ответ:

32

В программу на Бейсике легко добавить в качестве дальнейшего усовершенствования приглашение пользователю ввести его собственные числа, которые надо сложить. Надпись, выводимую на экран оператором PRINT, можно в дополнение к ответу украсить указателем «СУММА =».

10 REM ПРОГРАММА СЛОЖЕНИЯ ДВУХ ЧИСЕЛ

20 INPUT «ВВЕДИТЕ ПЕРВОЕ ЧИСЛО»; А

30 INPUT «ВВЕДИТЕ ВТОРОЕ ЧИСЛО»; В

40 PRINT «СУММА =»; А + В

50 END

Наберите RUN, и вы увидите, как эта простая программа делает компьютер машинкой для сложения.

Мы видим, что можно не заставлять программиста ломать голову над ячейками памяти и кодами операций: Бейсик оставляет детали за кулисами и допускает использование обычных алгебраических переменных, таких как А и В, Бейсик, как и другие языки высокого уровня, способен непосредственно воспринимать выражения типа

SUM = А + В,

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

значительно быстрее запрограммировать на языке высокого уровня, чем на языке ассемблера.

Трансляция программы с языка высокого уровня в машинный код, понятный процессору, является, ясное дело, довольно сложным процессом, требующим своей собственной специальной программы. Интерпретатор может осуществлять этот процесс строка за строкой по мере исполнения программы; с помощью компилятора вся программа может быть оттранслирована до ее исполнения. В общем случае, программа, написанная на языке, предусматривающем использование интерпретатора, например на Бейсике, выполняется медленнее, чем программа, скомпилированная с такого языка, как С, из-за времени, затрачиваемого на интерпретирование во время исполнения. Однако переделки быстрее производить в интерпретируемой программе, поскольку не требуется затрат времени на компиляцию программы заново перед ее исполнением.

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

Литература: М.Х.Джонс, Электроника — практический курс Москва: Техносфера, 2006. – 512с. ISBN 5-94836-086-5

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

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты