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

Компиляторы и интерпретаторы.Си, Фортран, Паскаль и Бейсик — примеры популярных языков высокого уровня. При составлении программы вы можете использовать алгебраические выражения вроде

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

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

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

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

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

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

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

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

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

Помпеи и Геркуланум
Помпеи и Геркуланум

Трагической участи Помпей и Геркуланума посвящено немало литературных произведений. Трудно представить себе человека, не почерпнувшего хотя бы кратких сведений о древних италийских городах, погибших во время извержения Везувия летом 79 года. Катастрофа разделила их историю на два этапа, последний из которых, в частности раскопки и создание музея под открытым небом, представлен почти во всех уже известных изданиях. Данная книга также познакомит читателя с разрушенными городами, но уделив гораздо большее внимание живым. Картины из жизни Помпей и Геркуланума воссозданы на основе исторических сочинений Плиния Старшего, Плиния Младшего, Цицерона, Тита Ливия, Тацита, Страбона, стихотворной классики, Марциала, Ювенала, Овидия, великолепной сатиры Петрония. Ссылки на работы русских исследователей В. Классовского и А. Левшина, побывавших в Южной Италии в начале XIX века, проиллюстрированы их планами и рисунками.

Елена Николаевна Грицак

Искусство и Дизайн / Скульптура и архитектура / История / Прочее / Техника / Архитектура
Как проектировать электронные схемы
Как проектировать электронные схемы

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

Клод Галле

Техника / Радиоэлектроника / Технические науки / Образование и наука