- Главная
- Информатика
- Языки программирования высокого уровня
Содержание
- 2. Язык программирования — формальная знаковая система, предназначенная для записи программ. Программа обычно представляет собой некоторый алгоритм
- 3. Список языков программирования: 1. Неклассифицированные языки 2. XML-подобные языки программирования 3. Структурные языки программирования 4. Процедурные
- 4. Введение Неклассифицированные языки: ABAP/4 Awk BCPL FoxPro Tcl/Tk ML MQL4 PostScript PL/SQL Clarion Clean Clipper Curry
- 5. Введение XML-подобные языки программирования ApplicationXML Структурные языки программирования Алгол Алгол 68 Basic QBASIC Фортран REXX sh
- 6. Введение Процедурные языки программирования Алгоритмический язык Би (язык программирования) Си КОБОЛ Limbo Lua Maple MATLAB Модула-2
- 7. Функциональные языки программирования Лисп Сat (Stack-oriented programming language) Лого Dylan Haskell OCaml Scheme РЕФАЛ АПЛ J
- 8. Язык программирования может быть представлен в виде набора спецификаций, определяющих его синтаксис и семантику. Для многих
- 9. Во внутреннем представлении обычно данные в современных цифровых компьютерах сохраняются в бинарном виде (в двоичном виде).
- 10. Системы типов в языках высокого уровня позволяют определять сложные, составные типы, так называемые структуры данных. Как
- 11. Существует несколько подходов к определению семантики языков программирования. Наиболее широко распространены разновидности следующих: операционного (или так
- 12. Язык программирования строится в соответствии с той или иной базовой моделью вычислений. Несмотря на то, что
- 13. Компилируемые и интерпретируемые языки Языки программирования могут быть разделены на компилируемые и интерпретируемые. Программа на компилируемом
- 14. Высокоуровневый язык программирования - язык программирования, разработанный для быстроты и удобства использования программистом. Основная черта высокоуровневых
- 15. Первый реализованный язык программирования высокого уровня созданный Джимом Бэкусом в 50-е годы. Программисты, разрабатывавшие программы исключительно
- 16. КОБОЛ (COBOL, COmmon Business Oriented Language), язык программирования третьего поколения (первая версия в 1959), предназначенный, в
- 17. Алгол (англ. Algol от англ. algorithmic - алгоритмический и англ. language - язык) - название ряда
- 18. Pascal Один из наиболее известных языков программирования, широко применяется в промышленном программировании, обучении программированию в высшей
- 19. Паскаль был создан как язык для обучения процедурному программированию (хотя, по словам Вирта, язык нельзя считать
- 20. Тем не менее, первоначально язык имел ряд ограничений: невозможность передачи функциям массивов переменной длины, отсутствие нормальных
- 21. Pascal Никлаус Вирт понимал недостатки созданного им языка, но, следуя традициям академической среды и собственным принципам,
- 22. Важным шагом в развитии языка является появление свободного языка Паскаль GNU Pascal, который не только вобрал
- 23. BASIC — сокращение от англ. Beginner's All-purpose Symbolic Instruction Code — универсальный код символических инструкций для
- 24. При проектировании языка использовались следующие восемь принципов, новый язык должен: 1.быть простым в использовании для начинающих
- 25. Язык был основан частично на Фортран II и частично на Алгол-60, с добавлениями, делающими его удобным
- 26. Зрелость В этот период было создано несколько новых версий Бейсика. Майкрософт продавала несколько версий Бейсик для
- 27. Однако, начиная с конца 80-х, новые компьютеры стали намного более сложными и предоставляли возможности (такие как
- 28. Пролог (Prolog) — язык логического программирования, основанный на логике дизъюнктов Хорна, представляющей собой подмножество логики предикатов
- 29. Cи++ представляет собой интересный эксперимент по адаптации возможностей объектной технологии к традиционному языку программирования. Бьерн Страуструп
- 30. Виртуальные функции предоставляют один из возможных путей реализации полиморфизма. Разработчик языка может сделать выбор в пользу
- 31. SQL (англ. Structured Query Language - язык структурированных запросов) -универсальный компьютерный язык, применяемый для создания, модификации
- 32. SQL
- 33. Со времени создания первых программируемых машин человечество придумало уже более восьми с половиной тысяч языков программирования.
- 35. Скачать презентацию
Слайд 2 Язык программирования — формальная знаковая система, предназначенная для записи программ. Программа обычно
Язык программирования — формальная знаковая система, предназначенная для записи программ. Программа обычно
Введение
Создатели языков по-разному толкуют понятие язык программирования. К наиболее распространенным утверждениям, признаваемым большинством разработчиков, относятся следующие:
Функция: язык программирования предназначен для написания компьютерных программ, которые применяются для передачи компьютеру инструкций по выполнению того или иного вычислительного процесса и организации управления отдельными устройствами.
Задача: язык программирования отличается от естественных языков тем, что предназначен для передачи команд и данных от человека компьютеру, в то время, как естественные языки используются для общения людей между собой. В принципе, можно обобщить определение «языков программирования» — это способ передачи команд, приказов, четкого руководства к действию; тогда как человеческие языки служат также для обмена информацией.
Исполнение: язык программирования может использовать специальные конструкции для определения и манипулирования структурами данных и управления процессом вычислений.
Слайд 3 Список языков программирования:
1. Неклассифицированные языки
2. XML-подобные языки программирования
3.
Список языков программирования:
1. Неклассифицированные языки
2. XML-подобные языки программирования
3.
4. Процедурные языки программирования
5. Логические языки программирования
6. Программирование в ограничениях
7. Объектно-ориентированные языки программирования
8. Функциональные языки программирования
9. Языки программирования для промышленной автоматизации
10. Эзотерические языки программирования
11. Стековые языки
12. Параллельные языки программирования
Введение
Классы языков программирования:
Функциональные
Императивные
Стековые
Процедурные
Векторного программирования
Аспектно-ориентированные
Декларативные
Динамические
Учебные. Описания интерфейсов
Прототипные
Объектно-ориентированные
Рефлексивные
Логического программирования
Параллельного программирования
Сценарные (скриптовые)
Эзотерические
Слайд 4Введение
Неклассифицированные языки:
ABAP/4
Awk
BCPL
FoxPro
Tcl/Tk
ML
MQL4
PostScript
PL/SQL
Clarion
Clean
Clipper
Curry
Gentee
GPSS
DataFlex
Erlang
JOVIAL
Jython
Mercury
Linda
Occam
ПЛ/1
PL/M
Pixilang
Планкалкюль
Scala
xBase
Progress 4gl
X++
Sieve
PureBasic — компилируемая модификация Basic
Ассемблеры
Visual DataFlex
Робик
Рапира
УА (Упрощённый Алгол)
Nemerle
ДРАКОН
ORACLE
Введение
Неклассифицированные языки:
ABAP/4
Awk
BCPL
FoxPro
Tcl/Tk
ML
MQL4
PostScript
PL/SQL
Clarion
Clean
Clipper
Curry
Gentee
GPSS
DataFlex
Erlang
JOVIAL
Jython
Mercury
Linda
Occam
ПЛ/1
PL/M
Pixilang
Планкалкюль
Scala
xBase
Progress 4gl
X++
Sieve
PureBasic — компилируемая модификация Basic
Ассемблеры
Visual DataFlex
Робик
Рапира
УА (Упрощённый Алгол)
Nemerle
ДРАКОН
ORACLE
Слайд 5Введение
XML-подобные языки программирования
ApplicationXML
Структурные языки программирования
Алгол
Алгол 68
Basic
QBASIC
Фортран
REXX
sh
Фокал
Введение
XML-подобные языки программирования
ApplicationXML
Структурные языки программирования
Алгол
Алгол 68
Basic
QBASIC
Фортран
REXX
sh
Фокал
Слайд 6Введение
Процедурные языки программирования
Алгоритмический язык
Би (язык программирования)
Си
КОБОЛ
Limbo
Lua
Maple
MATLAB
Модула-2
Паскаль
Логические языки программирования
Prolog
Введение
Процедурные языки программирования
Алгоритмический язык
Би (язык программирования)
Си
КОБОЛ
Limbo
Lua
Maple
MATLAB
Модула-2
Паскаль
Логические языки программирования
Prolog
Слайд 7Функциональные языки программирования
Лисп
Сat (Stack-oriented programming language)
Лого
Dylan
Haskell
OCaml
Scheme
РЕФАЛ
АПЛ
J
Hope
Введение
Языки программирования для промышленной автоматизации
(стандарта IEC61131-3)
FBD
IL
ST
Функциональные языки программирования
Лисп
Сat (Stack-oriented programming language)
Лого
Dylan
Haskell
OCaml
Scheme
РЕФАЛ
АПЛ
J
Hope
Введение
Языки программирования для промышленной автоматизации
(стандарта IEC61131-3)
FBD
IL
ST
Sequential Function Chart
Ladder Diagram
SPCLK
Эзотерические языки программирования
Byter
Brainfuck
Befunge
INTERCAL
FALSE
Whitespace
Piet
Стековые языки
PostScript
Forth
Параллельные языки программирования
MC#
Слайд 8
Язык программирования может быть представлен в виде набора спецификаций, определяющих
Язык программирования может быть представлен в виде набора спецификаций, определяющих
Для многих широко распространённых языков программирования созданы международные стандарты. Специальные организации проводят регулярное обновление и публикацию спецификаций и формальных определений соответствующего языка. В рамках таких комитетов продолжается разработка и модернизация языков программирования и решаются вопросы о расширении или поддержке уже существующих и новых языковых конструкций.
Стандартизация языков программирования
Слайд 9
Во внутреннем представлении обычно данные в современных цифровых компьютерах сохраняются в бинарном
Во внутреннем представлении обычно данные в современных цифровых компьютерах сохраняются в бинарном
Особая система, по которой данные организуются в программе, эта система типов языка программирования; разработка и изучение систем типов известна под названием теория типов. Языки могут быть классифицированы как системы со статической типизацией и языки с динамической типизацией.
Статически-типизированные языки могут быть в дальнейшем подразделены на языки с обязательной декларацией, где каждая переменная и объявление функции имеет обязательное объявление типа, и языки с выводимыми типами. Иногда динамически-типизированные языки называются латентно типизированными
Типы данных
Слайд 10
Системы типов в языках высокого уровня позволяют определять сложные, составные типы, так
Системы типов в языках высокого уровня позволяют определять сложные, составные типы, так
Основные структуры данных (списки, очереди, хэш-таблицы, двоичные деревья и пары) часто представлены особыми синтаксическими конструкциями в языках высокого уровня. Такие данные структурируются автоматически.
Структуры данных
Слайд 11
Существует несколько подходов к определению семантики языков программирования.
Наиболее широко распространены разновидности следующих:
Существует несколько подходов к определению семантики языков программирования.
Наиболее широко распространены разновидности следующих:
При описании семантики в рамках операционного подхода обычно исполнение конструкций языка программирования интерпретируется с помощью некоторой воображаемой (абстрактной) ЭВМ.
Деривационная семантика описывает последствия выполнения конструкций языка с помощью языка логики и задания пред- и постусловий. Денотационная семантика оперирует понятиями, типичными для математики - множества, соответствия и др.
Семантика языков программирования
Слайд 12
Язык программирования строится в соответствии с той или иной базовой моделью
Язык программирования строится в соответствии с той или иной базовой моделью
Несмотря на то, что большинство языков ориентировано на так называемую императивную модель вычислений, задаваемую так называемой фон-неймановской архитектурой ЭВМ, существуют и другие подходы. Прежде всего следует упомянуть языки со стековой вычислительной моделью (Forth, Factor, Postscript и др.), а также функциональное (Лисп, Haskell, ML и др.) и логическое программирование
В настоящее время также активно развиваются проблемно-ориентированные, декларативные и визуальные языки программирования.
Парадигмы программирования
Слайд 13Компилируемые и интерпретируемые языки
Языки программирования могут быть разделены на компилируемые и
Компилируемые и интерпретируемые языки
Языки программирования могут быть разделены на компилируемые и
Программа на компилируемом языке при помощи специальной программы компилятора преобразуется (компилируется) в набор инструкций для данного типа процессора (машинный код) и далее записывается в исполняемый файл, который может быть запущен на выполнение как отдельная программа. Другими словами, компилятор переводит программу с языка высокого уровня на низкоуровневый язык, понятный процессору.
Если программа написана на интерпретируемом языке, то интерпретатор непосредственно выполняет (интерпретирует) ее текст без предварительного перевода. При этом программа остается на исходном языке и не может быть запущена без интерпретатора. Можно сказать, что процессор компьютера — это интерпретатор машинного кода.
Кратко говоря, компилятор переводит программу на машинный язык сразу и целиком, создавая при этом отдельную программу, а интерпретатор переводит на машинный язык прямо во время исполнения программы.
Разделение на компилируемые и интерпретируемые языки является несколько условным. Так, для любого традиционно компилируемого языка, как, например, Паскаль, можно написать интерпретатор. Кроме того, большинство современных «чистых» интерпретаторов не исполняют конструкции языка непосредственно, а компилируют их в некоторое высокоуровневое промежуточное представление (например, с разыменованием переменных и раскрытием макросов).
Для любого интерпретируемого языка можно создать компилятор-например, язык Лисп, изначально интерпретируемый, может компилироваться без каких бы то ни было ограничений. Создаваемый во время исполнения программы код может так же динамически компилироваться во время исполнения
Как правило, скомпилированные программы выполняются быстрее и не требуют для выполнения дополнительных программ, так как уже переведены на машинный язык. Вместе с тем при каждом изменении текста программы требуется ее перекомпиляция, что создает трудности при разработке. Кроме того, скомпилированная программа может выполняться только на том же типе компьютеров и, как правило, под той же операционной системой, на которую был рассчитан компилятор. Чтобы создать исполняемый файл для машины другого типа, требуется новая компиляция. Интерпретируемые языки обладают некоторыми специфическими дополнительными возможностями (см. выше), кроме того, программы на них можно запускать сразу же после изменения, что облегчает разработку. Программа на интерпретируемом языке может быть зачастую запущена на разных типах машин и операционных систем без дополнительных усилий.
Однако интерпретируемые программы выполняются заметно медленнее, чем компилируемые, кроме того, они не могут выполняться без дополнительной программы-интерпретатора.
Слайд 14 Высокоуровневый язык программирования - язык программирования, разработанный для быстроты и удобства использования
Высокоуровневый язык программирования - язык программирования, разработанный для быстроты и удобства использования
Так, высокоуровневые языки стремятся не только облегчить решение сложных программных задач, но и упростить сортирование программного обеспечения. Использование разнообразных трансляторов и интерпретаторов обеспечивает связь программ, написанных при помощи языков высокого уровня, с различными операционными системами и оборудованием, в то время как их исходный код остаётся, в идеале, неизменным.
Языки высокого уровня
Слайд 15 Первый реализованный язык программирования высокого уровня созданный Джимом Бэкусом в 50-е годы.
Первый реализованный язык программирования высокого уровня созданный Джимом Бэкусом в 50-е годы.
Языки высокого уровня
Fortran
Слайд 16 КОБОЛ (COBOL, COmmon Business Oriented Language), язык программирования третьего поколения (первая версия
Cobol
Разработчиком первого единого стандарта Кобола являлась Грейс Хоппер. Это компилируемый язык для применения в экономической области и решения бизнес-задач, разработанный в начале 60-х годов. Он отличается большой "многословностью"-его операторы выглядят как обычные английские фразы. В Коболе были реализованы очень мощные средства работы с большими объемами данных ,хранящимися на различных внешних носителях. На этом языке создано очень много различных приложений, которые активно эксплуатируются и сегодня. Достаточно сказать, что наибольшую зарплату в США получают программисты на Коболе.
Слайд 17 Алгол (англ. Algol от англ. algorithmic - алгоритмический и англ. language -
Алгол (англ. Algol от англ. algorithmic - алгоритмический и англ. language -
Algol
Слайд 18Pascal
Один из наиболее известных языков программирования, широко применяется в промышленном программировании,
Pascal
Один из наиболее известных языков программирования, широко применяется в промышленном программировании,
Слайд 19 Паскаль был создан как язык для обучения процедурному программированию (хотя, по словам
Паскаль был создан как язык для обучения процедурному программированию (хотя, по словам
Pascal
Особенностями языка являются строгая типизация и наличие средств структурного (процедурного) программирования. Паскаль был одним из первых таких языков. По мнению Н. Вирта, язык должен способствовать дисциплинированию программирования, поэтому, наряду со строгой типизацией, в Паскале сведены к минимуму возможные синтаксические неоднозначности, а сам синтаксис автор постарался сделать интуитивно понятным даже при первом знакомстве с языком.
Слайд 20 Тем не менее, первоначально язык имел ряд ограничений: невозможность передачи функциям массивов
Тем не менее, первоначально язык имел ряд ограничений: невозможность передачи функциям массивов
Pascal
Необходимо заметить, что многие недостатки языка не проявляются или даже становятся достоинствами при обучении программированию. Кроме того, по сравнению с основным языком программирования в академической среде 70-х (которым был Фортран, обладавший гораздо более существенными недостатками), Паскаль представлял собой значительный шаг вперёд. В начале 1980-х годов в СССР для обучения школьников основам информатики и вычислительной техники академик А. П. Ершов разработал алголо-паскалеподобный «алгоритмический язык».
Слайд 21Pascal
Никлаус Вирт понимал недостатки созданного им языка, но, следуя традициям академической
Pascal
Никлаус Вирт понимал недостатки созданного им языка, но, следуя традициям академической
Наиболее известной реализацией Паскаля являлась система Turbo Pascal (выросшая затем в Borland Pascal для DOS/Windows и далее в Delphi) фирмы Borland, в которой использовались значительные расширения языка. Благодаря появлению развитых диалектов, язык стал богаче, но в отсутствие отраслевой стандартизации, потерял переносимость и общность (только в 1995 году появилась совместимая с Borland Pascal версия среды разработки Virtual Pascal для OS/2 и впоследствие Linux, в 1998 году Kylix — Delphi для Linux, в настоящее время оба этих проекта фактически заморожены).
Слайд 22 Важным шагом в развитии языка является появление свободного языка Паскаль GNU Pascal,
Важным шагом в развитии языка является появление свободного языка Паскаль GNU Pascal,
В настоящий момент пользуются популярностью такие версии языка как TMT Pascal, Free Pascal и GNU Pascal. Продолжает использоваться и Borland Pascal.
Pascal
Слайд 23 BASIC — сокращение от англ. Beginner's All-purpose Symbolic Instruction Code — универсальный
BASIC — сокращение от англ. Beginner's All-purpose Symbolic Instruction Code — универсальный
Был разработан в 1963 профессорами Дартмутского колледжа Томасом Куртцом (Thomas E. Kurtz, 1928-) и Джоном Кемени (John G. Kemeny, 1926—1993). Язык предназначался для обучения программированию и получил широкое распространение в виде различных диалектов, прежде всего, как язык для домашних микрокомпьютеров.
Бейсик был спроектирован так, чтобы студенты могли писать программы, используя терминалы с разделением времени. Он создавался как решение для проблем, связанных со сложностью более старых языков. Он предназначался для более «простых» пользователей, не столько заинтересованных в скорости программ, сколько просто в возможности использовать компьютер для решения своих задач.
BASIC
Слайд 24При проектировании языка использовались следующие восемь принципов, новый язык должен:
1.быть простым в
При проектировании языка использовались следующие восемь принципов, новый язык должен:
1.быть простым в
2.быть языком программирования общего назначения
предоставлять возможность расширения функциональности, доступную опытным программистам
3.быть интерактивным
4.предоставлять ясные сообщения об ошибках
5.быстро работать на небольших программах
6.не требовать понимания работы аппаратного обеспечения
7.защищать пользователя от операционной системы
BASIC
Слайд 25 Язык был основан частично на Фортран II и частично на Алгол-60, с
Язык был основан частично на Фортран II и частично на Алгол-60, с
Взрывной рост
Несмотря на то, что язык уже использовался на нескольких миникомпьютерах, его настоящее распространение началось с его появления на микрокомпьютере Altair 8800. Многие языки программирования были слишком большими чтобы поместиться в небольшую память, которую пользователи таких машин могли себе позволить. Для машин с таким медленным носителем как бумажная лента (позднее — аудиокассета) и без подходящего текстового редактора такой небольшой язык как Бейсик был отличной находкой.
BASIC
Слайд 26Зрелость
В этот период было создано несколько новых версий Бейсика. Майкрософт продавала несколько
Зрелость
В этот период было создано несколько новых версий Бейсика. Майкрософт продавала несколько
BASIC
Слайд 27 Однако, начиная с конца 80-х, новые компьютеры стали намного более сложными и
Однако, начиная с конца 80-х, новые компьютеры стали намного более сложными и
Вторую жизнь Бейсик получил с появлением Visual Basic от Майкрософт. Хотя и трудно согласиться, что этот язык — действительно Бейсик (несмотря на множество привычных ключевых слов), спустя некоторое время он стал одним из наиболее часто используемых языков на платформе Windows. Майкрософт создала вариант под названием WordBasic и использовала его в MS Word до появления Word 97. Вариант Visual Basic for Applications (VBA) был встроен в Excel 5.0 в 1993 году, затем в Access 95 в 1995-ом, а после и во все остальные инструменты, входящие в пакет Office — в 1997-ом. Internet Explorer 3.0 и выше, а также Microsoft Outlook включали интерпретатор языка VBScript. В полный вариант пакета OpenOffice также включён интерпретатор Бейсика.
Бейсик используется в некоторых моделях программируемых калькуляторов. Например, он встроен в отечественный калькулятор «Электроника МК-85».
BASIC
Слайд 28 Пролог (Prolog) — язык логического программирования, основанный на логике дизъюнктов Хорна, представляющей
Пролог (Prolog) — язык логического программирования, основанный на логике дизъюнктов Хорна, представляющей
Базовым принципом языка является равнозначность представления программы и данных (декларативность), отчего утверждения языка одновременно являются и записями, подобными записям в базе данных, и правилами, несущими в себе способы их обработки. Сочетание этих качеств приводит к тому, что по мере работы системы Пролога знания (и данные и правила) накапливаются. Поэтому Пролог-системы считают естественной средой для накопления базы знаний.
Пролог критикуется в первую очередь за свою недостаточную гибкость, отчего решения на обычных языках программирования (типа C++, Java) в сочетании с базами данных оказываются более технологичными, чем аналогичные решения на Прологе. Негибкость заключается в трудности изучения языка, более высоких требований к квалификации программиста на Прологе, трудности отладки программы, неразвитости технологии программирования, плохой контролируемости промежуточных результатов.
Prolog
Слайд 29 Cи++ представляет собой интересный эксперимент по адаптации возможностей объектной технологии к традиционному
Cи++ представляет собой интересный эксперимент по адаптации возможностей объектной технологии к традиционному
Полиморфизм - основополагающая концепция объектно-ориентированного программирования. В языке Си++ ключевое слово virtual предоставляет функции возможность стать полиморфической, если она будет переписана (переопределена) в одном классе-потомке или более. Однако слово virtual отнюдь не является необходимым, так как любая функция, переопределенная (overriden) в классе-потомке, может быть полиморфической. Компилятору только требуется генерировать коммутирующий код для истинно полиморфических процедур.
Если автор родительского класса в языке Си++ не предвидит, что класс-потомок захочет переопределить функцию, то он не сможет сделать ее и полиморфической. В этом заключается наиболее серьезный порок Си++, поскольку снижается гибкость программных компонентов, а следовательно, и способность создавать адаптируемые и расширяемые библиотеки.
Си++ также позволяет функциям быть перегруженными (overloaded); в такой ситуации вызов нужной функции зависит от аргументов. Различие между перегруженными и полиморфическими (переопределенными) функциями состоит в том, что в перегруженных функциях нужная определяется при компиляции, а в случае полиморфических определяется при выполнении.
CИ++
Слайд 30 Виртуальные функции предоставляют один из возможных путей реализации полиморфизма. Разработчик языка может
Виртуальные функции предоставляют один из возможных путей реализации полиморфизма. Разработчик языка может
CИ++
Слайд 31 SQL (англ. Structured Query Language - язык структурированных запросов) -универсальный компьютерный язык,
SQL (англ. Structured Query Language - язык структурированных запросов) -универсальный компьютерный язык,
SQL основывается на реляционной алгебре.
Целью разработки было создание простого непроцедурного языка, которым мог воспользоваться любой пользователь, даже не имеющий навыков программирования. Собственно разработкой языка запросов занимались Дональд Чэмбэрлин (Donald D. Chamberlin) и Рэй Бойс (Ray Boyce). Пэт Селинджер (Pat Selinger) занималась разработкой стоимостного оптимизатора (англ. cost-based optimizer), Рэймонд Лори (Raymond Lorie) занимался компилятором запросов.
Как и с многими стандартами, имеющими место в IT-индустрии, с языком SQL возникла проблема, что в прошлом многие производители использующего SQL ПО решили, что функционал в текущей (на тот момент времени) версии стандарта недостаточен (что, в принципе, для ранних версий SQL было в некотором роде справедливо) и его желательно расширить. Что и приводит в данный момент к тому, что у разных производителей СУБД в ходу разные диалекты SQL, в общем случае между собой несовместимые.
До 1996 года вопросами соответствия коммерческих реализаций SQL стандарту занимался в основном институт NIST, который и устанавливал уровень соответствия стандарту. Но позднее подразделение, занимавшееся СУБД, было расформировано, и на текущий момент все усилия по проверке СУБД на соответствие стандарту ложатся на её производителя.
Впервые понятие «уровня соответствия» было предложено в стандарте SQL-92. А именно, ANSI и NIST определяли четыре уровня соответствия реализации этому стандарту:
Entry (русск. базовый)
Transitional (русск. переходный) — проверку на соответствие этому уровню проводил только институт NIST
Intermediate (русск. промежуточный)
Full (русск. полный)
SQL
Слайд 32SQL
SQL
Слайд 33 Со времени создания первых программируемых машин человечество придумало уже более восьми с
Со времени создания первых программируемых машин человечество придумало уже более восьми с