Добавлен: 28.03.2023
Просмотров: 375
Скачиваний: 5
СОДЕРЖАНИЕ
Глава 1. Языки программирования
1.1. История развития языков программирования
1.2. Языки программирования высокого уровня
Глава 2. Обзор языков программирования высокого уровня
2.1 Классификация языков программирования высокого уровня
2.2 Процедурно-ориентированные языки
2.3 Предметно-ориентированные языки
Язык SQL предоставляет программисту следующие функциональные возможности:
1. Организация данных. SQL дает пользователю возможность изменять структуру представления данных, а также устанавливать отношения между элементами баз данных (БД).
2. Чтение данных. SQL дает пользователю или приложению возможность читать из БД содержащиеся в ней данные и пользоваться ими.
3. Обработка данных. SQL дает пользователю или приложению возможность изменять БД, т.е. добавлять в неё новые данные, а также удалять или обновлять уже имеющиеся в ней данные.
4. Управление доступом. С помощью SQL можно ограничить возможности пользователя по чтению и изменению данных и защитить их от несанкционированного доступа.
5. Совместное использование данных. SQL координирует совместное использование данных пользователями и работающими параллельно, чтобы они не мешали друг другу.
6. Целостность данных. SQL позволяет обеспечить целостность БД-ых, защищая ее от разрушения из-за несогласованных изменений или отказа системы.
Таким образом, SQL является достаточно мощным языком для взаимодействия с системой управления базами данных (СУБД). SQL — это легкий для понимания язык и в то же время универсальное программное средство управления данными.
Успех языку SQL принесли следующие его особенности:
- независимость от конкретных СУБД;
- переносимость с одной вычислительной системы на другую;
- наличие стандартов;
-реляционная основа;
- высокоуровневая структура;
- возможность выполнения специальных интерактивных запросов:
- обеспечение программного доступа к базам данных;
- возможность различного представления данных;
- полноценность как языка, предназначенного для работы с БД;
- возможность динамического определения данных;
- поддержка архитектуры клиент/сервер.
Все перечисленные выше факторы явились причиной того, что SQL стал стандартным инструментом для управления данными на персональных компьютерах.
3) Язык Пролог.
Prolog -- это логический язык программирования для символических, нечисловых вычислений. Он особенно хорошо приспособлен для решения проблем, которые касаются объектов и отношений между объектами. Сферой применения данного языка является решение логических задач. Для создания вычислительных, графически задач, реализации пользовательского интерфейса данный язык не предназначен.
Написание программ на языке Пролог существенно отличается от использования других языков программирования. Программа на Прологе не является реализацией некоторого алгоритма, а представляет собой запись на языке формальной логики. Таким образом, данный язык относится к описательным языкам программирования.
В декларативном языке Пролог программист описывает саму проблему и основные правила ее решения, оставляя за системой поиск конкретных действий, приводящих к решению. Поэтому Пролог справедливо считается языком более высокого уровня, чем Си или Паскаль. Внешним выражением этого факта является то, что текст программы на Прологе может быть в десять раз короче текста программы на Паскале, решающей ту же задачу.
Пролог может использоваться при разработке экспертных систем, а также для следующих задач:
- доказательства теорем и вывода решений в задачах;
- дифференцировании, интегрировании и т. д.;
- разработки упрощенных версий систем ИИ;
-создания естественно-языковых интерфейсов для существующих программ;
- перевода текстов с одного языка на другой, в том числе - с одного языка программирования на другой;
- создания базы данных.
Логическая база данных на Prolog строится из множества фактов и правил. Особую роль в интерпретаторе на Prolog играют конкретные запросы к базам знаний, на которые система логического программирования генерирует ответы «истина» и «ложь». Для обобщённых запросов с переменными в качестве аргументов созданная система на Prolog выводит конкретные данные в подтверждение истинности обобщённых сведений и правил вывода.
4) HyperText Markup Language (HTML) - язык разметки гипертекста - предназначен для написания гипертекстовых документов, публикуемых в World Wide Web. Дадим определения некоторым понятиям.
Гипертекстовый документ - это текстовый файл, имеющий специальные метки, называемые тегами, которые впоследствии опознаются браузером и используются им для отображения содержимого файла на экране компьютера. С помощью этих меток можно выделять заголовки документа, изменять цвет, размер и начертание букв, вставлять графические изображения и таблицы. Но основным преимуществом гипертекста перед обычным текстом является возможность добавления к содержимому документа гиперссылок - специальных конструкций языка HTML, которые позволяют щелчком мыши перейти к просмотру другого документа.
Как уже отмечалось, HTML-документ содержит символьную информацию. Одна ее часть - собственно текст, т. е. данные, составляющие содержимое документа. Другая -- теги (markup tags), называемые также флагами разметки, -- специальные конструкции языка HTML, используемые для разметки документа и управляющие его отображением. Именно теги языка HTML определяют, в каком виде будет представлен текст, какие его компоненты будут исполнять роль гипертекстовых ссылок, какие графические или мультимедийные объекты должны быть включены в документ. Графическая и звуковая информация, включаемая в HTML-документ, хранится в отдельных файлах. Программы просмотра HTML-документов (браузеры) интерпретируют флаги разметки и располагают текст и графику на экране соответствующим образом. Для файлов, содержащие HTML-документы, приняты расширения .htm или .html.
В этом параграфе мы рассмотрели четыре языка предметно-ориентированного типа. Языков программирования этого типа существует великое множество и каждый является узкоспециализированным для каждого типа задач.
2.4 Объектно-ориентированные языки
Следующий тип в нашей классификации языков программирования – объектно-ориентированные. Зачастую в случае использования языков программирования высокого уровня, это будет один из языков данной классификации. Рассмотрим их подробнее.
1) Язык C++ произошел от языка С в начале 1980-х, когда Бьёрн Страуструп, сотрудник фирмы Bell Laboratories, усовершенствовал язык С под свои нужды. Программист добавил к С возможность работы с типами данных (классами) и объектами.
С++ содержит средства для создания программ практически любого назначения, от низкоуровневых до сложных программных комплексов разного назначения. Выделим достоинства языка:
1. С++ поддерживает разные технологии и стили программирования, включая объектно-ориентированное, обобщенное и метапрограммирование;
2. Более надежное освобождение ресурсов путем автоматического вызова деструкторов при уничтожении объектов;
3. Возможность создавать пользовательские функции-операторы, позволяющие записывать выражения над пользовательскими типами в алгебраической форме;
4. Важным достоинством является предсказуемое выполнение программ, что является важным для систем реального времени;
5. При помощи шаблонов можно создавать обобщенные контейнеры и алгоритмы для разных типов данных;
6. При помощи шаблонов и множественного наследия можно имитировать классы-примеси и комбинаторную параметризацию библиотек;
7. Поддержка понятия физической и логической константности, что делает программу надежнее, так как позволяет диагностировать ошибочные попытки изменения переменных;
8. C++ - кросплатформенный язык, его стандарт накладывает минимальные требования на компьютер для запуска скомпилированной программы. На С++ разрабатывают программы для различных платформ и систем с помощью компиляторов для большого количества платформ;
9. В С++ существует возможность низкоуровневой работы с адресами памяти, однако, при неосторожном использовании это легко может превратиться в недостаток;
10. Язык С++ спроектирован так, чтобы у программиста был максимальный контроль над всеми аспектами структуры и порядка выполнения программы;
11. Существующий код на C может с минимальными изменениями использоваться в С++.
Часть недостатков С++ унаследовал от C, это:
1. Синтаксис, вызывающий ошибки - операцию сравнения и присваивания легко перепутать, тем более присваивание возвращает значение, поэтому конструкция с присваиванием вместо выражения не будет восприниматься компилятором как ошибка, в циклах и ветвлениях так же существует такая ошибка;
2. Макросы являются потенциально опасным средством, несмотря на то что их необходимость не велика, ввиду наличия шаблонов и встроенных функций;
3. Неинтуитивные преобразования некоторых типов;
4. Примитивный, унаследованный от С препроцессор;
5. Плохая поддержка модульности. Подключение внешнего модуля через заголовочную вставку серьезно замедляет компиляцию при большом количестве модулей, что решено во многих компиляторах прекомпиляцией заголовочных файлов.
У языка С++ имеются так же и собственные недостатки:
6. В С++ существует много возможностей, нарушающих принципы безопасности преобразования типов, что приводит к труднонаходимым ошибкам. Частой проблемой в С++ являются проблемы "переполнения буфера";
7. C++ является слишком сложным и большим языком, из-за чего есть трудности с его изучением;
8. Недостаточность информации о типах данных во время компиляции программы;
9. Шаблоны могут привести к коду очень большого объема;
10. Многие схожие конструкции с С, выполняющие те же самые функции могут сбить с толку программиста;
11. Сложность и ограниченность метапрограммирования на основе шаблонов С++;
12. При заявлении, что С++ мультипарадигменный язык, в нем отсутствует явная поддержка функционального программирования. Отчасти это решено различными библиотеками, использующими средства метапрограммирования для расширения языка;
13. Некоторые считают отсутствие встроенной системы сборки мусора недостатком языка.
2) Язык С#. Спустя долгий срок в 2000 году, корпорация Microsoft выпустила C# («Си шарп»), основным постулатом которого является высказывание: «всякая сущность есть объект». Язык основан на строгой компонентной архитектуре и реализует передовые механизмы обеспечения безопасности кода
К принципиально важным решениям, которые были реализованы, можно отнести следующие:
- компонентно-ориентированный подход к программированию;
- свойства как средство инкапсуляции данных );
- обработка событий (имеются расширения, в том числе в части обработки исключений, в частности, оператор try);
- унифицированная система типизации (соответствует идеологии Microsoft .NET в целом);
- делегаты (delegate – развитие указателя на функцию в языках C и C++);
- индексаторы (indexer – операторы индекса для обращения к элементам класса-контейнера); - перегруженные операторы ;
- оператор foreach (обработка всех элементов классов-коллекций);
- механизмы boxing и unboxing для преобразования типов;
- атрибуты (средство оперирования метаданными в COM-модели);
- прямоугольные массивы (набор элементов с доступом по номеру индекса и одинаковым количеством столбцов и строк).
Исходя из особенностей языка программирования C#, сформулируем основные преимущества данного языка.
1. Язык программирования C# претендует на подлинную объектную ориентированность (всякая языковая сущность претендует на то, чтобы быть объектом);
2. Компонентно-ориентированный подход к программированию, способствующий меньшей машинно-архитектурной зависимости результирующего программного кода, гибкости, переносимости и легкости повторного использования (фрагментов) программ;
3. Ориентация на безопасность кода (в сравнении с С и С++);
4. Унифицированная система типизации;
5. Расширенная поддержка событийно-ориентированного программирования.
Несмотря на достоинства, язык С# имеет некоторые недостатки, такие как:
1. Довольно сложный синтаксис (75% из Java, 10% из C++, 5% из Visual Basic);
2. Мало свежих концептуальных идей (приблизительно менее чем 10% конструкций языка);
3. Относительно невысокая производительность (намного медленнее, чем язык C, но сравним с Java);
4. Не кросс-платформенный язык. Так как С# разработан компанией Microsoft, то и работает он только под операционной системой Windows, хотя в данный момент уже разрабатывается кросс-платформенная версия данного языка.
Ввиду объектно-ориентированного дизайна, C# является хорошим выбором для быстрого конструирования различных компонентов - от высокоуровневой бизнес логики до системных приложений, использующих низкоуровневый код. Также следует отметить, что C# является и Web ориентированным - используя простые встроенные конструкции языка компоненты могут быть преобразованы в Web сервисы. Дополнительными возможностями языка C# - использование Web технологий, таких как: XML (Extensible Markup Language) и SOAP (Simple Object Access Protocol). Среда разработки Web сервисов позволяет программисту смотреть Web приложения, как на родные C# объекты, что дает возможность разработчикам соотнести имеющиеся Web сервисы с их познаниями в объектно-ориентированном программировании.