Ada (798525)
Текст из файла
1. Элементарные понятия.1.1 "Сюрпризы" переводной терминологииПрежде чем приступить к непосредственному знакомству с Адой, естьнеобходимость заметить, что в англоязычной литературе, посвященнойвычислительной технике в целом и программированию в частности, достаточно частовстречаются такие английские термины как operator, operation и statement. Присложившейся практике перевода такой документации на русский язык, эти термины,как правило, переводят следующим образом:operationоперацияoperatorоперация, операторstatementоператорНа первый взгляд, проблема перевода данных терминов достаточно безобидна.Однако, при таком традиционном подходе, добившись приемлемой благозвучностиизложения материала, достаточно сложно избежать неоднозначностей и дажепутаницы при обсуждении некоторых основополагающих вопросов.
Также стоитособо отметить, что стандарт языка Ада строго различает такие понятия.В действительности, смысловое значение данных терминов, при их употреблении ванглоязычной документации, как правило, имеет следующее русскоязычноетолкование:operationнепосредственно обозначает понятие операции, функции или какого-либо действия, в совокупности составляющеговыполнение команды (или набора команд) процессораoperatorобозначает понятие знака или обозначения операции, функции или какого-либо действия, что подразумевает не столькосамо действие для выполнения операции, сколько обозначение операции в тексте программыstatementэлемент текста программы, выражающий целостное законченное действие (или набор действий)Таким образом, исходя из всего выше сказанного, в данной работе, для достиженияоднозначности, принято следующее соответствие терминов:operationоперацияoperatorзнак операцииstatementинструкцияХотя такое решение выглядит несколько не привычно, оно не должно вызватьтрудности при рассмотрении материала представленного в этой работе.1.2 Первая программаДля того, чтобы дать "почувствовать", что представляет из себя программанаписанная на языке Ада рассмотрим простую программу.
Традиционно, перваяпрограмма - это программа которая выводит на экран приветствие: "Hello World!". Небудем нарушать традицию. Итак, на Аде такая программа будет иметь следующийвид:with Ada.Text_IO;use Ada.Text_IO;procedure Hello isbeginPut_Line("Hello World!");end Hello;Давайте детально рассмотрим из каких частей состоит текст этой программы. Строка"procedure Hello is" является заголовком процедуры и она указывает имянашей процедуры.
Далее, между зарезервированными словами begin и end,располагается тело процедуры Hello. В этом примере тело процедуры оченьпростое и состоит из единственной инструкции "Put_Line("Hello World!");".Эта инструкция осуществляет вывод приветствия на экран, вызывая процедуруPut_Line.
Процедура Put_Line располагается в пакете текстового ввода/выводаAda.Text_IO, и становится доступной благодаря спецификации контекста винструкциях "with Ada.Text_IO;" и "use Ada.Text_IO;" (спецификацияконтекста необходима для указания используемых библиотечных модулей). Здесь,спецификатор контекста состоит из двух спецификаторов: спецификаторасовместности with и спецификатора использования use. Cпецификаторсовместности with указывает компоненты которые будут использоваться в данномкомпилируемом модуле. Cпецификатор использования use делает именаиспользуемых объектов непосредственно доступными в данном компилируемоммодуле.Программа Hello настолько проста, что в ней нет ни переменных, ни какой-либообработки данных, поэтому, несколько забегая вперед, приведем общий видпроцедуры.with ...
;use ... ;procedure < имя процедуры > ... is. . .спецификаторы контекста, указывающие используемые модули (могут отсутствовать)спецификация процедуры, определяющая имя процедуры и ее параметры (если они есть)описательная (или декларативная) часть, которая может содержать описания типов, переменных,констант и подпрограммbegin. .
.end < имя процедуры >;исполняемая часть процедуры, которая описывает алгоритм работы процедурыздесь, указание имени процедуры не является обязательнымНеобходимо заметить, что в отличие от языков С/C++, которые имеет функцию main,и языка Паскаль, который имеет program, в Аде, любая процедура без параметровможет быть подпрограммой main (другими словами - головной программой). Такимобразом, процедура без параметров может быть выбрана как головная программа вовремя линковки.Теперь, приведем еще один простой пример, в котором, для выдачи сообщенияприветствия, используется ранее рассмотренная процедура Hello:with Hello;-- указывает на использование показанной ранее-- процедуры Helloprocedure Use_Hello isbeginHello;-- вызов процедуры Helloend Use_Hello;1.3 Библиотека и компилируемые модулиВ общем случае, программа на языке Ада представляет собой один или несколькопрограммных модулей, которые могут компилироваться как совместно, так ираздельно.
Кроме того, программные модули являются основой построениябиблиотек Ады, поэтому их также называют библиотечными модулями.Программные модули бывают четырех видов:•Подпрограммы - Являются основным средством описания алгоритмов.Различают два вида подпрограмм: процедуры и функции. Процедура - этологический аналог некоторой именованной последовательности действий.Функция - логический аналог математической функции - используется длявычисления какого-либо значения.•Пакет - Основное средство для определения набора логическивзаимосвязанных понятий.
В простейшем случае в пакете специфицируютсяописания типов и общих объектов. В более общем случае в нем могутспецифицироваться группы взаимосвязанных понятий, включающихподпрограммы, причем, некоторые описываемые в пакете сущности могутбыть "скрыты" от пользователя, что дает возможность предоставления доступатолько к тем ресурсам пакета, которые необходимы пользователю и,следовательно, должны быть для него доступны.•Задача или задачный модуль - Средство для описания последовательностидействий, причем, при наличии нескольких таких последовательностей онимогут выполняться параллельно.
Задачи могут быть реализованы намногомашинной или многопроцессорной вычислительной конфигурации, либона единственном процессоре в режиме разделения времени. Синхронизациядостигается путем обращения ко входам, которые подобно подпрограммаммогут иметь параметры, с помощью которых осуществляется передача данныхмежду задачами.•Настраиваемые модули - Средство для параметризации подпрограмм илипакетов. В ряде случаев возникает необходимость обрабатывать объекты,которые отличаются друг от друга количеством данных, типами или какимилибо другими количественными или качественными характеристиками.
Есливсе эти изменяемые характеристики вынести из подпрограммы или пакета, тополучится некоторая заготовка (или шаблон), которую можно настроить наконкретное выполнение. Непосредственно выполнить настраиваемый модульнельзя. Но из него можно получить экземпляр настроенного модуля(подпрограмму или пакет), который пригоден для выполнения.Каждый программный модуль обычно состоит из двух частей: спецификации и тела.Спецификация описывает интерфейс к модулю, а тело - его реализацию.Примечательно, что спецификация и тело программного модуля являютсясамостоятельными компилируемыми модулями, то есть, они могут компилироватьсяраздельно. Разбиение модуля на спецификацию и тело, а также возможностьраздельной компиляции позволяют разрабатывать, кодировать и тестировать любуюпрограмму или систему как набор достаточно независимых компонентов.
Такойподход полезен при разработке больших программных систем.1.4 Лексические соглашенияЛексические соглашения описывают допустимые символы и последовательностисимволов, которые используются при обозначении идентификаторов, определяющихимена переменных и констант, подпрограмм и пакетов, указывают правила написаниячисловых значений, а также описывают некоторые специальные последовательностисимволов, используемые языком программирования.
Согласно требований стандарта,реализация должна поддерживать как минимум 200-символьные строки исходноготекста (максимальная длина лексических элементов - не определена).1.4.1 КомментарииНачнем с комментариев. Для облегчения понимания алгоритма работы программы, втекст программы могут, и должны помещаться комментарии. Комментарийначинается с двух символов дефиса "--" и продолжается до конца строки. Пример:-- это комментарий--- это тоже комментарий1.4.2 ИдентификаторыТеоретически, согласно требований стандарта, идентификаторы могут быть любойдлины, однако, длина может быть ограничена реализацией конкретного компилятора.Общие правила таковы:1.
Идентификатор может состоять из букв, цифр и символов подчеркивания.2. Идентификатор обязан начинаться с символа.3. В идентификаторе нельзя использовать несколько символов подчеркиванияподряд.4. Символ подчеркивания не может быть первым и последним символом видентификаторе.5.
Все идентификаторы в ADA не зависят от регистра символов.Например:Apple, apple, APPLEMax_Velocity_Attained-- один и тот же идентификаторMinor_Number_Minor__Revision-- недопустимо, завершающий символ - подчеркивание-- недопустимо, последовательность подчеркиваний1.4.3 ЛитералыЛитералы служат для явного указания значения некоторого типа, сохраняемого впрограмме. Различают числовые, символьные и строковые литералы.Числовые литералы, как не трудно догадаться, используются для представлениячисленных значений. Они могут содержать в себе символы подчеркивания (дляудобочитаемости), однако, они не могут начинаться или заканчиваться символомподчеркивания, или содержать более одного символа подчеркивания подряд.Различают числовые литералы для представления целочисленных и вещественныхзначений.Примеры целочисленных литералов, представляющих значение числа 2000:20002_0002E3-- для целочисленных литералов разрешена экспоненциальная форма2E+3Возможно представление чисел в разных системах счисления, например,представление десятичного числа 12 может быть задано следующими литералами:2#1100# -- двоичная система счисления8#14#-- восьмеричная10#12#-- десятичная (здесь, указана явно)16#C#-- шестнадцатиричная7#15#-- семиричнаяЛитералы, описывающие вещественные значения, содержат точку и обязаны иметьхотя бы по одной цифре до и после точки.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.