Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

The Falcon programming language advertises itself as supporting tabular programming:

Falcon provides six integrated programming paradigms: procedural, object oriented, prototype oriented, functional, tabular and message oriented. And you don't have to master all of them; you just need to pick the ingredients you prefer, and let the code follow your inspiration.

The documentation expands a bit on how the language's flavour of tabular programming works, but it's focused on the language's own structures and syntax, and doesn't really explain the benefits of the paradigm (except of course those that are obvious from the simplistic examples).

I'm a bit confused on how the whole thing works internally, from what I understand Falcon's Table is a native structure that works more or less as a relational table and could be described (in OO vernacular) as a native Record Set with relational querying capabilities. A horrible description, I know (blame my OO roots and years of abusing tequila).

Could you help me get a better idea of what tabular programming is all about and how it works internally?

Clarification: I am not asking about Tabular Model Programming.

share|improve this question
There is an article about it: Table Oriented Programming. (tl;dr) I guess this is a mix between arrays of objects (as in class instances), databases and spreadsheets. –  mouviciel Mar 19 '13 at 8:50
@mouviciel Thanks, that's helpful. –  Yannis Rizos Mar 19 '13 at 9:01
The phrase "Table-oriented programming" made me think of Lua. Lua uses tables as a first-class data structure, but the language itself can also be extended using Metatables. –  Robert Harvey Mar 19 '13 at 17:15
Robert, Lua's tables are simply another way of saying "prototype based", which is already mentioned in the list. –  Jess Telford Mar 22 '13 at 12:04
add comment

1 Answer

Tabular programming is an alias of Table Oriented Programming paradigm (TOP). For TOP the key concept is a table as for Object Oriented Programming (OOP) the key concept is an object.

In general TOP language, tool, programming etc. deal with tables and focus on them. However a programmer can utilize certain paradigm even in languages that don't support nativly that paradigm. For instance languages that don't have keywords for defining classes and don't support syntax for operating on instances can be used to write object oriented code. For example in C language we can define a struct and put a reference to that struct into a function in order to simulate this pointer and method invocation. However OO code written in C++ or C# will be much more intuitive, compact, legible, flexible and less bug prone.

The Falcon is a language that support TOP nativly in terms that it contains built in programming structures to facilitate dealing with tables. Altough saying that Falcon constitutes TOP is like saying that C++ constitutes OOP. In fact, their are a tool, that facilitates or even enforces certain programming style.

I think, but maybe I'm wrong, that we should seek TOP ideas also in place that is created for operating especialy on tables. SQL Server and Analysis Services are an arena where tabular data focused operations are performed. In particular new Tabular Model Programming uses tables as key elements to deal with. I believe that there will be introduced more intuitive API support for tabular programming in the future. So I let myself to speak about TOP in context of Tabular Model Programming just as an another aspect of TOP beside Falcon.

Tabular Model Programming is used in Analysis Services which belongs to SQL Server Technologies so is closely associated with relational databases and business intelligence. Tabular mode is a new approach for creating a business intelligence semantic model as an alternative to multidimensional mode so it should be compared the latter. Each solution differs in how they are created, used, and deployed. Tabular mode is faster to design, test, and deploy. Is also familiar to audiences who work with relational databases, Excel, or Access. For more details and internals refer to Comparing Tabular and Multidimensional Solutions.

I think that the best way to understand what is a Tabular Model Programming is to use it in practice. Get through Tabular Modeling (Adventure Works Tutorial) and feel it.

share|improve this answer
What does any of this have to do with Falcon? –  Yannis Rizos May 7 '13 at 18:42
@YannisRizos I thought that the question is What is tabular programming? in terms of how to understand it and you gave Falcon as an example. Think about changing your question to How to understand Falcon as tabular programming language? –  yBee May 9 '13 at 5:57
Could you please expand your answer to explain how tabular model programming has anything to do with tabular programming? Because other than the similarity in name, they appear to be completely different things. –  Yannis Rizos May 9 '13 at 6:26
add comment

protected by Community May 7 '13 at 8:29

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.