транслятором. На этом этапе транс-ляторы могли переводить в машинные коды конструкции, которыезаменялись одной или несколькими (условно не больше пяти) ма-шинными командами. Для совокупности правил, по которым следуетзаписывать программу, чтобы ее мог обработать такой транслятор,используюттермины
ассемблер,
макроассемблер.Ассемблер –этомашинно-ориентированныйязыкнизкогоуровня.Алгоритм,покоторомустроитсяпрограмма,приходитсядробить на очень мелкие шаги, которые умеет выполнять процессор.При появлении новых моделей процессоров с иной структурой ко-манд и встроенных операций приходится создавать новые версии ас-семблера, трансляторов с него и переписывать под них пользователь-скиепрограммы.Следующий этап развития инструментального ПО связан с по-явлением
алгоритмических языков, каждый из которых содержитконструкции, удобные для записи алгоритмов в той или иной сферечеловеческойдеятельности.Алгоритмическиеязыкиотносятсякклассуязыковвысокогоуровня.Онипозволяютприсоставлениипрограммы дробить алгоритм на более крупные смысловые блоки, несвязанные со структурой и типом команд ЭВМ, на которой будет ра-ботать программа. При изменении модели процессора переписывает-ся только транслятор с алгоритмического языка, а пользовательскиепрограммыостаютсяпрежними.
-
1 ... 19 20 21 22 23 24 25 26 ... 45
Синтаксис.СемантикаОбычныйразговорныйязыксостоитизчетырехосновныхэлементов:символов,слов,словосочетанийипредложений.Алго-ритмический язык содержит подобные элементы, только слова назы-вают элементарными конструкциями, словосочетания – выражения-ми, предложения – операторами. Алгоритмический язык (как и лю-бой другой язык), образуют три его составляющие: алфавит, синтак-сисисемантика.Алфавит – фиксированный для данного языка набор символов(букв, цифр, специальных знаков и т.д.), которые могут быть исполь-зованыпринаписаниипрограммы.Синтаксис–правилаиспользованиясимволовалфавитавспециальных конструкциях, с помощью которых составляется алго-ритм.Семантика – система правил толкования конструкций языка.Такимобразом,программасоставляетсяспомощьюсоедине-ния символов алфавита в соответствии с синтаксическими правиламиисучетомправил семантики.Программа,написаннаянаалгоритмическомязыке,называется
исходным модулем.
Для ее трансляции можно использовать два типа технологий:интерпретацию или компиляцию. Трансляторы, реализующие этитехнологии, называются соответственно интерпретаторами и ком-пиляторами.При интерпретации транслятор переводит в машинные кодыочередную строку исходного модуля, сразу же выполняет еѐ и пере-ходит к обработке следующей строки, не создавая законченного ис-полняемого модуля всей программы в целом. Такой тип трансляцииудобеннаэтапеотладкиилитестированияпрограммы.Прикомпиляциитрансляцияразбивается на два этапа
(рис. 4.1). На первом компилятор создает
объектный модуль – про-межуточную программу, в которой конструкции исходного модуляпереведены в машинные коды, но вместо реальных адресов данных иработающих с нею подпрограмм, используются относительные адре-са и не добавлены служебные подпрограммы, необходимые для еѐработы.Навторомэтапепрограмма-сборщикзаменяетвобъектноммодулеотносительные адреса на абсолютные и подключаеткнемунеобходимыедляработыстандартныепрограммы.Врезультатеполучается
исполняемыймодуль –программа,написаннаявмашинныхкодахиполностьюготоваяк работе.
Исполняемый модуль
Исходный модуль
Объектный модуль
Компиляция Компоновка
Перевод кон- струкций языка в ма- шинные ко- ды с исполь- зованием от- носительных адресов
Добавление необходимых стандартных программ,
замена отно- сительных адресов ре- альными
Рис. 4.1. Схема трансляции в режиме компиляции
Этот режим трансляции удобен для расчѐтов по уже отлажен- ной и протестированной программе, так как исполняемый модуль можно сохранить в памяти и при необходимости провести расчеты с другим набором исходных данных, не повторяя трансляцию.
В настоящее время для большинства алгоритмических языков разработаны
интегрированные системыпрограммирования(Бей- сик, Паскаль, Си и т. п.). Они включают в себя следующие компонен- ты:
-
текстовый редактор для написания программы;
-
библиотеки стандартных программ;
-
средства отладки;
-
справочную службу;
–компилятор и/или интерпретатор;
-
Основные алгоритмические языки высокого уровня
Один из первых языков программирования высокого уровня, Фортран(Formula Translation), был создан в середине 50-х годов. Он используется для инженерных и научных расчетов, для реше- ния задач физики и других наук с развитым математическим аппара- том. Благодаря своей простоте и тому, что на этом языке накоплены
большие библиотеки программ, Фортран и в наши дни остается од-нимизсамыхраспространенныхалгоритмическихязыков.
Для решения экономических задач был создан язык програм-мирования
Кобол.Расширение областей применения ЭВМ влечет за собой созда-ние языков, ориентированных на новые сферы применения:
Снобол –алгоритмическийязык
дляобработкитекстовойинформации.Лисп – алгоритмический язык для обработки символов. Он находитширокое применение в исследованиях
по созданию искусственногоинтеллекта.В 1968 г. был объявлен конкурс на лучший язык программиро-вания для обучения студентов. Для этого конкурса
Никлаус ВиртсоздалязыкПаскаль,достаточнопростой,удобный,сналичиеммощных средств структурирования данных. Хотя Паскаль был разра-ботан как язык для обучения программированию, он впоследствииполучил широкое развитие и в настоящее время считается одним изсамыхиспользуемых языков.
ДляобучениямладшихшкольниковСамуэлемПайпертомбылразработан
языкЛого.Онотличаетсяпростотойибогатымивозможностями.Широкое распространение в школах в качестве обучающего
языка получил язык Бейсик, позволяющий взаимодействовать с ЭВМв режиме непосредственного диалога. Спустя много лет после изо-бретения Бейсика, он и сегодня самый простой для освоения из де-сятковязыков общецелевогопрограммирования.Необходимость разработки больших программ, управляющихработой ЭВМ, потребовала создания специального языка программи-рования. В начале 70-х г. был разработан язык СИ, который широкоиспользуется как инструментальный язык для разработки опера-ционныхсистем,трансляторов,базданныхидругихсистемныхи прикладных программ. Это язык программирования общего назна-чения. Во многих случаях программы, написанные на Си, сравнимыпо скорости с программами, написанными на языке Ассемблера. Приэтом они имеют лучшую наглядность и их более просто сопровож-дать. В отличие от Паскаля, в нем заложены возможности непосред-ственного обращения к некоторым машинным командам и к опреде-ленным участкампамяти компьютера.Появлениефункциональногопрограммированияпривелоксозданию языка Пролог (ПРОграммы ЛОГические). Этот язык про-граммирования разрабатывался для задач анализа и понимания ес-тественных языков на основе языка формальной логики и мето-довавтоматическогодоказательстватеорем.В 80-х г. 20 века был создан язык Ада. В дополнение к класси-ческимсвойствам,онобеспечиваетпрограммированиезадачре-альноговремениимоделированияпараллельногорешениязадач.КязыкамсверхвысокогоуровняможноотнестиАлгол-68иAPL. Повышение уровня этих языков произошло за счет введениясверхмощных операций и операторов.В современной информатике можно выделить два основных