Читаем Искусство схемотехники. Том 2 [Изд.4-е] полностью

χ = (—Ь + sqrt (b*b — 4*а*с))/(2*а)

и управляющие структуры типа ifelseifelse, for…, while… и do…. Вам не приходится гонять туда и обратно крошечные порции информации объемом 1 байт или заботиться об адресации, сохранении регистров и прочем; вы просто объявляете переменные и массивы с указанием типов и размеров, а затем используете их в арифметических и логических выражениях. Не жизнь, а малина.

Выше шла речь об исходном тексте, который можно преобразовать в выполнимую программу двумя способами. Исходные программы на языках Си или Фортран компилируются, т. е. преобразуются специальной программой (компилятором языка) в строки на языке ассемблера; затем программа ассемблера переводит этот промежуточный язык ассемблера в машинный язык[7]. Программы же на языках Бейсик и АПЛ обычно интерпретируются; вместо преобразования исходной программы в программу на языке ассемблера интерпретатор анализирует предложения программы и выполняет соответствующие машинные команды.

В целом интерпретация занимает гораздо больше времени, чем компиляция. Поскольку, однако, в случае интерпретации отсутствуют процессы компиляции, ассемблирования или компоновки (о компоновке см. ниже), программу можно запустить немедленно после ее ввода в машину. Интерпретирующие программы часто включают простые редакторы, удобные для быстрой модификации программы перед ее повторным пуском в процессе отладки. На заре микрокомпьютерной техники, когда жесткие диски были редкостью, интерпретатор Бейсик приобрел широкую популярность, поскольку он работает целиком в памяти; этому можно противопоставить утомительный многоступенчатый процесс компиляции. Однако сегодня быстрые диски и эффективные компиляторы снимают с нас все заботы. Любопытно отметить, что современные компиляторы часто следуют примеру интерпретирующей системы Turbo Pascal фирмы Borland и предоставляют вам «среду программирования», в которой можно без всяких усилий переходить от редактора к выполняемой программе. Если программа натыкается на ошибку, система возвращает вас в редактор и отмечает при этом неправильное предложение; такого рода системы включают отладчики, библиотекари и другие полезные и приятные средства.

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

Компоновщики и библиотеки. Ассемблер образует программу на машинном языке (собственно говоря, не совсем; ее часто называют «настраиваемым» или «перемещаемым»[8] модулем) из программы на языке ассемблера, образованной компилятором, или из отдельных подпрограмм, непосредственно написанных на этом языке. Кроме этого, обычно имеются программы, используемые отдельными командами языка высокого уровня. Так, в программе на языке Си может потребоваться обратиться к математической функции вроде sqrt (вычисление квадратного корня), или к сонму функций ввода-вывода, таких как printf или fopen. Весь бюрократический кошмар получения из «библиотеки» необходимых подпрограмм (в объектной форме), а затем настройки переходов и адресаций в программе, чтобы вся эта каша разместилась в памяти должным образом, берет на себя программа, называемая компоновщиком[9]).

В функции компоновщика входит назначение конкретных числовых значений ссылкам на ячейки памяти и адресам переменных в ассемблированной программе, и сделать это компоновщик может, только выяснив, какая программа вызывает какую и сколько места занимает каждая программа в памяти. Именно поэтому программа на машинном языке, получаемая с выхода ассемблера, должна быть настраиваемой, так же, как и ассемблированные подпрограммы, хранящиеся в различных библиотеках [обычно их несколько — библиотека встроенных функций компилятора, библиотека ввода-вывода, математическая библиотека, библиотека системных вызовов и, возможно, созданная дома (или купленная в магазине) библиотека полезных подпрограмм].

Перейти на страницу:

Похожие книги

Электроника для начинающих (2-е издание)
Электроника для начинающих (2-е издание)

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

Чарльз Платт

Радиоэлектроника / Технические науки
Искусство схемотехники. Том 3 (Изд.4-е)
Искусство схемотехники. Том 3 (Изд.4-е)

Широко известная читателю по предыдущим изданиям монография известных американских специалистов посвящена быстро развивающимся областям электроники. В ней приведены наиболее интересные технические решения, а также анализируются ошибки разработчиков аппаратуры: внимание читателя сосредотачивается на тонких аспектах проектирования и применения электронных схем. На русском языке издается в трех томах. Том 3 содержит сведения о микропроцессорах, радиотехнических схемах, методах измерения и обработки сигналов, принципах конструирования аппаратуры и проектирования маломощных устройств, а также обширные приложения. Для специалистов в области электроники, автоматики, вычислительной техники, а также студентов соответствующих специальностей вузов и техникумов.

Пауль Хоровиц , Уинфилд Хилл

Техника / Радиоэлектроника