Добавлен: 06.04.2023
Просмотров: 297
Скачиваний: 2
На создание Пролога повлиял написанный еще ранее язык Planner, из которого для основы были взяты вот такие идеи:
- использование разных имен;
- использование принципа «отрицание как неудача»;
- структура управляющей логики строится с помощью вычислений с откатами;
- отталкиваясь от целей используется вызов процедур по шаблону (обратный логический вывод)
Главная парадигма в языке Пролог — это логическое программирование. Версии языка Пролог, написанные позднее, вносят свои новшества, к примеру, версия языка Visual прикрепляет к нему новые парадигмы: управляемое событиями или объектно-ориентированное программирование, в котором даже может присутствовать императивный стиль.
Использованные в Прологе типы данных бывают такого вида:
- атом — применяется для составных терминов и не несет за собой весомого смысла;
- строки с числами не отличаются от других языков программирования;
- имя переменной пишется прописной буквой;
- за каждым элементом терма атомом-функтором следуют аргументы, состоящие из атомов.
Написанные на чистом Прологе программы, отношения между обрабатываемыми сущностями описывают, прибегая к помощи клауз Хорна. Клауза — является формулой такого вида: Голова :- Тело. Такая формула читается как « для того, чтобы решить/доказать Голову, сначала надо решить/доказать Тело». Само тело клаузы является несколькими предикатами (целями клаузы) и комбинируется при участии дизъюнкции и конъюнкции, а если клаузы не имеют тела, то называются фактами, которые эквивалентны виду Голова :- true. Предикат True является встроенным, а не атомом.
Предикаты являются важной частью Пролога: свойства аргументов выражают предикаты, называющиеся унарными; если предикат имеет несколько аргументов, то выражает отношение между этими аргументами. Так же встроенные предикаты по выполняемым функциям эквивалентны функциям в других языках, а предикаты, имеющие несколько аргументов, работают в нескольких направлениях, обращая внимание лишь на то, какие аргументы без связи, а какие имеют связь. Прологу для того, чтобы называться языком общего назначения, необходимо предоставлять сервисные функции (процедуры ввода/вывода и т. д.), такие предикаты созданы, не включая логический смысл, и всегда оцениваются истинными, выполняя свои функции.
Структура процедурных языков не похожа на структуру Пролога. Составляющие Пролога — это факты и правила, интерпретируя которые, достигается решение поставленной задачи, причем программисту не надо прописывать детальную последовательность инструкций, чтобы наглядно показать ход вычисления при нахождении результата. За место этого программист лишь предоставляет правила и факты для программы. В остальных отношениях язык Пролог не имеет различий при сравнении с другими языками, т. к. программа, написанная на прологе, как и на других языках, предназначается для одной определенной задачи.
История начала создания языка Пролога берет в 70-х годах, считаясь декларированным, в качестве программы он принимал описание настоящей задачи, и, используя механизм бэктрекинга, искал требуемое решение для определенной задачи, при этом прибегая так же унификации.
Язык Пролог совсем несложный для начала обучения программированию, т. к. набор синтаксических конструкций не так уж велик, но декларированный стиль может оказаться своеобразным и непривычным даже для программистов со стажем.
Язык может основываться на любой ОП и платформах: Unix, Windows, ОС мобильных платформ и мейнфрефмов. За счет ООП-архитектуры, сегодняшние реализации и версии языка обзавелись внутренней расширением. У Пролога недостаточно развита гибкость и если сравнить другие языки типа Java или С++ в сочетании с базами данных, то решение конкретной задачи на них будет намного технологичнее. Вот причины недостаточной гибкости языка: почти не контролируются промежуточные результаты; технология программирования развита намного меньше, чем в других языках; требуется хорошая квалификация программиста и достаточно затруднена отладка программы.
Глава 4. Объектно-ориентированные языки
Объектно-ориентированное программирование (ООП) — это метод написания модулей, из которых каждый содержит все исполняемые команды и данные, обязательно представляемые для одного класса объектов. Такой модуль внутри себя содержит отчетливые различия между абстрактными свойствами класса, они экспортируются для использования и реализации другими объектами. Эта реализация скрыта так, что все изменения в ней могут происходить без влияния на остальную часть системы.
Simula — первый объектно-ориентированный язык программирования, созданый К. Нигаардом и О.-Дж. Далом в 1960-х годах для моделирования систем. Проходило моделирование таким образом: подсистема, принимающая участие в моделировании, программировалась как самостоятельный объект. Одна подсистема могла существовать в нескольких таких же экземплярах, в таком случае программировался класс для описания каждой подсистемы и выделялась память для объектов класса. Xerox Palo Alto Research Center — Исследовательский центр, который с помощью языка Smalltalk популяризировал ООП. Такие же исследования вели к системам окон, но у Smalltalk было хорошее преимущество, заключалось оно в том, что язык являлся целой средой программирования, а не простым языком. Но распространению ООП помешал технический аспект этих первых объектно-ориентированных языков. Контроль соответствия типов и диспетчеризация операций осуществлялись во время выполнения (динамически), а не во время компиляции (статически). Поэтому программы на таких языках имеют большие расходы по памяти и времени. Теперь при разработке хорошего программного обеспечения необходим статический контроль соответствия типов. В связи с такими проблемами на языке Ada 83 имеется лишь частичная поддержка ООП.
Можно реализовать полный механизм ООП способом.
C++ показал, что язык, который совместим с контролем соответствия типов и статическим распределением памяти и с фиксированными затратами на диспетчеризацию: только при необходимости динамические механизмы ООП будут использованы.
На таких же идеях основывается Поддержка ООП в Ada 95, так же, как и в C++. Чтобы получить такие же преимущества в других языках, необходимости прививать им поддержку ООП – совсем нет.
Языки Eiffel и Smalltalk имеют между собой схожесть: у них один метод структурирования данных — это классы и объекты.
Языки C++ и Ada 95 похожи тем, что реализация объектов у них может быть как динамической, так и статической, а проверка типов статическая.
При выборе первого языка программирования, среди всех большое преимущество имеет язык Eiffel, если сравнивать с языками, которым привита полная поддержка ООП.
1 Visual Basic (Basic)
Название языка происходит из начальных букв английского языка «Универсальный язык символического кодирования» (BASIC), основной, базовый. Дополнение «Для начинающих» к названию языка долго не оценивалось программистами, и даже сейчас, не смотря на наличие профессиональных изданий VB, сохраняется пренебрежительное отношение к этому уточнению.
Самый первый персональный компьютер IMB имел Бейсик 16-ти разрядный (BASICA), который потом, в свою очередь, сменил QUICK-BASIC и GW-BASIC компании Майкрософт. В первом был внедрен компилятор, который превратил Бейсик-программу в exe-файл, а так же был добавлен компилятор и убрана нумерация строк. В итоге фирмой Майкрософт выпустился VB 1.0 в 1992 г., который являлся несложным в использовании Windows 3.1., после выпускались VB 3.0, VB 4.0, VB 5.0, VB 6,0. Предпоследние две почти одинаковы, а в последней – добавлены некоторые функции и улучшено ядро. Так же существуют макросы для Microsoft Office (Excel, Word, и т.п), такой язык называется (Visual Basic for Application).
При использовании приложений Visual Basic во время запуска и в самой работе нельзя обойтись без библиотеки msvbvmX0.dll (стандартно присутствующая в каталоге Windows\System), тем самым они отличаются от всех обычных приложений.
Начинающие программисты могут с легкостью использовать Visual Basic, как и программисты со стажем могут создавать мощные программы на нем. В Visual Basic хорошо развита справочная система, с помощью которой можно получать ответы на возникшие вопросы в процессе создания приложений, и находить выход в сложных ситуациях.
По сути возможности VB не имеют ограничений, более того их можно самостоятельно расширять благодаря использованию доп. функций, так же есть возможность использовать библиотеки динамической компановки (DLL), такие библиотеки изначально могут писаться на любом языке программирования. То есть, программы могут быть как сложными информационными системами, так и являться небольшой средой для ввода данных. Но VB, конечно, есть и ограничения в виде: полноценную DLL библиотеку создать не удастся, а так же использовать ассемблер и драйвер VXD.
Интерфейсы GUIs перевернули индустрию компьютеров, теперь, вместо командной строки C:>, которая была стандартом для DOS пользователей – стало можно лицезреть «рабочий стол», который был напичкан значками запуска приложений и программ. В дополнение к этому, пользователи могли с легкость тыкать на них мышкой, а не прописывать вручную весь путь к нужному приложению командной строки. В Windows, как правило, программы имеют стандартный интерфейс пользователя. Это означает, что пользователи потратят больше времени на работу с приложением и меньше на изучение меню, диалоговых панелей и комбинации клавиш (Конечно, приложения различных версий Windows выглядят немного по-разному, так как стандарты сохраняются внутри версий Windows, а не между ними.
В то время как программисты испытывают смешанные чувства к GUIs, он нравится начинающим пользователям, поэтому от любых программ Windows ожидается соответствие модели GUI. Поэтому, если необходимо разработать программу для любой из версий Windows, программисту понадобится эффективное средство для разработки приложений с графическим интерфейсом пользователя.
За все это долгое время существовало лишь несколько таких средств разработки. До появления Visual Basic в 1991 году разработка приложений Windows была намного тяжелее процесса создания приложений для DOS. Программисты должны были позаботиться буквально обо всем, например, о работе с мышью, обработке событий меню, и даже отслеживать, щелкнул пользователь один либо два раза в конкретном месте экрана. Разработка приложений Windows требовала экспертных знаний по программированию на языке С и сотен строк кода для выполнения простейшие задач. Проблемы были даже у профессионалов. (Комплект Microsoft Windows Software Development Kit, необходимый в то время в дополнение к компилятору С, весил тогда около пяти килограммов).
С Visual Basic программирование в Windows не становится более эффективным, но оно становится более простым (в большинстве случаев).
В частности. Visual Basic позволяет добавлять к окнам поля ввода (text boxes), меню, командные кнопки (command buttons), переключатели (option buttons), флажки (check boxes), списки (list boxes), линейки прокрутки (scroll bars), a также диалоговые окна для выбора файла или каталога. Программист может использовать сетку (grid) для обработки табличных данных, организовать взаимодействие с другими приложениями Windows и доступ к базам данных. (Кстати, в Visual Basic такие компоненты обычно называют элементами управления.)
На экране одновременно может находиться несколько окон. Они должны иметь полный доступ к буферу обмена (clipboard) и к информации большинства приложений Windows, работающих в то же время. Можно использовать Visual Basic для взаимодействия с другими приложениями, работающими под управлением Windows, используя наиболее современную версию технологии OLE фирмы Microsoft.
Однако все более ранние версии Visual Basic могли в той или иной степени выполнять вышеописанные задачи. Что же особенного добавлено к последней версии Visual Basic? В двух словах ответ состоит в том, что Visual Basic теперь поддерживает элементы ActiveX.
2 Delphi (Pascal)
Концепция Delphi 1 была реализована в конце 1994 года, когда вышла первая версия среды разработки. В основу этого программного продукта легли концепции объектно-ориентированного программирования (ООП) на базе языка Object Pascal и визуального подхода к построению приложений.
После выхода Delphi 1 все компьютерные издания писали об этой среде, как об «убийце Visual Basic». Появление Delphi 2 (32-разрядной) ознаменовало новую эпоху, – появился доступ к возможностям программных интерфейсов Windows NT и Windows 95. Delphi 2 стала средством разработки полноценных приложений клиент/сервер. Вскоре Delphi 3 предоставила разработчикам средства создания распределенных многоуровневых приложений и полноценный инструментарий проектирования приложений для Internet и Intranet. Появилась полноценная поддержка com – модели объектов, ставшей краеугольным камнем современного программирования. Четвертая версия Delphi позволяет полностью интегрировать ваши разработки с объектами com. Поддержка архитектуры corba (common object request broker architecture) открывает перед приложениями, созданными в delphi для платформы wintel (windows + intel), мир других операционных систем (unix, os/2, wms).
Delphi представляет следующие новые свойства и усовершенствования:
– Новые расширения языка. В Delphi в язык Object Pascal включены динамические массивы, методы обработки переполнения, установка значения параметров по умолчанию, и многое другое;
–Менеджер Проекта. Новый менеджер проекта позволяет Вам объединять проекты, которые работают вместе в одну проектную группу. Это позволяет организовать как работу взаимозависимых проектов, таких как однозадачные и многозадачные приложения или dll, так и совместную работу исполняемых программ;
– Новый проводник. Новый проводник содержит выполняемые классы, навигацию по модулям, и браузер кода. Проводник кода делает создание классов проще. Также проводник позволяет быстро перемещаться через файлы модуля, а так же между интерфейсом и реализацией;
– Закрепляемые окна инструментов. IDE (Интегрированная Среда разработки) содержит более перенастраиваемую конфигурацию окон инструментов, которые можно закреплять с редактором кода;
–Улучшенная отладка. Интегрированный отладчик имеет много новых свойств, включая удаленную и многопроцессорную отладку, просмотр кода центрального процессора, инспекторов, усовершенствованные точки прерывания, отладчик специфических подменю и закрепленных окон;