Файл: «Классификация языков программирования высокого уровня».pdf
Добавлен: 16.06.2023
Просмотров: 371
Скачиваний: 2
Язык Java полностью изменил работу web-сайта. Если раньше web-страница обслуживалась удаленным сервером и с помощью web-браузера просто просматривались данные, то теперь web-браузеры используются для загрузки небольших программ, написанных на Java, и выполнения этих программ на компьютере пользователя. Вы можете взаимодействовать с Java-программами, так же как и с любой программой, запускаемой па компьютере. Все следы Java-программ удаляются сразу после завершения ее выполнения или после того, как пользователь покинет данную страницу. [1,с.275]
Существуют два вида Java-программ:
- Java-апплет. Это маленькая программа, перемещающаяся вместе с HTML – кодом и выполняемая компьютером пользователя.
- Java-приложение. Это полностью автономная программа, для выполнениякоторой не требуется web-браузер или HTML-код.
Большинство Java-программ представлено апплетами. [1,с.275]
Апплет – это небольшая прикладная программа на языке Java, которая может быть встроена в HTML-страницы, передана из сети вместе с документом как присоединение для его надлежащего представления у пользователя (например, «Календарь»). Апплеты отличаются от полных Java-приложений тем, что имеют ограничения по доступу к определенным ресурсам локального компьютера (таким, как файлы, модемы и др.) и запрет коммуникаций с другими компьютерами в сети (кроме того, с которого данный апплет послан). Такие приложения конфигурируются под собственный набор свойств (например, принтеры, драйверы видео, звука и т.д.). [20,с.250]
Для использования апплета нужен Web-браузер, поддерживающий язык Java и способный интерпретировать байтовые коды. [29,с.28]
В конце концов, основная задача Java — поместить исполняемый код на web-страницы, обеспечив возможность взаимодействия страницы с пользователем. Помимо написания апплетов можно создавать и автономные программы, выполняемые без web-браузера. Например, если вы хотите написать приложение управления арендуемой собственностью, запускаемое независимо от наличия подключения к Интернету, в качестве языка программирования можно использовать Java. [1,с.275]
Загрузка апплета напоминает вставку рисунка на Web-страницу. Апплет становится частью страницы, а текст обтекает занимаемое им пространство. Изображение, реализуемое апплетом, становится динамичным. [29,с.28]
Оно реагирует на команды пользователя, изменяет в зависимости от
них свой внешний вид и выполняет обмен данными между компьютером, на котором выполняется апплет, и компьютером, где этот апплет постоянно хранится. [29,с.28-29]
При работе с Java вы часто будете сталкиваться с понятием исполняемое содержание (executable content). Исполняемое содержание – это и есть все то, что представляет собой язык. Web – страница включает исполняемое содержание, которое посредством HTML в представленном виде Java – апплета. Содержание Java – кода существует на компьютере пользователя.
Когда разрабатывается код web – страницы, содержащий Java – апплеты, необходимо, чтобы этот код работал на удаленном компьютере независимо от того, что это за компьютер. В то время как большинство компиляторов осуществляют преобразование программ в машинно – зависимый код, средства разработки Java поступают иначе. Все Java – компиляторы преобразуют исходный текст программы специальный машинно – независимый модуль, называемый байт – код. Программное обеспечение браузера осуществляет преобразование байт – кода в машинный код, который может выполнять данный компьютер. Не компьютеры осуществляют чтение байт – кода, а браузер, поддерживающий Java. [1,с.277]
В информатике и программировании изменения происходят постоянно и с большой скоростью. Одним из самых значительных изменений за последние
двадцать лет стало появление общемировой сети Интернет и языка
программирования Java. [30,с.12]
3.2 Декларативные языки. Логические и функциональные
К логическим языкам относится язык Пролог.
Разработка языка Prolog началась в 1970 г. Аланом Кулмероэ и Филиппом Русселом в университете города Марсель, Франция. Они хотели создать язык, который мог бы делать логические заключения на основе заданного текста. Их работа была частично мотивирована желанием примирить использование логики в качестве декларативного языка представления знаний с процессуальным подходом к представлению знаний, который был популярен в Северной Америке в конце 1960-х и начале 1970-х годов. Название Prolog было выбрано Филиппом Русселом как аббревиатура от французского PROgrammation en LOGique (PROLOG) и первая реализация этого языка с использованием компилятора Николауса Вирта "AlgolW" была закончена в 1972 году.
Интерес к Prolog поднимался и затихал несколько раз, энтузиазм сменялся жёстким неприятием. Наиболее высокий интерес к языку Prolog, как к языку будущего, возник в 1980-х годах во время разработки японской национальной программы «компьютеры пятого поколения». В рамках этого проекта разработчики надеялись, что с помощью Prolog можно будет сформулировать новые принципы, которые приведут к созданию компьютеров более высокого уровня интеллекта. [40,с.4]
Пролог очень хорошо подходит для описания взаимоотношений между объектами. Поэтому Пролог называют реляционным языком. [41,с.11]
ПРОЛОГ является языком исчисления предикатов. Предикат – это логическая формула от одного или нескольких аргументов. [42,с.3]
Примеры предикатов: хищник (X) , ФИО (X,Y,Z)
Предикаты, которые нельзя разбить на отдельные компоненты, называют атомарными. Сложные формулы строятся путем комбинирования атомарных предикатов логическими соединителями И, ИЛИ и НЕ. Одноместный предикат при подстановке в него значения переменной становится «нульместным», т.е. высказыванием-предложением, которое является истинным или ложным: хищник (тигр). [42,с.3]
Алфавит логики первого порядка составляют следующие символы:
1. переменные (u, v, x, y, z);
2. константы (a, b, c, d);
3. функциональные символы (f и g);
4. предикатные символы (p, q и r);
5. пропозициональные константы истина и ложь (true и false);
6. логические связки отрицание, конъюнкция, дизъюнкция, импликация;
7. кванторы: существования, всеобщности;
8. вспомогательные символы (, ), ,. [41,с.15-16]
Программа на языке Prolog состоит из множества предложений (фраз). Каждое предложение может быть одного из трех типов: это либо факт, либо правило, либо запрос. Факт — это фраза без условий, утверждение о том, что соблюдается некоторое отношение. Он записывается как имя предиката, за которым следует заключенный в скобки список аргументов. Каждый факт должен заканчиваться точкой. [40,с.19]
Правило-это факт, истинность которого зависит от истинности других фактов. Состоит из головы и тела, разделенных знаком :- , который читается как «если» и соответствует импликации. Голова правила-это предикат, а тело правила-последовательность предикатов, разделенных запятыми. Правило должно заканчиваться точкой, а запятая в теле правила означает конъюнкцию (логическое И).
Запрос-это последовательность предикатов, разделенных запятыми или точкой с запятой и завершающаяся точкой. На естественном языке запятая соответствует союзу «и». Точка с запятой соответствует союзу «или».Предикат запроса называется целью. Простые запросы, не содержащие никаких переменных, допускают лишь два возможных ответа: "true" или "false". В случае ответа "true" говорят, что запрос завершился успехом, цель достигнута. Использование переменных в запросах позволяет задавать более сложные вопросы. [40,с.20]
ПРОЛОГ может использоваться при разработке экспертных систем, а также для следующих задач: доказательства теорем и вывода решений в задачах, создания пакетов символьной обработки при решении уравнений, дифференцировании, интегрировании и т. д., разработки упрощенных версий систем ИИ, создания естественно-языковых интерфейсов для существующих программ, перевода текстов с одного языка на другой, в том числе – с одного языка программирования на другой. [42,с.1-2]
В основе декларативных языков лежит формализованная человеческая логика. Человек лишь описывает решаемую задачу, а поиском решения занимается императивная система программирования. [41,с.10]
К функциональным языкам относят язык Лисп.
Работа со списками имеет свои особенности, связанные с необходимостью выполнении таких действий, как объединение и разделение списков, слияние, копирование, перестройка, обновление, формирование новых списков и т.п.
Все эти функции могут быть запрограммированы с помощью таких языков, как Мнемокод, Фортран, Алгол и др., однако существуют и специальные языки, ориентированные на обработку списков. К их числу относится Лисп– язык для обработки списков, созданный в 60 – х годах в Массачусетском технологическом институте (США). [23,с.186-187]
В нашей стране программирование знакомство с языком Лисп состоялось из первых рук. В конце 1968 года Джон Мак-Карти лично познакомил
программистов Москвы и Новосибирска с Лиспом, что побудило к реализации
отечественных версий языка. [24,с.117]
В общем случае под списком понимают конечный упорядоченный набор элементов информации. Простейшими примерами таких наборов могут служить: совокупность чисел, представляющих значение физической величины в различные моменты времени, перечень подразделений или сотрудников предприятий, оглавление книги и т.п. [23,с.187]
Под литерой будем понимать любой печатный знак из алфавита. Состав алфавита произволен. Пробел между печатными знаками также считается литерой. В рукописном тексте для большей четкости пробел изображают знаком —. В печатном тексте эта литера обнаруживается совершенно явственно, так как каждый печатный знак имеет определенное положение в строке. Переход с одной строки текста на другую рассматривается как пробел. [25,с.8]
Алфавит:
Буквы:ABCDEFGHIJKLMNOPQRSTUVБГДЖЗИЙЛПФЦЧШЩЫЬЭЮЯ
Так же это цифры: 012345678;ограничители лиспа: ( ) . — nl; прочие литеры: + — X / , : ; =
Простейший синтаксической единицей языка является атом – последовательность символов, заключенный между двумя разделителями, в качестве которых могут быть круглые скобки или пробелы. [25,с.8]
В языке программирования лисп атомы-это наборы символов и числа, т.е. те простейшие элементы. Из которых состоят боле сложные структуры данных-списки. Списки состоит из атомов. [20,с.257]
В различных реализациях на запись атомов накладываются те или иные ограничения. В частности, атом, начинающийся с цифры или со знака + или —, обычно изображает число и должен быть записан в соответствии с особыми правилами.
Атомы, имеющие фиксированный смысл в языке лисп, т. е. наименования стандартных или, как их еще называют, встроенных констант и функций, при некоторых условиях могут быть использованы программистом для обозначения других объектов, вводимых им самим. [25, с.9]
При выполнении большинства функций вначале вычисляются фактические параметры, а затем выполняются действия, предписанные данной функции. Такие - обычные. Однако есть функции, у которых вычисляются лишь некоторые фактические параметры, либо параметры вовсе не вычисляются. Такие функции- особыми. Аргументом обычной функции будем называть значение фактического параметра, а аргументом особой функции — сам фактический параметр. [26,с.7]
Одной из особых функций является QUOTE, эта функция имеет один фактический параметр, который и выдается в качестве значения, не будучи вычисленным. Эта функция нужна для того, чтобы явно задавать необходимые значения. [26,с.7]
Функция CAR. Эта функция выделяет первый элемент из значения своего единственного аргумента, если это значение — непустой список. Если же значение аргумента - атом, а не список, то значение функции CAR не определено. [25]
Функция cdr возвращает хвост списка, являющегося значением её единственного аргумента (хвостом, или остатком списка является список без своего первого элемента). [27,с.9]
Функции CAR и CDR позволяют добраться до любого элемента любого списка. Для упрощения записи таких многократных обращений к функциям CAR и CDR применяются наименования функций вида CAAR (двукратное обращение к CAR), CDAR (обращение сначала к CAR - внутреннее обращение, а затем к CDR), СADDAR и др.
Пустой список, который мы обозначали до сих пор так: ( ) , имеет второе обозначение, а именно NIL.Оба обозначения совершенно эквивалентны.
Атом NIL-это пример встроенной константы. Ее значением является пустой список, т. е. сам NIL. Это свойство атома NIL позволяет обходиться без функции QUOTE, когда нам нужно использовать в качестве значения сам этот атом. Другими словами, выражения
(QUOTE NIL) и NIL
эквивалентны и следует ползоваься вторым из них как более простым. [25,с15-16.]
Функция cons от двух аргументов с обращением (cons e1 e2) строит новый список, первым элементом которого является значение первого аргумента е1, а хвостом – значение второго аргумента е2. Эта функция включает заданный элемент (значение выражения е1) в начало списка, являющегося значением е2. Заметим, что функция-конструктор cons (сокращение от англ. construct) реализует обратное действие по отношению к car и cdr. [27,с.9]