Главная » Просмотр файлов » Лекции по информатике

Лекции по информатике (984119), страница 25

Файл №984119 Лекции по информатике (Лекции по информатике) 25 страницаЛекции по информатике (984119) страница 252015-07-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 25)

Подобно матс матику, Паскаль-программист должен сказать, что-то вроде «пусть х, Р и - — вещественные величины, а 1, 1, Уг - целые. И пУсть Ры Р2, Ра и 1п ~д пРоцедУРы и функпии, реализующие, операции и отношения над ними». Тогда программирование над вновь введенным набором понятий становится простым и ясным и сводится к написанию последовательностей вызовов этих процедур и функций, образующих своеобразный специализированный интерпретируемый язык программирования. Однако воспользоваться построенным типом практически невозможно: ни продать, ни распространить для всеобщего использования в товарном виде, ни даже систематически использовать в других программах.

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

Услугами, предоставляемыми такой единицей, могут быть: доступ к атрибутам типа и его реализации (констатттам, описаниям типов, переменных, процедур и функций). То есть эта программная единица агрегирует программно-информационные компоненты рстализации типа, доступньк, терез программный интерфейс. Для описания таких щ)ОГраммных с',диниц ВО мнОГих щ)актических языках щ)ОГраммирОВания предусмотрены внешние, автономные, отдельно компилируемьи", процедуры (напр))мер, подпрограммы типа ЯСВКОЛЛТ?ХЕ Фортрана, функции языка Си). Связь таких подпрограмм осуществляется после компиляции системным компоновптиком (лттнкером, редактором связей или связывающим загрузчиком).

Автономия внешних подпрограмм удобна для создания библиотек откомпилированных подпрограмм. Но чтобы набор таких подпрограмм реализовал АТД, необходимо более тесно с:вязять их по данным. Например, все процедуры работы со стеком должны быть связаны с; массивом или динамической структурой„ на которой реализован стек. То есть желаемая программная единица должна включать несколько процедур„работающих нас! Оби1илт набором данных. Кроме того, наши требования к титту данных вообще предполагают отделение абстрактного описания от реализации с сокрытием ее подробностей во внутренних„служебных структурах.

Это называется инкаттсуяяцией. 7.1.1 Модули в расширениях языка Паскаль Отсутствие модулей .-. внешних отдельно компилируемых процедур - было крупнейшим недостатком стандартного Паскаля. Поэтому этим обеспокоился Создатель, начав исследовательскую работу по модульному расширению Паскаля, проводя попутно множество улучшений этого языка. В результате в 1976 году появился интересный язык с соответствующим названием — Модула. К сожаленито, модульные средства этого языка были ориентированы в первую очередь на инкапсуляцию низкоуровневых средств мдрайверов устройств, обращений к системным услугам ОС, управление памятью и др.).

В 1979 Году появился более развитый язык Модула 2, в котором уже стала возможной более или менее полноценная реализация АТД !66~. Кроме того, этот язык испытал некоторое благотворное влияние языка Си. Помимо автора языка улучптением языка озаботились и другие: сообщество С5!11, группа научных и инженерных организаций, ттромтьттттттеттньте фирмы (НЕС !92~, 1ВМ, Вог1апс1 !5)51). Все опи вводили свои, более или менее удачные, но несовместимые друг с другом внешние процедуры и модули. Хорошо проработанным модульным расширением Паскаля стал язык Ада [61~, разработанный по заказу Министерства Обороны США.

Например, в С'!)!1т Равса1 используются три типа модулей: мочули в стандарте Ехсеттс!ес! Равса! (Научное сообщество), модули в стандарте Вот!аттсЛ Рааса! (Основная промьпплс:нная реализация на платформе !п1е!) и упрощенные модули С!) Н Раэса1 !56~. Рассмотрим модуль работы с параметрами командной строки операционной системы.

В разных ОС существуют различные способы получения этих параметров. Предположим, мы хотим написать модуль, реализующий эту связь единообразно для различных операционных систем. Для этого мы спрячем подробности реализации в тело клодуля, которое будем менять от системы к системе, сохраняя при этом функциональнун) спецификацию. Рассмотрим пример модуля взаимодействия с ОС для различных версий Паскаля в НР ТгттбЛ 1)О!1Х. Для С!))1)т Раас)а! 2.0 эта услуга доступна через систсмные вызовы р рагатгтсоиттс() 366 и р рагангз?гтд(), с использованием модулей ?~хсег1с?ст? Разса1; 1, файл сшс?11гь?г интерфейсная часть модуля шос1п!е спи11ш 1гйег?асс: ехрог1 сгггс?11г1 (а?ах?еп, АгоТуре, РагагпЫг, РагагггСо~шг); сопзС Мах1.еп 255; Суре АгяТуре — зСг1пд(МахЬеп); Йп~сС?оп РагашСошй: шСеиег; КппсСюп РагашЯСг(х: шСецег): АгаТуре; 2.

файл сп1с?1?п.раз реализация модуля 1' Бкггюченис файла с обзявлениам интерфейса 3 фшс|пс?е зсшс111п.?г" гпос?гас спгс?1ш 1гпр1егпепсаС1оп; 1' Особенность данной релзлизации— программньсй код обраи?аегася к фднкиисям системной бибаиогаски СП САг?Ь В другой версии Паскаля тело фднкйии мозолит виглядетггь иначе. Интссрфейс, скорее осего, нс изменится! у' Йп~сС?оп р рагашсопг1С: ?пСеиег; С; КппсСюп р рагагпзсг (х: шСепег: чаг з: зьг?г1ф: Ьоо1еап:, С; 6шсС?оп РагмпСопп1: шСеиег; Ьеиш РагагпСоппС: — - р рагагпсопп?: епс1: ГппсСюп Рагапг1?Сг; 1' допускается опускать заголовок 3 чаг с: Аг~Туре:, Ьеиш 1? р рагашзСг(х, С) СЬеп Рагашогг г ! е1зе РагапгЯгг: — ' ", епс1; Со Ьедш с1о жг?Се?п(''.ч?ос1гг?е Спн1?йп„1з Ь1?С1а11я?пц');1' Пролог зг Со епс1 с1о тчг?Се?п('Мос?п)е Сшс1?лп ?з„с1е1гг?гй?а11яш~'); 1' Эпилог з? епс1.

1' МОВПЕ зг 3, файтт пташ,рав основная программа, исттользуютцая описанный модуль. ;'лтпс!пс1е "стпс1!тп.1т" 1' Си — подобная дирекптива препроцессора СП СтттЕ Включает интперфейсньт с)тайл в истодный код програлс.иы. тт ргонгаш Ма1п; тптрогт сшс111п; Ьенш тттг1Се1п(а1исло параметров данного вызова: ', рагатпсопп1:); епс1. Рт СМ. Равса1 2.1 механизм работы с командной строкой устроен по-другому, в стиле Вог1апс1, но модульная структура примера сохраняется: 1. файл сшс11ш.рав пшС сшсПш 1ттгег1асе сопвС Мах) етт — 255; Суре АгиТуре аггтпй(МахЬетт); ГппсСюп РагатпСопттг: шСедег; ГппсСюп РагаптстСгтх: шСенег); Аго 1урс; ппр1етпепгагюп ГппсСюп р рагатпсоппг: 1пСенег; С; ХппсСюп р рагатпвтг (х: шСенег; чаг в: аггши): Ьоо1еап: С; ГпттсСтоп РагашСоппг: шСенег; Ьецш РагатттСоппт,:= р рагатпсопп1,: епс1; ГппсСюп Рагатттогг(х: шСенег); АгдТуре; айаг С: Аг11Туре: Ьецш 11 р рагатпвгг(х, С) СЬеп РагатпЯСг: С е1ве РагатттЯСг: епс1:, 2, файл Маттт.раз ргонгагп Маш паев стпс1!ш; Ьефп игйе1п('с1исло параметров данного вызова: ', РагашСошп); епс1.

В систс'мс программирования Сошрас! Раям! получение параметров командной строки осуществляется по-другому. в соответствии со стандартом языка Си и ОС 1!К!1Х через функцию АКСС() и процедуру АЛС1'(). АЛСС() и АЛСч'() являк1тся Паскаль- аналогами параметров функции та1п() языка Си. Первым аргументом командной строки (часто единственным!) является имя программы. Целочисленная функция АЛСС() не имеет параметров и возвращает число аргументов командной строки (слов, разделенных пробелами и табуляциями), считая имя программы.

Процедура АЛСОС'() выдает конкретный аргумент командной строки. Номер аргумента задается первым параметром. Нумерация ведется с нуля. Второй параметр АЛСОС)- массив литер. Признаком конца строки является знак сЬг(0). Прежде чем запрашивать аргументы, следует убедиться в их наличии с помощью АЛСС(). ргоатагп 1(оШрпС); Фуре вгт - рас1сес1 аггау [1.. 8Ц оГ сЬаг: ргосес1пге рг1пс(чаг в; в1г): чаг с: ш$еиег! Ьеиш с; — 1; жЬ11е в)с) <з сйг(0) с1о Ьеиш жгйе(в)с)); с: — кпсс(с); епс1: епс1; чаг в: в1г: : шСеиег; Ьеиш : -0; иЬ11е(1 =. (атас — 1)) с1о Ьеиш !' Распечатка парамегаров командной строки ~ агдч(1, в); 1эг1п1 (в); жг11е1п; 1:- !+1: епс1; епс1 Итак, мы рассмотрели несколько способов реализации начинки модуля работы с командной строкой. Вще раз поди:!ткнем что интерфсйсная часть модуля при эгом не меняется.

Характеристики

Тип файла
DJVU-файл
Размер
675,15 Kb
Тип материала
Высшее учебное заведение

Список файлов лекций

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6353
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее