Что такое табличное программирование?

34

Язык программирования Falcon рекламирует себя как поддерживающий табличное программирование:

Falcon предоставляет шесть интегрированных парадигм программирования: процедурный, объектно-ориентированный, прототипно-ориентированный, функциональный, табличный и ориентированный на сообщения. И вам не нужно осваивать их все; вам просто нужно выбрать ингредиенты, которые вы предпочитаете, и позволить коду следовать вашему вдохновению.

Документация расширяет немного о том , как аромат средства языка табличного программирования работает, но он сосредоточился на собственных структуры и синтаксисе языка, и не объясняет преимущества парадигмы ( за исключением, конечно , тех , которые очевидны из упрощенных примеров) ,

Я немного сбит с толку тем, как все это работает внутренне, из того, что я понимаю, Falcon Table- это нативная структура, которая работает более или менее как реляционная таблица и может быть описана (в ОО-языке) как нативный набор записей с возможностями реляционных запросов , Ужасное описание, я знаю (обвиняют мои корни OO и годы злоупотребления текилой).

Не могли бы вы помочь мне лучше понять, что такое табличное программирование и как оно работает внутри?

Пояснение: я не спрашиваю о программировании табличной модели .

Яннис
источник
11
Об этом есть статья: Табличное программирование . (tl; dr) Я предполагаю, что это сочетание массивов объектов (как в экземплярах классов), баз данных и электронных таблиц.
Mouviciel
3
Фраза «Таблично-ориентированное программирование» заставила меня задуматься о Lua. Lua использует таблицы в качестве первоклассной структуры данных , но сам язык также может быть расширен с помощью Metatables .
Роберт Харви
5
Роберт, таблицы Луа - просто еще один способ сказать «основанный на прототипе», который уже упоминается в списке.
Джесс Телфорд

Ответы:

2

Табличное программирование является псевдонимом парадигмы таблично-ориентированного программирования (TOP). Для TOP ключевым понятием является таблица, а для объектно-ориентированного программирования (ООП) ключевым понятием является объект.

В общем, язык TOP, инструмент, программирование и т. Д. Работают с таблицами и фокусируются на них. Однако программист может использовать определенную парадигму даже в языках, которые не поддерживают эту парадигму. Например, языки, которые не имеют ключевых слов для определения классов и не поддерживают синтаксис для работы с экземплярами, могут использоваться для написания объектно-ориентированного кода. Например, в языке C мы можем определить структуру и поместить ссылку на эту структуру в функцию, чтобы смоделировать этот указатель и вызов метода. Однако ОО-код, написанный на C ++ или C #, будет гораздо более интуитивным, компактным, разборчивым, гибким и менее подверженным ошибкам.

Сокол - это язык, который поддерживает TOP в терминах, содержащихся в встроенных структурах программирования, облегчающих работу с таблицами. Хотя сказать, что Falcon представляет собой TOP, все равно, что сказать, что C ++ представляет собой ООП. Фактически, они являются инструментом, который облегчает или даже усиливает определенный стиль программирования.

Я думаю, но, возможно, я ошибаюсь, что мы должны искать ТОП-идеи и в том месте, которое создано для работы, особенно с таблицами. SQL Server и службы Analysis Services - это сфера, в которой выполняются операции, ориентированные на табличные данные. В частности, новое программирование табличной модели использует таблицы в качестве ключевых элементов для работы. Я считаю, что в будущем будет введена более интуитивная поддержка API для табличного программирования. Поэтому я позволю себе говорить о TOP в контексте программирования табличных моделей, как о другом аспекте TOP, кроме Falcon.

Программирование на основе табличных моделей используется в службах Analysis Services, которые принадлежат технологиям SQL Server, поэтому тесно связаны с реляционными базами данных и бизнес-аналитикой. Табличный режим - это новый подход к созданию семантической модели бизнес-аналитики в качестве альтернативы многомерному режиму, поэтому его следует сравнивать с последним. Каждое решение отличается тем, как они создаются, используются и развертываются. Табличный режим быстрее разрабатывать, тестировать и развертывать. Также знакома аудитории, которая работает с реляционными базами данных, Excel или Access. Для получения более подробной информации и внутренних деталей см. Сравнение табличных и многомерных решений .

Я думаю, что лучший способ понять, что такое программирование табличной модели, - это использовать его на практике. Пройдите через Табличное моделирование (Adventure Works Tutorial) и почувствуйте его.

yBee
источник
1
Какое отношение это имеет к Соколу?
Яннис
@YannisRizos Я думал, что вопрос в том, что такое табличное программирование? с точки зрения того, как это понять, и вы привели Сокол в качестве примера. Подумайте об изменении своего вопроса на Как понять Falcon как язык табличного программирования?
yBee
Не могли бы вы расширить свой ответ, чтобы объяснить, как программирование табличных моделей имеет какое-либо отношение к табличному программированию? Потому что, кроме сходства в названии, они кажутся совершенно разными вещами.
Яннис