Табличное программирование
Таблично-ориентированное программирование ( TOP ) — это парадигма программирования, ориентированная на данные (в отличие от ориентированной на код), часть парадигмы, ориентированной на данные.
Существует три основных подтипа таблично-ориентированного программирования:
- ТОП-языки общего назначения со встроенными таблицами ( xBase )
- Таблицы
- Языки реляционных баз данных: табличные языки, специфичные для предметной области, часто на удаленном сервере, например SQL.
История
[ редактировать ]Эпоха мэйнфреймов: 1960–1978 гг.
[ редактировать ]В ту эпоху таблично-ориентированное программирование называлось программированием таблиц решений .
Самая ранняя известная ссылка на программирование таблицы решений - DETAB-X, [1] в октябре 1962 года. Это привело к появлению таких языков, как Filetab в конце 60-х, потомки которого продолжили свое существование в 70-х и 80-х годах.
Поток электронных таблиц TOP, похоже, начался в 1969 году с LANPAR. [2]
Концепция реляционной базы данных была определена Э. Ф. Коддом из IBM в 1970 году.
Эпоха ПК: 1978–1995 гг.
[ редактировать ]TOP-языки общего назначения в ту эпоху, когда парадигма вообще была обозначена, иногда называли языками, ориентированными на данные . Основными языками в ту эпоху были семейство xBase (включая Clipper и более поздний xHarbour ) и семейство FoxPro .
Это также была эпоха растущей популярности электронных таблиц. Начиная с выпуска VisiCalc в 1979 году и вплоть до Lotus 1-2-3 и распространения Microsoft Excel , электронные таблицы следовали за ростом популярности персональных компьютеров.
В это время были выпущены ранние версии Oracle (с 1977 г.), Ingres (1980-е гг.) и других систем управления реляционными базами данных (СУБД).
Эпоха Web 1.0: 1995–2008 гг.
[ редактировать ]В эпоху Web 1.0 универсальный поток TOP вышел из употребления. Причины были двоякие. Во-первых, эти языки не стали извлекать выгоду из Интернета так, как это сделали другие, такие как Java. Вторым стал рост популярности объектно-ориентированного программирования. В то время как языки, ориентированные на код, породили объектно-ориентированных потомков (например, от C до C++ и др., от Lisp до CLOS), языки TOP так и не сделали этого. Хотя у них были превосходные средства обработки данных, их средства обработки кода не могли конкурировать с объектно-ориентированными языками.
Одним из факторов, способствовавших этому, была пропагандистская деятельность Брайса Джейкобса (использующего псевдонимы Tablizer и TOPMind); оппозиционный характер этих взаимодействий привел к тому, что TOP был отвергнут как низший по сравнению с ООП (в то время как концепции TOP могут быть весьма полезны в контексте объектно-ориентированного программирования), а его многочисленные обоснованные положения были отвергнуты теми, кто не хотел тратить время на расшифровку. его очки. Однако он, похоже, был первым, кто использовал название «таблично-ориентированное программирование», которое является наиболее точным обозначением этой парадигмы.
Это была эпоха консолидации электронных таблиц; Microsoft Excel стал стандартом де-факто и в конечном итоге остался без конкурентов.
Что касается реляционных баз данных, это была эпоха, когда MySQL (1995 г.) и PostgreSQL (1996 г.) стали популярными.
Эпоха Web 2.0: 2008–2022 гг.
[ редактировать ]В эту эпоху все необходимое таблично-ориентированное программирование было перенесено в СУБД, и было разработано стандартное разделение задач на «интерфейс», «бэкэнд» и «базу данных».
Электронные таблицы продолжали работать, как и в предыдущую эпоху, за исключением Интернета. Наконец у Excel появился конкурент: Google Sheets .
Функции
[ редактировать ]Языки TOP общего назначения имеют много общего с другими языками общего назначения.
Основная особенность TOP заключается в том, что таблицам отводится видное место в языке программирования.
Текст заголовка | Универсальные ТОП | Таблицы | Реляционные базы данных | Комментарии |
---|---|---|---|---|
Таблицы, известные на языке | Да | Да | Да | |
Код, хранящийся в таблицах | Да | Да | Нет | |
Удобно управляет множеством таблиц | Да | Нет | Да | |
Словари данных | Да | Нет | Да | |
Тип столбца | Именованный | секвенированный | Именованный | |
Тип строки | секвенированный | секвенированный | секвенированный | |
Единый интерфейс для нескольких серверов | Да | Нет | Вроде | Если весь SQL-код совместим с ANSI, то он предназначен для СУБД, но не для других бэкэндов (например, в памяти, CSV , JSON ). |
Шаблоны проектирования
[ редактировать ]Таблицы решений
[ редактировать ]Таблицы решений — это часто используемый шаблон, особенно в TOP-языках общего назначения. Таблица решений — это таблица со столбцами (обычно несколькими), которые представляют входные данные, и столбцами (обычно единичными, но многие из них могут быть множественными), которые представляют выходные данные. Каждый набор входных данных уникален, а строки таблицы должны охватывать все возможные комбинации входных данных.
Контрольные таблицы
[ редактировать ]Управляющие таблицы представляют собой расширение таблиц решений; вместо выходных столбцов у них есть код, хранящийся в таблице. Когда выбрана строка для этого решения, запускается код, хранящийся в таблице.
ТОП языков
[ редактировать ]ТОП языков общего назначения
[ редактировать ]- ДЕТАБ-Х [1] (1962)
- Filetab (между 1965 и 1968 годами)
- Семейство языков программирования XBase (1986 г. и последующие годы)
- Кларион (1986)
Таблицы
[ редактировать ]Категория:Программное обеспечение для работы с электронными таблицами
- ЛАНПАР (1969)
- Автоплан/Автотаб (1968) -
- ВизиКальк (1979)
- СуперКальк (1980)
- Мультиплан (1982)
- Лотос 1-2-3 (1982)
- Microsoft Excel (1985)
- StarOffice (1985) → OpenOffice.org (2000) → Apache OpenOffice (2012) / LibreOffice Calc (2010)
- Google Таблицы (2006 г.)
Реляционные базы данных
[ редактировать ]Категория:Системы управления базами данных
- База данных Oracle (с 1977 г.)
- Энгр (1980-е)
- MySQL (1995)
- ПостгреSQL (1996 г.)
Ссылки
[ редактировать ]- ^ Перейти обратно: а б Что такое ДЕТАБ-Х? , Соломон Л. Поллак, октябрь 1962 г.
- ^ «Рене Пардо и Реми Ландау представляют LANPAR, первую коммерческую электронную таблицу: история информации» . www.historyofinformation.com .