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

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

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

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

Отличия заключаются в том, что все модули Лага являются классами, а точкой входа для выполнения программы служит метод тахн(), определенный в одном из классов (вцрочем, этот метод может быть определен в каждом классе). Еще одним отличием являетсл автоматическое управление памятью и, как следствие, «сборка мусора», поэтому все обьекты (кроме переменных скалярных типов, которые обьектами не являются) размещаются исключительно в куче. Среда выполнения, называемая виртуальной Яана-машиной (1ача У1геца1 Мас1ппе --,1'ч'М), следит за использованием объектов кучи и автоматически уничтожает их в том случае, когда на цих не остается ссылок.

Отсутствие деструкторов в стиле С+ ~- (вместо них используется метод 1»наЬ.=е()) не позволяет в некоторых случаях возложить такие естественные 415 операции как освобождение ресурсов на деструктор и его неявный вызов. Вместо этого приходится явно вызывать метод 1'гпа1гзеО. 7.4.4.4 Сф= В недавно предложенном М1стоэо11, языке С-'" унаследованы лучшие черты С+ — ' и Лага, учтены уроки их реализации и использования. 7.4.5 ООП в абсолютно объектных средах И С ' +, и дана, и Сф, и Е1йе!, и ОЬ~ес~ Раэса1 страдают существенным недостатком это фоп Неймановские языки, в которые внедрена чуждая им объектная концепция. Однако уже довольно давно суп1ествуют абсолютно объектные языки программирования Яша1ГГа11с (73, 60~ и С!~ОБ 1731.

Глава 8 Языки программирования не фон Неймановских моделей 8.1 Языки реляционного типа (ИКТА, ЯЯ1 ) В обычных языках программирования типа Паскаля и Си для получения результата необходимо описать сам процесс получения результата.. Тем не менее, сущсствун>т области информатики, достаточно подробно исследованные с точки зрения математики. Одной из таких областей являются базы данных. В 1970 году доктор Кодд создал очень популярную сейчас модель представления данных в виде прямоугольных таблиц [67]. Такие таблицы, согласно Ко 1ду, являются множествами строк-кортежей, поэтому к ним применимы операции объединения, пересечения, вычитания и др.

Кроме операций над строками Кодд предусмотрел операции над столбцами таблицы: проекции, условия выборки, слияния и др. Благодаря математической основе такого подхода пользователям баз данных больше не приходилось описывать, как произвести выборку или поменять значение в одной из строк таблицы, достаточно лишь было указать чпю необходимо сделать. Для описания действий с прямоугольными таблицами был разработан язык ВС~Ь, выгодно отличающийся от остальных языков тем, что любые запросы к СУБД являются читабельными и корректными предложениягии на, английском языке. В настоящее время ЬС~1, является стандартом де-факто для всех СУБД Щ. Отметим еще один интересный язык такого класса БЕТ1. ~б9, 941.

8.2 Языки логического программирования (РВОЕОС) Традиционные языки программирования основаны на фон Неймановской модели вычислений, в которой вычисления проводятся в соответствии с закодированным определенным образом алгоргии.мгам. Понятие алгоритма, определяемое формальными математическими конструкциями типа машины 1'ьюринга,, является ключевым для всех языков программирования фон Нсймановского типа, или илтеративньсг лзъгьпе прпгра.м.мироеания,. Альтернативами алгоритмическому подходу являются парадигмы программирования, основанные на других математических моделях.

Например, аипликаъппвные язъгки программирования (в шстности,,'1ИСП~ основаны на Л-исчислении (т. н. фуякйионалъное 417 программирование), .>екларативнью на логике прсдикатов первого порядка (,логическое прог!>аллллироещьпе). Функциональное и логическое программирование играют важнейшую роль в таком разделе информатики, как искусстееннъ>й, и>ппеллект. Реализацией логического програмгипроеавпя па Э13М является язык программирования Пролог.

«Программа»' на, Прологе представляет собой набор фстпое о некоторых именованных объектах (называемых втомал«и) и правил. Основным действием Прологсистсмы является ответ на специальным образом сц>ормулированный запрос пользователя относительно объектов программы. Для ответа на запрос Пролог-система должна быть способна проводить над содержащимися в программе фактами рассуждения в соответствии с указанными правилами. Основной деятельностью вычислительной системы таким образом становится не выполнение строго специфицированной последовательности действий, а способность к логическол«р еъ>воду.

Для машинной реализации на традиционных фон Неймановских ЭВМ в Пролог- систему закладывается алгоритм логического вывода, именуемый .логическим интерпретоп»>ором~. Рассмотрим простой пример программы, предсказывающей оценку студента на экзамене по информатике. Программа будет содержать факты, подобные приведенным ниже: умеет программировать(вася). умеет программировать(петя). читал(вася, бауэр гооз). читал(петя, гарри поттер). книга про(бауэр гооз, инг1>орматика).

книга про(гарри поттер, фантастика). Здесь перечислены студенты, умеющие программировать (по результатам семинарских занятий), а также информация о том, кто какие книги читал для подготовки к экзамену. Также факты содержат информацию о направленности той или иной книги. Затем необходимо указать правила ог>ределения оценки. Будем считать, что 5 получает студент, имеющий практические и теоретические знания, 4 — — студент с чисто практическими навыками, и 3 — любой явившийся на экзамен студент. (Наши гипотетические правила приема экзамена, вероятно, не согласуются с представлениями читателей, в этом случае им представляется самостоятельно изменить программу в соответствии со своими представлениями). экзамен(Х, 5): — умеет программировать(Х), знает материал(Х). экзамен(Х, !): — умеет программировать(Х).

экзамен(Х, 3). знает материал(Х); — читал(Х, >'),книга про(>',информатика). Для прогнозирования оценки достаточно ввести запрос вида ? — экзамен(вася, Х). Х 5 Здесь термин «программа»примепяется в смысле, отличпом от привычного пам понятия программы па императивном языке программирования как синонима понятия «алгоритм>. з'-1удес пе бывает, поэтому весь логический вывод осповап па переборе фактов, известпых Пролог- системе. и гголучить в ответ прогноз оценки. С формальной точки зрения для описания ситуации Пролог использует предикпты, т. е, функции, 1г!ип!Имающие истинныс или ложггьге значения в зависимости от значений аргументов, Предикат представляет собой частный случай более общей структуры, именуемой стр!гкпЕрпым гпермол«!!римером структурного герма может быть подробное (!юлее подробнгю, чем в предыдущем примере) описание книги: книга(бауэр гооз, информатика, издание(мир, 1987), 230).

где указаны авторы книги, название, издание (издательство и год издания) и количество страниц. Структура «издание»представляет собой вложенный структурный терм. Внимательный читатель уже вероятно понял, что вложенные структурные термы являются естественным способом представления деревьев и, соответственно, многих других структур данных (списков, .матриц и т, д.!. Из-за, естественности представления деревьев Пролог оказывается удобным для реализации алгоритмов, .интенсивно испольшующих структуры данных в процессе работы.

'!ак, например, алгоритм поиска в глубину запишется на 1!рологе следукицим образом: г1ерСЬ эеагсЬ(!пса!, Е1па!, СеггегХагпс, Рагй): — <1сргЬ асагсЬ(!пса!, Еша1, Се!СегХагне, ~1шГ1а1~, Кеа), ге»егке(Кеэ, РаСЬ). с1ерСЬ эеагсЬ(Р1па1, Гша1,, РаСЬ, РаСЬ). с1ерг1г эеагсЬ(1п1г1а!, Рша1, СеССегХагпе, Ра11и Кеэ): — Сег!ег =-.. ~СеС!егХагне, 1пй1а!, ХехС], са11(Сегггег), поС(шегпЬегс1г1г(Хехг, РаСЬ)), с1ерС1г аеагсЬ(ХехГ» Гша!, СеС!егХаше, 1ХехС ! Ра!Ц, Кеэ).

Поиск в глубину осу.ществлястся четырехместным предикатом с1ерСЬ венгсЬ, который является оболочкой для пятиместной версии предиката. Исходный предикат принимает в качестве аргументов начало и конец пути, имя предиката-«поставщика»вертпин, соседних с данной, а также искомый путь.

Таким образом, кроме поиска пути предикат может быть использован и для проверки. существует ли указанный путь между вершина- ми. Поскольку в Прологе можно легко добавлять элементы в начало списка, то найденный путь будет записан в обратном порядке. Чтобы переписать его в естественном виде, используется псгироеиньи1 прсдикат гечегве, Этот прсдикат может быть легко реализован на самом Прологе; в этом смысле множество встроенных предикатов Пролога так же устроено и выполняет те же функции, что и стандартная библиотека языков С~'С++).

Для поиска пути Пролог-система будет перебирать вершины, смежные с данной при помощи предиката СеССегМапзе (в Паскаль-программе это было реализовано перебором элементов строки матрицы смежности). Пролог-система при помощи оператора =.. (читается «юнив») сформирует предикат из имени и аргументов, после чего полученный предикат СеССег будет вызван для поиска смежной вершины.

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

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

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

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